summaryrefslogtreecommitdiffstats
path: root/toolkit/mozapps/extensions/test/browser/browser_bug562797.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/mozapps/extensions/test/browser/browser_bug562797.js')
-rw-r--r--toolkit/mozapps/extensions/test/browser/browser_bug562797.js144
1 files changed, 67 insertions, 77 deletions
diff --git a/toolkit/mozapps/extensions/test/browser/browser_bug562797.js b/toolkit/mozapps/extensions/test/browser/browser_bug562797.js
index 55e882a05..6560e9a2c 100644
--- a/toolkit/mozapps/extensions/test/browser/browser_bug562797.js
+++ b/toolkit/mozapps/extensions/test/browser/browser_bug562797.js
@@ -58,27 +58,23 @@ function test() {
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"
- }]);
- });
+ 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();
}
@@ -97,11 +93,11 @@ function go_back(aManager) {
}
function go_back_backspace(aManager) {
- EventUtils.synthesizeKey("VK_BACK_SPACE", {});
+ EventUtils.synthesizeKey("VK_BACK_SPACE",{});
}
function go_forward_backspace(aManager) {
- EventUtils.synthesizeKey("VK_BACK_SPACE", {shiftKey: true});
+ EventUtils.synthesizeKey("VK_BACK_SPACE",{shiftKey: true});
}
function go_forward(aManager) {
@@ -131,7 +127,7 @@ 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");
+ is(doc.getElementById("view-port").selectedPanel.id, "list-view", "Should be on the right view");
check_state(aManager, canGoBack, canGoForward);
}
@@ -140,7 +136,7 @@ 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("view-port").selectedPanel.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);
@@ -150,7 +146,7 @@ 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");
+ is(doc.getElementById("view-port").selectedPanel.id, "detail-view", "Should be on the right view");
check_state(aManager, canGoBack, canGoForward);
}
@@ -239,61 +235,55 @@ add_test(function() {
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");
- }
+ info("Part 1");
+ gBrowser.selectedTab = gBrowser.addTab();
+ gBrowser.loadURI("http://example.com/");
+ gBrowser.addEventListener("pageshow", function(event) {
+ if (event.target.location != "http://example.com/")
+ return;
+ gBrowser.removeEventListener("pageshow", arguments.callee, false);
- go_back(manager);
- yield promiseLoaded;
+ //Must let the load complete for it to go into the session history
+ executeSoon(function() {
+ info("Part 2");
+ ok(!gBrowser.canGoBack, "Should not be able to go back");
+ ok(!gBrowser.canGoForward, "Should not be able to go forward");
- 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");
+ gBrowser.loadURI("about:addons");
+ gBrowser.addEventListener("pageshow", function(event) {
+ if (event.target.location != "about:addons")
+ return;
+ gBrowser.removeEventListener("pageshow", arguments.callee, true);
- promiseLoaded = BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
- go_forward(manager);
- yield promiseLoaded;
+ wait_for_view_load(gBrowser.contentWindow.wrappedJSObject, function(aManager) {
+ info("Part 3");
+ is_in_list(aManager, "addons://list/extension", true, false);
- manager = yield promiseManagerLoaded(gBrowser.contentWindow.wrappedJSObject);
- info("Part 5");
- is_in_list(manager, "addons://list/extension", true, false);
+ executeSoon(() => go_back(aManager));
+ gBrowser.addEventListener("pageshow", function() {
+ gBrowser.removeEventListener("pageshow", arguments.callee, false);
+ info("Part 4");
+ executeSoon(() => executeSoon(function () {
+ 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");
+
+ go_forward(aManager);
+ gBrowser.addEventListener("pageshow", function() {
+ gBrowser.removeEventListener("pageshow", arguments.callee, false);
+ wait_for_view_load(gBrowser.contentWindow.wrappedJSObject, function(aManager) {
+ info("Part 5");
+ is_in_list(aManager, "addons://list/extension", true, false);
- close_manager(manager, run_next_test);
- });
+ close_manager(aManager, run_next_test);
+ });
+ }, false);
+ }));
+ }, false);
+ });
+ }, true);
+ });
+ }, false);
});
// Tests simple forward and back navigation and that the right heading and
@@ -928,7 +918,7 @@ add_test(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);