diff options
Diffstat (limited to 'mobile/android/tests/browser/robocop/testHistoryService.js')
-rw-r--r-- | mobile/android/tests/browser/robocop/testHistoryService.js | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/mobile/android/tests/browser/robocop/testHistoryService.js b/mobile/android/tests/browser/robocop/testHistoryService.js deleted file mode 100644 index 612928c4c..000000000 --- a/mobile/android/tests/browser/robocop/testHistoryService.js +++ /dev/null @@ -1,128 +0,0 @@ -// -*- indent-tabs-mode: nil; js-indent-level: 2 -*- -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -"use strict"; - -var { classes: Cc, interfaces: Ci, utils: Cu } = Components; - -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); -Cu.import("resource://gre/modules/Services.jsm"); - -// Make the timer global so it doesn't get GC'd -var gTimer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer); - -function sleep(wait) { - return new Promise((resolve, reject) => { - do_print("sleep start"); - gTimer.initWithCallback({ - notify: function () { - do_print("sleep end"); - resolve(); - }, - }, wait, gTimer.TYPE_ONE_SHOT); - }); -} - -function promiseLoadEvent(browser, url, eventType="load") { - return new Promise((resolve, reject) => { - do_print("Wait browser event: " + eventType); - - function handle(event) { - // Since we'll be redirecting, don't make assumptions about the given URL and the loaded URL - if (event.target != browser.contentDocument || event.target.location.href == "about:blank") { - do_print("Skipping spurious '" + eventType + "' event" + " for " + event.target.location.href); - return; - } - - browser.removeEventListener(eventType, handle, true); - do_print("Browser event received: " + eventType); - resolve(event); - } - - browser.addEventListener(eventType, handle, true); - if (url) { - browser.loadURI(url); - } - }); -} - -// Wait 6 seconds for the pending visits to flush (which should happen in 3 seconds) -const PENDING_VISIT_WAIT = 6000; -// Longer wait required after first load -const PENDING_VISIT_WAIT_LONG = 20000; - -// Manage the saved history visits so we can compare in the tests -var gVisitURLs = []; -function visitObserver(subject, topic, data) { - let uri = subject.QueryInterface(Ci.nsIURI); - do_print("Observer: " + uri.spec); - gVisitURLs.push(uri.spec); -}; - -// Track the <browser> where the tests are happening -var gBrowser; - -add_test(function setup_browser() { - let chromeWin = Services.wm.getMostRecentWindow("navigator:browser"); - let BrowserApp = chromeWin.BrowserApp; - - do_register_cleanup(function cleanup() { - Services.obs.removeObserver(visitObserver, "link-visited"); - BrowserApp.closeTab(BrowserApp.getTabForBrowser(gBrowser)); - }); - - Services.obs.addObserver(visitObserver, "link-visited", false); - - // Load a blank page - let url = "about:blank"; - gBrowser = BrowserApp.addTab(url, { selected: true, parentId: BrowserApp.selectedTab.id }).browser; - gBrowser.addEventListener("load", function startTests(event) { - gBrowser.removeEventListener("load", startTests, true); - Services.tm.mainThread.dispatch(run_next_test, Ci.nsIThread.DISPATCH_NORMAL); - }, true); -}); - -add_task(function* () { - // Wait for any initial page loads to be saved to history - yield sleep(PENDING_VISIT_WAIT); - - // Load a simple HTML page with no redirects - gVisitURLs = []; - yield promiseLoadEvent(gBrowser, "http://example.org/tests/robocop/robocop_blank_01.html"); - yield sleep(PENDING_VISIT_WAIT_LONG); - - do_print("visit counts: " + gVisitURLs.length); - ok(gVisitURLs.length == 1, "Simple visit makes 1 history item"); - - do_print("visit URL: " + gVisitURLs[0]); - ok(gVisitURLs[0] == "http://example.org/tests/robocop/robocop_blank_01.html", "Simple visit makes final history item"); - - // Load a simple HTML page via a 301 temporary redirect - gVisitURLs = []; - yield promiseLoadEvent(gBrowser, "http://example.org/tests/robocop/simple_redirect.sjs?http://example.org/tests/robocop/robocop_blank_02.html"); - yield sleep(PENDING_VISIT_WAIT); - - do_print("visit counts: " + gVisitURLs.length); - ok(gVisitURLs.length == 1, "Simple 301 redirect makes 1 history item"); - - do_print("visit URL: " + gVisitURLs[0]); - ok(gVisitURLs[0] == "http://example.org/tests/robocop/robocop_blank_02.html", "Simple 301 redirect makes final history item"); - - // Load a simple HTML page via a JavaScript redirect - gVisitURLs = []; - yield promiseLoadEvent(gBrowser, "http://example.org/tests/robocop/javascript_redirect.sjs?http://example.org/tests/robocop/robocop_blank_03.html"); - yield sleep(PENDING_VISIT_WAIT); - - do_print("visit counts: " + gVisitURLs.length); - ok(gVisitURLs.length == 2, "JavaScript redirect makes 2 history items"); - - do_print("visit URL 1: " + gVisitURLs[0]); - ok(gVisitURLs[0] == "http://example.org/tests/robocop/javascript_redirect.sjs?http://example.org/tests/robocop/robocop_blank_03.html", "JavaScript redirect makes intermediate history item"); - - do_print("visit URL 2: " + gVisitURLs[1]); - ok(gVisitURLs[1] == "http://example.org/tests/robocop/robocop_blank_03.html", "JavaScript redirect makes final history item"); -}); - -run_next_test(); |