Bug 446171 - Part 2: Add a browser test for bookmark all tabs; r?mak
MozReview-Commit-ID: Ga64MDyDEyB
new file mode 100644
--- /dev/null
+++ b/browser/base/content/test/general/bookmark_dummy_1.html
@@ -0,0 +1,9 @@
+<html>
+<head>
+<title>Bookmark Dummy 1</title>
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8"></meta>
+</head>
+<body>
+<p>Bookmark Dummy 1</p>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/browser/base/content/test/general/bookmark_dummy_2.html
@@ -0,0 +1,9 @@
+<html>
+<head>
+<title>Bookmark Dummy 2</title>
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8"></meta>
+</head>
+<body>
+<p>Bookmark Dummy 2</p>
+</body>
+</html>
--- a/browser/base/content/test/general/browser.ini
+++ b/browser/base/content/test/general/browser.ini
@@ -15,16 +15,18 @@ support-files =
browser_fxa_oauth.html
browser_fxa_oauth_with_keys.html
browser_fxa_web_channel.html
browser_registerProtocolHandler_notification.html
browser_star_hsts.sjs
browser_tab_dragdrop2_frame1.xul
browser_web_channel.html
browser_web_channel_iframe.html
+ bookmark_dummy_1.html
+ bookmark_dummy_2.html
bug592338.html
bug792517-2.html
bug792517.html
bug792517.sjs
bug839103.css
contextmenu_common.js
ctxmenu-image.png
discovery.html
--- a/browser/components/places/tests/browser/browser.ini
+++ b/browser/components/places/tests/browser/browser.ini
@@ -46,8 +46,9 @@ support-files =
[browser_library_views_liveupdate.js]
[browser_markPageAsFollowedLink.js]
[browser_sidebarpanels_click.js]
skip-if = true # temporarily disabled for breaking the treeview - bug 658744
[browser_sort_in_library.js]
[browser_toolbar_migration.js]
[browser_toolbarbutton_menu_context.js]
[browser_views_liveupdate.js]
+[browser_bookmark_all_tabs.js]
new file mode 100644
--- /dev/null
+++ b/browser/components/places/tests/browser/browser_bookmark_all_tabs.js
@@ -0,0 +1,41 @@
+"use strict"
+
+add_task(function* () {
+ info("Bug 446171 - Name field of bookmarks saved via 'Bookmark All Tabs' " +
+ "has '(null)' value if history is disabled or just in private " +
+ "browsing mode");
+
+ const TEST_PAGES = [
+ "http://example.org/browser/browser/base/content/test/general/bookmark_dummy_1.html",
+ "http://example.org/browser/browser/base/content/test/general/bookmark_dummy_2.html",
+ "http://example.org/browser/browser/base/content/test/general/bookmark_dummy_1.html"
+ ];
+
+ function promiseAddTab(url) {
+ return new Promise(resolve => {
+ let tab = gBrowser.addTab(url);
+ tab.linkedBrowser.addEventListener("load", () => {
+ resolve(tab);
+ }, true);
+ });
+ }
+
+ let tabs = yield Promise.all(TEST_PAGES.map(promiseAddTab));
+
+ let URIs = PlacesCommandHook.uniqueCurrentPages;
+ is(URIs.length, 3, "Only unique pages are returned");
+
+ Assert.deepEqual(URIs.map(URI => URI.uri.spec), [
+ "about:blank",
+ "http://example.org/browser/browser/base/content/test/general/bookmark_dummy_1.html",
+ "http://example.org/browser/browser/base/content/test/general/bookmark_dummy_2.html"
+ ], "Correct URIs are returned");
+
+ Assert.deepEqual(URIs.map(URI => URI.title), [
+ "", "Bookmark Dummy 1", "Bookmark Dummy 2"
+ ], "Correct titles are returned");
+
+ registerCleanupFunction(function* () {
+ tabs.forEach(tab => gBrowser.removeTab(tab));
+ });
+});