Bug 1409617 - Convert test_ext_history_redirect.html to browser test and make it a bit robust. r?aswan draft
authorMasatoshi Kimura <VYV03354@nifty.ne.jp>
Wed, 18 Oct 2017 20:37:39 +0900
changeset 682396 bcb43f219e70b2e09aa0d3f121565eafe34cea1d
parent 681956 f78d5947333422ab09ec23e3dab0d48538c9d6ad
child 736382 c2ff34ec06f3a7f85e033542e20bf08bdc7d2fde
push id85090
push userVYV03354@nifty.ne.jp
push dateWed, 18 Oct 2017 15:09:52 +0000
reviewersaswan
bugs1409617
milestone58.0a1
Bug 1409617 - Convert test_ext_history_redirect.html to browser test and make it a bit robust. r?aswan MozReview-Commit-ID: FKvBB01ntm4
browser/components/extensions/test/browser/browser-common.ini
browser/components/extensions/test/browser/browser_ext_history_redirect.js
browser/components/extensions/test/mochitest/mochitest.ini
browser/components/extensions/test/mochitest/test_ext_history_redirect.html
--- a/browser/components/extensions/test/browser/browser-common.ini
+++ b/browser/components/extensions/test/browser/browser-common.ini
@@ -27,16 +27,17 @@ support-files =
   locale/chrome.manifest
   webNav_createdTarget.html
   webNav_createdTargetSource.html
   webNav_createdTargetSource_subframe.html
   serviceWorker.js
   searchSuggestionEngine.xml
   searchSuggestionEngine.sjs
   ../../../../../toolkit/components/extensions/test/mochitest/head_webrequest.js
+  ../../../../../toolkit/components/extensions/test/mochitest/redirection.sjs
   ../../../../../toolkit/components/reader/test/readerModeNonArticle.html
   ../../../../../toolkit/components/reader/test/readerModeArticle.html
 
 [browser_ext_browserAction_area.js]
 [browser_ext_browserAction_context.js]
 [browser_ext_browserAction_contextMenu.js]
 # bug 1369197
 skip-if = os == 'linux'
@@ -79,16 +80,17 @@ skip-if = (os == 'win' && !debug) # bug 
 [browser_ext_devtools_network.js]
 [browser_ext_devtools_page.js]
 [browser_ext_devtools_panel.js]
 [browser_ext_devtools_panels_elements.js]
 [browser_ext_devtools_panels_elements_sidebar.js]
 [browser_ext_find.js]
 [browser_ext_geckoProfiler_symbolicate.js]
 [browser_ext_getViews.js]
+[browser_ext_history_redirect.js]
 [browser_ext_identity_indication.js]
 [browser_ext_incognito_views.js]
 [browser_ext_incognito_popup.js]
 [browser_ext_lastError.js]
 [browser_ext_menus.js]
 [browser_ext_omnibox.js]
 [browser_ext_openPanel.js]
 [browser_ext_optionsPage_browser_style.js]
rename from browser/components/extensions/test/mochitest/test_ext_history_redirect.html
rename to browser/components/extensions/test/browser/browser_ext_history_redirect.js
--- a/browser/components/extensions/test/mochitest/test_ext_history_redirect.html
+++ b/browser/components/extensions/test/browser/browser_ext_history_redirect.js
@@ -1,31 +1,13 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-  <title>Test for simple WebExtension</title>
-  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
-  <script type="text/javascript" src="/tests/SimpleTest/SpawnTask.js"></script>
-  <script type="text/javascript" src="/tests/SimpleTest/ExtensionTestUtils.js"></script>
-  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
-</head>
-<body>
-
-<script type="text/javascript">
 "use strict";
 
-const REDIRECT_URL = new URL("redirection.sjs", location).href;
-
-function waitForLoad(win) {
-  return new Promise(resolve => {
-    win.addEventListener("load", function() {
-      resolve();
-    }, {capture: true, once: true});
-  });
-}
+const BASE = "http://mochi.test:8888/browser/browser/components/extensions/test/browser";
+const REDIRECT_URL = BASE + "/redirection.sjs";
+const REDIRECTED_URL = BASE + "/dummy_page.html";
 
 add_task(async function history_redirect() {
   function background() {
     browser.test.onMessage.addListener(async (msg, url) => {
       switch (msg) {
         case "delete-all": {
           let results = await browser.history.deleteAll();
           browser.test.sendMessage("delete-all-result", results);
@@ -59,29 +41,23 @@ add_task(async function history_redirect
   let extension = ExtensionTestUtils.loadExtension(extensionData);
 
   await Promise.all([extension.startup(), extension.awaitMessage("ready")]);
   info("extension loaded");
 
   extension.sendMessage("delete-all");
   await extension.awaitMessage("delete-all-result");
 
-  let win = window.open(REDIRECT_URL);
-  await waitForLoad(win);
-
-  extension.sendMessage("search", REDIRECT_URL);
-  let results = await extension.awaitMessage("search-result");
-  is(results.length, 1, "search returned expected length of results");
+  await BrowserTestUtils.withNewTab({gBrowser, url: REDIRECT_URL}, async (browser) => {
+    is(browser.currentURI.spec, REDIRECTED_URL, "redirected to the expected location");
 
-  extension.sendMessage("get-visits", REDIRECT_URL);
-  let visits = await extension.awaitMessage("get-visits-result");
-  is(visits.length, 1, "getVisits returned expected length of visits");
+    extension.sendMessage("search", REDIRECT_URL);
+    let results = await extension.awaitMessage("search-result");
+    is(results.length, 1, "search returned expected length of results");
 
-  // cleanup phase
-  win.close();
+    extension.sendMessage("get-visits", REDIRECT_URL);
+    let visits = await extension.awaitMessage("get-visits-result");
+    is(visits.length, 1, "getVisits returned expected length of visits");
+  });
 
   await extension.unload();
   info("extension unloaded");
 });
-</script>
-
-</body>
-</html>
--- a/browser/components/extensions/test/mochitest/mochitest.ini
+++ b/browser/components/extensions/test/mochitest/mochitest.ini
@@ -1,9 +1,7 @@
 [DEFAULT]
 support-files =
   ../../../../../toolkit/components/extensions/test/mochitest/test_ext_all_apis.js
   ../../../../../toolkit/components/extensions/test/mochitest/file_sample.html
-  ../../../../../toolkit/components/extensions/test/mochitest/redirection.sjs
 tags = webextensions
 
 [test_ext_all_apis.html]
-[test_ext_history_redirect.html]