Bug 446171 - Part 2: Add a browser test for bookmark all tabs; r?mak draft
authorScott Wu <scottcwwu@gmail.com>
Fri, 15 Apr 2016 08:14:59 +0800
changeset 351724 f2b9da12158e531d1b2da66dd37c048cf829b117
parent 351723 e098e0a70e73d2d592f2c50efc5ce3dc5d91299b
child 518495 31d71ff64b27fab345cf2a8bfdb93de5f7641ae2
push id15521
push userbmo:scwwu@mozilla.com
push dateFri, 15 Apr 2016 00:30:28 +0000
reviewersmak
bugs446171
milestone48.0a1
Bug 446171 - Part 2: Add a browser test for bookmark all tabs; r?mak MozReview-Commit-ID: Ga64MDyDEyB
browser/base/content/test/general/bookmark_dummy_1.html
browser/base/content/test/general/bookmark_dummy_2.html
browser/base/content/test/general/browser.ini
browser/components/places/tests/browser/browser.ini
browser/components/places/tests/browser/browser_bookmark_all_tabs.js
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));
+  });
+});