diff options
Diffstat (limited to 'browser/components/screenshots/tests/browser/browser_screenshots_test_full_page.js')
-rw-r--r-- | browser/components/screenshots/tests/browser/browser_screenshots_test_full_page.js | 97 |
1 files changed, 85 insertions, 12 deletions
diff --git a/browser/components/screenshots/tests/browser/browser_screenshots_test_full_page.js b/browser/components/screenshots/tests/browser/browser_screenshots_test_full_page.js index 006a9819ed..10828eceec 100644 --- a/browser/components/screenshots/tests/browser/browser_screenshots_test_full_page.js +++ b/browser/components/screenshots/tests/browser/browser_screenshots_test_full_page.js @@ -39,16 +39,14 @@ add_task(async function test_fullpageScreenshot() { ); // click the full page button in panel - let visiblePage = panel + let fullpageButton = panel .querySelector("screenshots-buttons") - .shadowRoot.querySelector(".full-page"); - visiblePage.click(); - - let dialog = helper.getDialog(); + .shadowRoot.querySelector("#full-page"); + fullpageButton.click(); await screenshotReady; - let copyButton = dialog._frame.contentDocument.getElementById("copy"); + let copyButton = helper.getDialogButton("copy"); ok(copyButton, "Got the copy button"); let clipboardChanged = helper.waitForRawClipboardChange( @@ -136,16 +134,14 @@ add_task(async function test_fullpageScreenshotScrolled() { ); // click the full page button in panel - let visiblePage = panel + let fullpageButton = panel .querySelector("screenshots-buttons") - .shadowRoot.querySelector(".full-page"); - visiblePage.click(); - - let dialog = helper.getDialog(); + .shadowRoot.querySelector("#full-page"); + fullpageButton.click(); await screenshotReady; - let copyButton = dialog._frame.contentDocument.getElementById("copy"); + let copyButton = helper.getDialogButton("copy"); ok(copyButton, "Got the copy button"); let clipboardChanged = helper.waitForRawClipboardChange( @@ -198,3 +194,80 @@ add_task(async function test_fullpageScreenshotScrolled() { } ); }); + +add_task(async function test_fullpageScreenshotRTL() { + await BrowserTestUtils.withNewTab( + { + gBrowser, + url: RTL_TEST_PAGE, + }, + async browser => { + let helper = new ScreenshotsHelper(browser); + let contentInfo = await helper.getContentDimensions(); + ok(contentInfo, "Got dimensions back from the content"); + let devicePixelRatio = await getContentDevicePixelRatio(browser); + + let expectedWidth = Math.floor( + devicePixelRatio * contentInfo.scrollWidth + ); + let expectedHeight = Math.floor( + devicePixelRatio * contentInfo.scrollHeight + ); + + // click toolbar button so panel shows + helper.triggerUIFromToolbar(); + + let panel = await helper.waitForPanel(); + + let screenshotReady = TestUtils.topicObserved( + "screenshots-preview-ready" + ); + + // click the full page button in panel + let fullpageButton = panel + .querySelector("screenshots-buttons") + .shadowRoot.querySelector("#full-page"); + fullpageButton.click(); + + await screenshotReady; + + let copyButton = helper.getDialogButton("copy"); + ok(copyButton, "Got the copy button"); + + info("contentInfo: " + JSON.stringify(contentInfo, null, 2)); + info( + "expecting: " + + JSON.stringify({ expectedWidth, expectedHeight }, null, 2) + ); + let clipboardChanged = helper.waitForRawClipboardChange( + expectedWidth, + expectedHeight + ); + + // click copy button on dialog box + copyButton.click(); + + info("Waiting for clipboard change"); + let result = await clipboardChanged; + + info("result: " + JSON.stringify(result, null, 2)); + info("contentInfo: " + JSON.stringify(contentInfo, null, 2)); + + Assert.equal(result.width, expectedWidth, "Widths should be equal"); + Assert.equal(result.height, expectedHeight, "Heights should be equal"); + + assertPixel(result.color.topLeft, [255, 255, 255], "Top left pixel"); + assertPixel(result.color.topRight, [255, 255, 255], "Top right pixel"); + assertPixel( + result.color.bottomLeft, + [255, 255, 255], + "Bottom left pixel" + ); + assertPixel( + result.color.bottomRight, + [255, 255, 255], + "Bottom right pixel" + ); + } + ); +}); |