diff options
Diffstat (limited to 'toolkit/mozapps/extensions/test/browser/browser_bug562797.js')
-rw-r--r-- | toolkit/mozapps/extensions/test/browser/browser_bug562797.js | 144 |
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); |