summaryrefslogtreecommitdiffstats
path: root/toolkit/mozapps/extensions/test/browser/browser_bug562797.js
diff options
context:
space:
mode:
authorMatt A. Tobin <email@mattatobin.com>2018-02-10 02:51:36 -0500
committerMatt A. Tobin <email@mattatobin.com>2018-02-10 02:51:36 -0500
commit37d5300335d81cecbecc99812747a657588c63eb (patch)
tree765efa3b6a56bb715d9813a8697473e120436278 /toolkit/mozapps/extensions/test/browser/browser_bug562797.js
parentb2bdac20c02b12f2057b9ef70b0a946113a00e00 (diff)
parent4fb11cd5966461bccc3ed1599b808237be6b0de9 (diff)
downloadUXP-37d5300335d81cecbecc99812747a657588c63eb.tar
UXP-37d5300335d81cecbecc99812747a657588c63eb.tar.gz
UXP-37d5300335d81cecbecc99812747a657588c63eb.tar.lz
UXP-37d5300335d81cecbecc99812747a657588c63eb.tar.xz
UXP-37d5300335d81cecbecc99812747a657588c63eb.zip
Merge branch 'ext-work'
Diffstat (limited to 'toolkit/mozapps/extensions/test/browser/browser_bug562797.js')
-rw-r--r--toolkit/mozapps/extensions/test/browser/browser_bug562797.js975
1 files changed, 0 insertions, 975 deletions
diff --git a/toolkit/mozapps/extensions/test/browser/browser_bug562797.js b/toolkit/mozapps/extensions/test/browser/browser_bug562797.js
deleted file mode 100644
index 55e882a05..000000000
--- a/toolkit/mozapps/extensions/test/browser/browser_bug562797.js
+++ /dev/null
@@ -1,975 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-/**
- * Tests that history navigation works for the add-ons manager.
- */
-
-const MAIN_URL = "https://example.com/" + RELATIVE_DIR + "discovery.html";
-const SECOND_URL = "https://example.com/" + RELATIVE_DIR + "releaseNotes.xhtml";
-
-var gLoadCompleteCallback = null;
-
-var gProgressListener = {
- onStateChange: function(aWebProgress, aRequest, aStateFlags, aStatus) {
- // Only care about the network stop status events
- if (!(aStateFlags & (Ci.nsIWebProgressListener.STATE_IS_NETWORK)) ||
- !(aStateFlags & (Ci.nsIWebProgressListener.STATE_STOP)))
- return;
-
- if (gLoadCompleteCallback)
- executeSoon(gLoadCompleteCallback);
- gLoadCompleteCallback = null;
- },
-
- onLocationChange: function() { },
- onSecurityChange: function() { },
- onProgressChange: function() { },
- onStatusChange: function() { },
-
- QueryInterface: XPCOMUtils.generateQI([Ci.nsIWebProgressListener,
- Ci.nsISupportsWeakReference]),
-};
-
-function waitForLoad(aManager, aCallback) {
- var browser = aManager.document.getElementById("discover-browser");
- browser.addProgressListener(gProgressListener);
-
- gLoadCompleteCallback = function() {
- browser.removeProgressListener(gProgressListener);
- aCallback();
- };
-}
-
-function clickLink(aManager, aId, aCallback) {
- waitForLoad(aManager, aCallback);
-
- var browser = aManager.document.getElementById("discover-browser");
-
- var link = browser.contentDocument.getElementById(aId);
- EventUtils.sendMouseEvent({type: "click"}, link);
-}
-
-function test() {
- requestLongerTimeout(2);
-
- waitForExplicitFinish();
-
- Services.prefs.setCharPref(PREF_DISCOVERURL, MAIN_URL);
-
- SpecialPowers.pushPrefEnv({"set": [
- ["dom.ipc.processCount", 1],
- ]}, () => {
- var gProvider = new MockProvider();
- gProvider.createAddons([{
- id: "test1@tests.mozilla.org",
- name: "Test add-on 1",
- description: "foo"
- },
- {
- id: "test2@tests.mozilla.org",
- name: "Test add-on 2",
- description: "bar"
- },
- {
- id: "test3@tests.mozilla.org",
- name: "Test add-on 3",
- type: "theme",
- description: "bar"
- }]);
- });
-
- run_next_test();
-}
-
-function end_test() {
- finish();
-}
-
-function go_back(aManager) {
- if (gUseInContentUI) {
- gBrowser.goBack();
- } else {
- EventUtils.synthesizeMouseAtCenter(aManager.document.getElementById("back-btn"),
- { }, aManager);
- }
-}
-
-function go_back_backspace(aManager) {
- EventUtils.synthesizeKey("VK_BACK_SPACE", {});
-}
-
-function go_forward_backspace(aManager) {
- EventUtils.synthesizeKey("VK_BACK_SPACE", {shiftKey: true});
-}
-
-function go_forward(aManager) {
- if (gUseInContentUI) {
- gBrowser.goForward();
- } else {
- EventUtils.synthesizeMouseAtCenter(aManager.document.getElementById("forward-btn"),
- { }, aManager);
- }
-}
-
-function check_state(aManager, canGoBack, canGoForward) {
- var doc = aManager.document;
-
- if (gUseInContentUI) {
- is(gBrowser.canGoBack, canGoBack, "canGoBack should be correct");
- is(gBrowser.canGoForward, canGoForward, "canGoForward should be correct");
- }
-
- if (!is_hidden(doc.getElementById("back-btn"))) {
- is(!doc.getElementById("back-btn").disabled, canGoBack, "Back button should have the right state");
- is(!doc.getElementById("forward-btn").disabled, canGoForward, "Forward button should have the right state");
- }
-}
-
-function is_in_list(aManager, view, canGoBack, canGoForward) {
- var doc = aManager.document;
-
- is(doc.getElementById("categories").selectedItem.value, view, "Should be on the right category");
- is(get_current_view(aManager).id, "list-view", "Should be on the right view");
-
- check_state(aManager, canGoBack, canGoForward);
-}
-
-function is_in_search(aManager, query, canGoBack, canGoForward) {
- var doc = aManager.document;
-
- is(doc.getElementById("categories").selectedItem.value, "addons://search/", "Should be on the right category");
- is(get_current_view(aManager).id, "search-view", "Should be on the right view");
- is(doc.getElementById("header-search").value, query, "Should have used the right query");
-
- check_state(aManager, canGoBack, canGoForward);
-}
-
-function is_in_detail(aManager, view, canGoBack, canGoForward) {
- var doc = aManager.document;
-
- is(doc.getElementById("categories").selectedItem.value, view, "Should be on the right category");
- is(get_current_view(aManager).id, "detail-view", "Should be on the right view");
-
- check_state(aManager, canGoBack, canGoForward);
-}
-
-function is_in_discovery(aManager, url, canGoBack, canGoForward) {
- var browser = aManager.document.getElementById("discover-browser");
-
- is(aManager.document.getElementById("discover-view").selectedPanel, browser,
- "Browser should be visible");
-
- var spec = browser.currentURI.spec;
- var pos = spec.indexOf("#");
- if (pos != -1)
- spec = spec.substring(0, pos);
-
- is(spec, url, "Should have loaded the right url");
-
- check_state(aManager, canGoBack, canGoForward);
-}
-
-function double_click_addon_element(aManager, aId) {
- var addon = get_addon_element(aManager, aId);
- addon.parentNode.ensureElementIsVisible(addon);
- EventUtils.synthesizeMouseAtCenter(addon, { clickCount: 1 }, aManager);
- EventUtils.synthesizeMouseAtCenter(addon, { clickCount: 2 }, aManager);
-}
-
-// Tests simple forward and back navigation and that the right heading and
-// category is selected
-add_test(function() {
- open_manager("addons://list/extension", function(aManager) {
- info("Part 1");
- is_in_list(aManager, "addons://list/extension", false, false);
-
- EventUtils.synthesizeMouseAtCenter(aManager.document.getElementById("category-plugin"), { }, aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- info("Part 2");
- is_in_list(aManager, "addons://list/plugin", true, false);
-
- go_back(aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- info("Part 3");
- is_in_list(aManager, "addons://list/extension", false, true);
-
- go_forward(aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- info("Part 4");
- is_in_list(aManager, "addons://list/plugin", true, false);
-
- go_back(aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- info("Part 5");
- is_in_list(aManager, "addons://list/extension", false, true);
-
- double_click_addon_element(aManager, "test1@tests.mozilla.org");
-
- wait_for_view_load(aManager, function(aManager) {
- info("Part 6");
- is_in_detail(aManager, "addons://list/extension", true, false);
-
- go_back(aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- info("Part 7");
- is_in_list(aManager, "addons://list/extension", false, true);
-
- close_manager(aManager, run_next_test);
- });
- });
- });
- });
- });
- });
- });
-});
-
-// Tests that browsing to the add-ons manager from a website and going back works
-// Only relevant for in-content UI
-add_test(function() {
- if (!gUseInContentUI) {
- run_next_test();
- return;
- }
-
- function promiseViewLoad(manager) {
- return new Promise(resolve => {
- wait_for_view_load(manager, resolve);
- });
- }
-
- function promiseManagerLoaded(manager) {
- return new Promise(resolve => {
- wait_for_manager_load(manager, resolve);
- });
- }
-
- Task.spawn(function*() {
- info("Part 1");
- yield BrowserTestUtils.openNewForegroundTab(gBrowser, "http://example.com/", true, true);
-
- info("Part 2");
- ok(!gBrowser.canGoBack, "Should not be able to go back");
- ok(!gBrowser.canGoForward, "Should not be able to go forward");
-
- yield BrowserTestUtils.loadURI(gBrowser.selectedBrowser, "about:addons");
- yield BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
-
- let manager = yield promiseManagerLoaded(gBrowser.contentWindow.wrappedJSObject);
-
- info("Part 3");
- is_in_list(manager, "addons://list/extension", true, false);
-
- // XXX: This is less than ideal, as it's currently difficult to deal with
- // the browser frame switching between remote/non-remote in e10s mode.
- let promiseLoaded;
- if (gMultiProcessBrowser) {
- promiseLoaded = BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
- } else {
- promiseLoaded = BrowserTestUtils.waitForEvent(gBrowser.selectedBrowser, "pageshow");
- }
-
- go_back(manager);
- yield promiseLoaded;
-
- info("Part 4");
- is(gBrowser.currentURI.spec, "http://example.com/", "Should be showing the webpage");
- ok(!gBrowser.canGoBack, "Should not be able to go back");
- ok(gBrowser.canGoForward, "Should be able to go forward");
-
- promiseLoaded = BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
- go_forward(manager);
- yield promiseLoaded;
-
- manager = yield promiseManagerLoaded(gBrowser.contentWindow.wrappedJSObject);
- info("Part 5");
- is_in_list(manager, "addons://list/extension", true, false);
-
- close_manager(manager, run_next_test);
- });
-});
-
-// Tests simple forward and back navigation and that the right heading and
-// category is selected -- Keyboard navigation [Bug 565359]
-// Only add the test if the backspace key navigates back and addon-manager
-// loaded in a tab
-add_test(function() {
-
- if (!gUseInContentUI || (Services.prefs.getIntPref("browser.backspace_action") != 0)) {
- run_next_test();
- return;
- }
-
- open_manager("addons://list/extension", function(aManager) {
- info("Part 1");
- is_in_list(aManager, "addons://list/extension", false, false);
-
- EventUtils.synthesizeMouseAtCenter(aManager.document.getElementById("category-plugin"), { }, aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- info("Part 2");
- is_in_list(aManager, "addons://list/plugin", true, false);
-
- go_back_backspace(aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- info("Part 3");
- is_in_list(aManager, "addons://list/extension", false, true);
-
- go_forward_backspace(aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- info("Part 4");
- is_in_list(aManager, "addons://list/plugin", true, false);
-
- go_back_backspace(aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- info("Part 5");
- is_in_list(aManager, "addons://list/extension", false, true);
-
- double_click_addon_element(aManager, "test1@tests.mozilla.org");
-
- wait_for_view_load(aManager, function(aManager) {
- info("Part 6");
- is_in_detail(aManager, "addons://list/extension", true, false);
-
- go_back_backspace(aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- info("Part 7");
- is_in_list(aManager, "addons://list/extension", false, true);
-
- close_manager(aManager, run_next_test);
- });
- });
- });
- });
- });
- });
- });
-});
-
-
-// Tests that opening a custom first view only stores a single history entry
-add_test(function() {
- open_manager("addons://list/plugin", function(aManager) {
- info("Part 1");
- is_in_list(aManager, "addons://list/plugin", false, false);
-
- EventUtils.synthesizeMouseAtCenter(aManager.document.getElementById("category-extension"), { }, aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- info("Part 2");
- is_in_list(aManager, "addons://list/extension", true, false);
-
- go_back(aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- info("Part 3");
- is_in_list(aManager, "addons://list/plugin", false, true);
-
- close_manager(aManager, run_next_test);
- });
- });
- });
-});
-
-
-// Tests that opening a view while the manager is already open adds a new
-// history entry
-add_test(function() {
- open_manager("addons://list/extension", function(aManager) {
- info("Part 1");
- is_in_list(aManager, "addons://list/extension", false, false);
-
- aManager.loadView("addons://list/plugin");
-
- wait_for_view_load(aManager, function(aManager) {
- info("Part 2");
- is_in_list(aManager, "addons://list/plugin", true, false);
-
- go_back(aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- info("Part 3");
- is_in_list(aManager, "addons://list/extension", false, true);
-
- go_forward(aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- info("Part 4");
- is_in_list(aManager, "addons://list/plugin", true, false);
-
- close_manager(aManager, run_next_test);
- });
- });
- });
- });
-});
-
-// Tests than navigating to a website and then going back returns to the
-// previous view
-// Only relevant for in-content UI
-add_test(function() {
- if (!gUseInContentUI) {
- run_next_test();
- return;
- }
-
- open_manager("addons://list/plugin", function(aManager) {
- info("Part 1");
- is_in_list(aManager, "addons://list/plugin", false, false);
-
- gBrowser.loadURI("http://example.com/");
- gBrowser.addEventListener("pageshow", function(event) {
- if (event.target.location != "http://example.com/")
- return;
- gBrowser.removeEventListener("pageshow", arguments.callee, false);
- info("Part 2");
-
- executeSoon(function() {
- ok(gBrowser.canGoBack, "Should be able to go back");
- ok(!gBrowser.canGoForward, "Should not be able to go forward");
-
- go_back(aManager);
-
- gBrowser.addEventListener("pageshow", function(event) {
- if (event.target.location != "about:addons")
- return;
- gBrowser.removeEventListener("pageshow", arguments.callee, false);
-
- wait_for_view_load(gBrowser.contentWindow.wrappedJSObject, function(aManager) {
- info("Part 3");
- is_in_list(aManager, "addons://list/plugin", false, true);
-
- executeSoon(() => go_forward(aManager));
- gBrowser.addEventListener("pageshow", function(event) {
- if (event.target.location != "http://example.com/")
- return;
- gBrowser.removeEventListener("pageshow", arguments.callee, false);
- info("Part 4");
-
- executeSoon(function() {
- ok(gBrowser.canGoBack, "Should be able to go back");
- ok(!gBrowser.canGoForward, "Should not be able to go forward");
-
- go_back(aManager);
-
- gBrowser.addEventListener("pageshow", function(event) {
- if (event.target.location != "about:addons")
- return;
- gBrowser.removeEventListener("pageshow", arguments.callee, false);
- wait_for_view_load(gBrowser.contentWindow.wrappedJSObject, function(aManager) {
- info("Part 5");
- is_in_list(aManager, "addons://list/plugin", false, true);
-
- close_manager(aManager, run_next_test);
- });
- }, false);
- });
- }, false);
- });
- }, false);
- });
- }, false);
- });
-});
-
-// Tests that going back to search results works
-add_test(function() {
- // Before we open the add-ons manager, we should make sure that no filter
- // has been set. If one is set, we remove it.
- // This is for the check below, from bug 611459.
- let store = Cc["@mozilla.org/xul/xulstore;1"].getService(Ci.nsIXULStore);
- store.removeValue("about:addons", "search-filter-radiogroup", "value");
-
- open_manager("addons://list/extension", function(aManager) {
- info("Part 1");
- is_in_list(aManager, "addons://list/extension", false, false);
-
- var search = aManager.document.getElementById("header-search");
- search.focus();
- search.value = "bar";
- EventUtils.synthesizeKey("VK_RETURN", {}, aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- // Remote search is meant to be checked by default (bug 611459), so we
- // confirm that and then switch to a local search.
- var localFilter = aManager.document.getElementById("search-filter-local");
- var remoteFilter = aManager.document.getElementById("search-filter-remote");
-
- is(remoteFilter.selected, true, "Remote filter should be set by default");
-
- var list = aManager.document.getElementById("search-list");
- list.ensureElementIsVisible(localFilter);
- EventUtils.synthesizeMouseAtCenter(localFilter, { }, aManager);
-
- is(localFilter.selected, true, "Should have changed to local filter");
-
- // Now we continue with the normal test.
-
- info("Part 2");
- is_in_search(aManager, "bar", true, false);
- check_all_in_list(aManager, ["test2@tests.mozilla.org", "test3@tests.mozilla.org"]);
-
- double_click_addon_element(aManager, "test2@tests.mozilla.org");
-
- wait_for_view_load(aManager, function(aManager) {
- info("Part 3");
- is_in_detail(aManager, "addons://search/", true, false);
-
- go_back(aManager);
- wait_for_view_load(aManager, function(aManager) {
- info("Part 4");
- is_in_search(aManager, "bar", true, true);
- check_all_in_list(aManager, ["test2@tests.mozilla.org", "test3@tests.mozilla.org"]);
-
- go_forward(aManager);
- wait_for_view_load(aManager, function(aManager) {
- info("Part 5");
- is_in_detail(aManager, "addons://search/", true, false);
-
- close_manager(aManager, run_next_test);
- });
- });
- });
- });
- });
-});
-
-// Tests that going back from a webpage to a detail view loaded from a search
-// result works
-// Only relevant for in-content UI
-add_test(function() {
- if (!gUseInContentUI) {
- run_next_test();
- return;
- }
-
- open_manager("addons://list/extension", function(aManager) {
- info("Part 1");
- is_in_list(aManager, "addons://list/extension", false, false);
-
- var search = aManager.document.getElementById("header-search");
- search.focus();
- search.value = "bar";
- EventUtils.synthesizeKey("VK_RETURN", {});
-
- wait_for_view_load(aManager, function(aManager) {
- info("Part 2");
- is_in_search(aManager, "bar", true, false);
- check_all_in_list(aManager, ["test2@tests.mozilla.org", "test3@tests.mozilla.org"]);
-
- double_click_addon_element(aManager, "test2@tests.mozilla.org");
-
- wait_for_view_load(aManager, function(aManager) {
- info("Part 3");
- is_in_detail(aManager, "addons://search/", true, false);
-
- gBrowser.loadURI("http://example.com/");
- gBrowser.addEventListener("pageshow", function(event) {
- if (event.target.location != "http://example.com/")
- return;
- gBrowser.removeEventListener("pageshow", arguments.callee, false);
-
- info("Part 4");
- executeSoon(function() {
- ok(gBrowser.canGoBack, "Should be able to go back");
- ok(!gBrowser.canGoForward, "Should not be able to go forward");
-
- go_back(aManager);
- gBrowser.addEventListener("pageshow", function(event) {
- if (event.target.location != "about:addons")
- return;
- gBrowser.removeEventListener("pageshow", arguments.callee, false);
-
- wait_for_view_load(gBrowser.contentWindow.wrappedJSObject, function(aManager) {
- info("Part 5");
- is_in_detail(aManager, "addons://search/", true, true);
-
- go_back(aManager);
- wait_for_view_load(aManager, function(aManager) {
- info("Part 6");
- is_in_search(aManager, "bar", true, true);
- check_all_in_list(aManager, ["test2@tests.mozilla.org", "test3@tests.mozilla.org"]);
-
- close_manager(aManager, run_next_test);
- });
- });
- }, false);
- });
- }, false);
- });
- });
- });
-});
-
-// Tests that refreshing a list view does not affect the history
-// Only relevant for in-content UI
-add_test(function() {
- if (!gUseInContentUI) {
- run_next_test();
- return;
- }
-
- open_manager("addons://list/extension", function(aManager) {
- info("Part 1");
- is_in_list(aManager, "addons://list/extension", false, false);
-
- EventUtils.synthesizeMouseAtCenter(aManager.document.getElementById("category-plugin"), { }, aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- info("Part 2");
- is_in_list(aManager, "addons://list/plugin", true, false);
-
- gBrowser.reload();
- gBrowser.addEventListener("pageshow", function(event) {
- if (event.target.location != "about:addons")
- return;
- gBrowser.removeEventListener("pageshow", arguments.callee, false);
-
- wait_for_view_load(gBrowser.contentWindow.wrappedJSObject, function(aManager) {
- info("Part 3");
- is_in_list(aManager, "addons://list/plugin", true, false);
-
- go_back(aManager);
- wait_for_view_load(aManager, function(aManager) {
- info("Part 4");
- is_in_list(aManager, "addons://list/extension", false, true);
-
- close_manager(aManager, run_next_test);
- });
- });
- }, false);
- });
- });
-});
-
-// Tests that refreshing a detail view does not affect the history
-// Only relevant for in-content UI
-add_test(function() {
- if (!gUseInContentUI) {
- run_next_test();
- return;
- }
-
- open_manager(null, function(aManager) {
- info("Part 1");
- is_in_list(aManager, "addons://list/extension", false, false);
-
- double_click_addon_element(aManager, "test1@tests.mozilla.org");
-
- wait_for_view_load(aManager, function(aManager) {
- info("Part 2");
- is_in_detail(aManager, "addons://list/extension", true, false);
-
- gBrowser.reload();
- gBrowser.addEventListener("pageshow", function(event) {
- if (event.target.location != "about:addons")
- return;
- gBrowser.removeEventListener("pageshow", arguments.callee, false);
-
- wait_for_view_load(gBrowser.contentWindow.wrappedJSObject, function(aManager) {
- info("Part 3");
- is_in_detail(aManager, "addons://list/extension", true, false);
-
- go_back(aManager);
- wait_for_view_load(aManager, function(aManager) {
- info("Part 4");
- is_in_list(aManager, "addons://list/extension", false, true);
-
- close_manager(aManager, run_next_test);
- });
- });
- }, false);
- });
- });
-});
-
-// Tests that removing an extension from the detail view goes back and doesn't
-// allow you to go forward again.
-add_test(function() {
- open_manager("addons://list/extension", function(aManager) {
- info("Part 1");
- is_in_list(aManager, "addons://list/extension", false, false);
-
- double_click_addon_element(aManager, "test1@tests.mozilla.org");
-
- wait_for_view_load(aManager, function(aManager) {
- info("Part 2");
- is_in_detail(aManager, "addons://list/extension", true, false);
-
- EventUtils.synthesizeMouseAtCenter(aManager.document.getElementById("detail-uninstall-btn"),
- { }, aManager);
-
- wait_for_view_load(aManager, function() {
- if (gUseInContentUI) {
- // TODO until bug 590661 is fixed the back button will be enabled
- // when displaying in content
- is_in_list(aManager, "addons://list/extension", true, false);
- } else {
- is_in_list(aManager, "addons://list/extension", false, false);
- }
-
- close_manager(aManager, run_next_test);
- });
- });
- });
-});
-
-// Tests that the back and forward buttons only show up for windowed mode
-add_test(function() {
- open_manager(null, function(aManager) {
- var doc = aManager.document;
-
- if (gUseInContentUI) {
- var btn = document.getElementById("back-button");
- if (!btn || is_hidden(btn)) {
- is_element_visible(doc.getElementById("back-btn"), "Back button should not be hidden");
- is_element_visible(doc.getElementById("forward-btn"), "Forward button should not be hidden");
- } else {
- is_element_hidden(doc.getElementById("back-btn"), "Back button should be hidden");
- is_element_hidden(doc.getElementById("forward-btn"), "Forward button should be hidden");
- }
- } else {
- is_element_visible(doc.getElementById("back-btn"), "Back button should not be hidden");
- is_element_visible(doc.getElementById("forward-btn"), "Forward button should not be hidden");
- }
-
- close_manager(aManager, run_next_test);
- });
-});
-
-// Tests that opening the manager opens the last view
-add_test(function() {
- open_manager("addons://list/plugin", function(aManager) {
- info("Part 1");
- is_in_list(aManager, "addons://list/plugin", false, false);
-
- close_manager(aManager, function() {
- open_manager(null, function(aManager) {
- info("Part 2");
- is_in_list(aManager, "addons://list/plugin", false, false);
-
- close_manager(aManager, run_next_test);
- });
- });
- });
-});
-
-// Tests that navigating the discovery page works when that was the first view
-add_test(function() {
- open_manager("addons://discover/", function(aManager) {
- info("1");
- is_in_discovery(aManager, MAIN_URL, false, false);
-
- clickLink(aManager, "link-good", function() {
- info("2");
- is_in_discovery(aManager, SECOND_URL, true, false);
-
- waitForLoad(aManager, function() {
- info("3");
- is_in_discovery(aManager, MAIN_URL, false, true);
-
- waitForLoad(aManager, function() {
- is_in_discovery(aManager, SECOND_URL, true, false);
-
- EventUtils.synthesizeMouseAtCenter(aManager.document.getElementById("category-plugin"), { }, aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- is_in_list(aManager, "addons://list/plugin", true, false);
-
- go_back(aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- is_in_discovery(aManager, SECOND_URL, true, true);
-
- go_back(aManager);
-
- waitForLoad(aManager, function() {
- is_in_discovery(aManager, MAIN_URL, false, true);
-
- close_manager(aManager, run_next_test);
- });
- });
- });
- });
-
- go_forward(aManager);
- });
-
- go_back(aManager);
- });
- });
-});
-
-// Tests that navigating the discovery page works when that was the second view
-add_test(function() {
- open_manager("addons://list/plugin", function(aManager) {
- is_in_list(aManager, "addons://list/plugin", false, false);
-
- EventUtils.synthesizeMouseAtCenter(aManager.document.getElementById("category-discover"), { }, aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- is_in_discovery(aManager, MAIN_URL, true, false);
-
- clickLink(aManager, "link-good", function() {
- is_in_discovery(aManager, SECOND_URL, true, false);
-
- waitForLoad(aManager, function() {
- is_in_discovery(aManager, MAIN_URL, true, true);
-
- waitForLoad(aManager, function() {
- is_in_discovery(aManager, SECOND_URL, true, false);
-
- EventUtils.synthesizeMouseAtCenter(aManager.document.getElementById("category-plugin"), { }, aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- is_in_list(aManager, "addons://list/plugin", true, false);
-
- go_back(aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- is_in_discovery(aManager, SECOND_URL, true, true);
-
- go_back(aManager);
-
- waitForLoad(aManager, function() {
- is_in_discovery(aManager, MAIN_URL, true, true);
-
- go_back(aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- is_in_list(aManager, "addons://list/plugin", false, true);
-
- go_forward(aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- is_in_discovery(aManager, MAIN_URL, true, true);
-
- waitForLoad(aManager, function() {
- is_in_discovery(aManager, SECOND_URL, true, true);
-
- close_manager(aManager, run_next_test);
- });
-
- go_forward(aManager);
- });
- });
- });
- });
- });
- });
-
- go_forward(aManager);
- });
-
- go_back(aManager);
- });
- });
- });
-});
-
-// Tests that when displaying in-content and opened in the background the back
-// and forward buttons still appear when switching tabs
-add_test(function() {
- if (!gUseInContentUI) {
- run_next_test();
- return;
- }
-
- var tab = gBrowser.addTab("about:addons");
- var browser = gBrowser.getBrowserForTab(tab);
-
- browser.addEventListener("pageshow", function(event) {
- if (event.target.location.href != "about:addons")
- return;
- browser.removeEventListener("pageshow", arguments.callee, true);
-
- wait_for_manager_load(browser.contentWindow.wrappedJSObject, function() {
- wait_for_view_load(browser.contentWindow.wrappedJSObject, function(aManager) {
- gBrowser.selectedTab = tab;
-
- var doc = aManager.document;
- var btn = document.getElementById("back-button");
- if (!btn || is_hidden(btn)) {
- is_element_visible(doc.getElementById("back-btn"), "Back button should not be hidden");
- is_element_visible(doc.getElementById("forward-btn"), "Forward button should not be hidden");
- } else {
- is_element_hidden(doc.getElementById("back-btn"), "Back button should be hidden");
- is_element_hidden(doc.getElementById("forward-btn"), "Forward button should be hidden");
- }
-
- close_manager(aManager, run_next_test);
- });
- });
- }, true);
-});
-
-// Tests that refreshing the disicovery pane integrates properly with history
-add_test(function() {
- open_manager("addons://list/plugin", function(aManager) {
- is_in_list(aManager, "addons://list/plugin", false, false);
-
- EventUtils.synthesizeMouseAtCenter(aManager.document.getElementById("category-discover"), { }, aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- is_in_discovery(aManager, MAIN_URL, true, false);
-
- clickLink(aManager, "link-good", function() {
- is_in_discovery(aManager, SECOND_URL, true, false);
-
- EventUtils.synthesizeMouseAtCenter(aManager.document.getElementById("category-discover"), { }, aManager);
-
- waitForLoad(aManager, function() {
- is_in_discovery(aManager, MAIN_URL, true, false);
-
- go_back(aManager);
-
- waitForLoad(aManager, function() {
- is_in_discovery(aManager, SECOND_URL, true, true);
-
- go_back(aManager);
-
- waitForLoad(aManager, function() {
- is_in_discovery(aManager, MAIN_URL, true, true);
-
- go_back(aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- is_in_list(aManager, "addons://list/plugin", false, true);
-
- go_forward(aManager);
-
- wait_for_view_load(aManager, function(aManager) {
- is_in_discovery(aManager, MAIN_URL, true, true);
-
- waitForLoad(aManager, function() {
- is_in_discovery(aManager, SECOND_URL, true, true);
-
- waitForLoad(aManager, function() {
- is_in_discovery(aManager, MAIN_URL, true, false);
-
- close_manager(aManager, run_next_test);
- });
- go_forward(aManager);
- });
-
- go_forward(aManager);
- });
- });
- });
- });
- });
- });
- });
- });
-});