summaryrefslogtreecommitdiffstats
path: root/browser/components/extensions/test/browser/browser_ext_history_redirect.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/extensions/test/browser/browser_ext_history_redirect.js')
-rw-r--r--browser/components/extensions/test/browser/browser_ext_history_redirect.js72
1 files changed, 72 insertions, 0 deletions
diff --git a/browser/components/extensions/test/browser/browser_ext_history_redirect.js b/browser/components/extensions/test/browser/browser_ext_history_redirect.js
new file mode 100644
index 0000000000..bbce498887
--- /dev/null
+++ b/browser/components/extensions/test/browser/browser_ext_history_redirect.js
@@ -0,0 +1,72 @@
+"use strict";
+
+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);
+ break;
+ }
+ case "search": {
+ let results = await browser.history.search({
+ text: url,
+ startTime: new Date(0),
+ });
+ browser.test.sendMessage("search-result", results);
+ break;
+ }
+ case "get-visits": {
+ let results = await browser.history.getVisits({ url });
+ browser.test.sendMessage("get-visits-result", results);
+ break;
+ }
+ }
+ });
+
+ browser.test.sendMessage("ready");
+ }
+
+ let extensionData = {
+ manifest: {
+ permissions: ["history"],
+ },
+ background,
+ };
+
+ 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");
+
+ await BrowserTestUtils.withNewTab(
+ { gBrowser, url: REDIRECT_URL },
+ async browser => {
+ is(
+ browser.currentURI.spec,
+ REDIRECTED_URL,
+ "redirected to the expected location"
+ );
+
+ extension.sendMessage("search", REDIRECT_URL);
+ let results = await extension.awaitMessage("search-result");
+ is(results.length, 1, "search returned expected length of results");
+
+ 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");
+});