diff options
Diffstat (limited to 'browser/components/screenshots/tests/browser/browser_test_moving_tab_to_new_window.js')
-rw-r--r-- | browser/components/screenshots/tests/browser/browser_test_moving_tab_to_new_window.js | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/browser/components/screenshots/tests/browser/browser_test_moving_tab_to_new_window.js b/browser/components/screenshots/tests/browser/browser_test_moving_tab_to_new_window.js new file mode 100644 index 0000000000..c3bb546f3a --- /dev/null +++ b/browser/components/screenshots/tests/browser/browser_test_moving_tab_to_new_window.js @@ -0,0 +1,123 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +add_task(async function test_movingTabToNewWindow() { + let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, TEST_PAGE); + let originalHelper = new ScreenshotsHelper(tab.linkedBrowser); + originalHelper.triggerUIFromToolbar(); + await originalHelper.waitForOverlay(); + await originalHelper.dragOverlay(10, 10, 300, 300); + + let newWindow = gBrowser.replaceTabWithWindow(tab); + let swapDocShellPromise = BrowserTestUtils.waitForEvent( + tab.linkedBrowser, + "SwapDocShells" + ); + await swapDocShellPromise; + + let newtab = newWindow.gBrowser.selectedTab; + let newHelper = new ScreenshotsHelper(newtab.linkedBrowser); + + let isInitialized = await newHelper.isOverlayInitialized(); + + ok(isInitialized, "Overlay is initialized after switching windows"); + ok( + !ScreenshotsUtils.browserToScreenshotsState.has(tab.linkedBrowser), + "The old browser is no longer in the ScreenshotsUtils weakmap" + ); + ok( + ScreenshotsUtils.browserToScreenshotsState.has(newtab.linkedBrowser), + "The new browser is in the ScreenshotsUtils weakmap" + ); + + await newHelper.clickCancelButton(); + await newHelper.assertStateChange("crosshairs"); + await newHelper.waitForOverlay(); + + swapDocShellPromise = BrowserTestUtils.waitForEvent( + newtab.linkedBrowser, + "SwapDocShells" + ); + gBrowser.adoptTab(newWindow.gBrowser.selectedTab, 1, true); + await swapDocShellPromise; + + tab = gBrowser.selectedTab; + let helper = new ScreenshotsHelper(tab.linkedBrowser); + + isInitialized = await helper.isOverlayInitialized(); + + ok(!isInitialized, "Overlay is not initialized"); + ok( + !ScreenshotsUtils.browserToScreenshotsState.has(tab.linkedBrowser), + "The old browser is no longer in the ScreenshotsUtils weakmap" + ); + ok( + !ScreenshotsUtils.browserToScreenshotsState.has(newtab.linkedBrowser), + "The new browser is no longer in the ScreenshotsUtils weakmap" + ); + + await BrowserTestUtils.removeTab(tab); +}); + +add_task(async function test_movingParentProcessTabToNewWindow() { + let tab = await BrowserTestUtils.openNewForegroundTab( + gBrowser, + "about:robots" + ); + let originalHelper = new ScreenshotsHelper(tab.linkedBrowser); + originalHelper.triggerUIFromToolbar(); + await originalHelper.waitForOverlay(); + await originalHelper.dragOverlay(10, 10, 300, 300); + + let newWindow = gBrowser.replaceTabWithWindow(tab); + let swapDocShellPromise = BrowserTestUtils.waitForEvent( + tab.linkedBrowser, + "SwapDocShells" + ); + await swapDocShellPromise; + + let newtab = newWindow.gBrowser.selectedTab; + let newHelper = new ScreenshotsHelper(newtab.linkedBrowser); + + let isInitialized = await newHelper.isOverlayInitialized(); + + ok(isInitialized, "Overlay is initialized after switching windows"); + ok( + !ScreenshotsUtils.browserToScreenshotsState.has(tab.linkedBrowser), + "The old browser is no longer in the ScreenshotsUtils weakmap" + ); + ok( + ScreenshotsUtils.browserToScreenshotsState.has(newtab.linkedBrowser), + "The new browser is in the ScreenshotsUtils weakmap" + ); + + await newHelper.clickCancelButton(); + await newHelper.assertStateChange("crosshairs"); + await newHelper.waitForOverlay(); + + swapDocShellPromise = BrowserTestUtils.waitForEvent( + newtab.linkedBrowser, + "SwapDocShells" + ); + gBrowser.adoptTab(newWindow.gBrowser.selectedTab, 1, true); + await swapDocShellPromise; + + tab = gBrowser.selectedTab; + let helper = new ScreenshotsHelper(tab.linkedBrowser); + + isInitialized = await helper.isOverlayInitialized(); + + ok(!isInitialized, "Overlay is not initialized"); + ok( + !ScreenshotsUtils.browserToScreenshotsState.has(tab.linkedBrowser), + "The old browser is no longer in the ScreenshotsUtils weakmap" + ); + ok( + !ScreenshotsUtils.browserToScreenshotsState.has(newtab.linkedBrowser), + "The new browser is no longer in the ScreenshotsUtils weakmap" + ); + + await BrowserTestUtils.removeTab(tab); +}); |