From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- .../browser_ext_browserAction_popup_resize.js | 79 ++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 browser/components/extensions/test/browser/browser_ext_browserAction_popup_resize.js (limited to 'browser/components/extensions/test/browser/browser_ext_browserAction_popup_resize.js') diff --git a/browser/components/extensions/test/browser/browser_ext_browserAction_popup_resize.js b/browser/components/extensions/test/browser/browser_ext_browserAction_popup_resize.js new file mode 100644 index 0000000000..4a7ec8f2b7 --- /dev/null +++ b/browser/components/extensions/test/browser/browser_ext_browserAction_popup_resize.js @@ -0,0 +1,79 @@ +/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* vim: set sts=2 sw=2 et tw=80: */ +"use strict"; + +loadTestSubscript("head_browserAction.js"); + +add_task(async function testBrowserActionPopupResize() { + let extension = ExtensionTestUtils.loadExtension({ + manifest: { + browser_action: { + default_popup: "popup.html", + default_area: "navbar", + browser_style: true, + }, + }, + + files: { + "popup.html": + '', + }, + }); + + await extension.startup(); + + let browser = await openBrowserActionPanel(extension, undefined, true); + + async function checkSize(expected) { + let dims = await promiseContentDimensions(browser); + + Assert.lessOrEqual( + Math.abs(dims.window.innerHeight - expected), + 1, + `Panel window should be ${expected}px tall (was ${dims.window.innerHeight})` + ); + is( + dims.body.clientHeight, + dims.body.scrollHeight, + "Panel body should be tall enough to fit its contents" + ); + + // Tolerate if it is 1px too wide, as that may happen with the current resizing method. + Assert.lessOrEqual( + Math.abs(dims.window.innerWidth - expected), + 1, + `Panel window should be ${expected}px wide` + ); + is( + dims.body.clientWidth, + dims.body.scrollWidth, + "Panel body should be wide enough to fit its contents" + ); + } + + function setSize(size) { + content.document.body.style.height = `${size}px`; + content.document.body.style.width = `${size}px`; + } + + let sizes = [200, 400, 300]; + + for (let size of sizes) { + await alterContent(browser, setSize, size); + await checkSize(size); + } + + let popup = getBrowserActionPopup(extension); + await closeBrowserAction(extension); + is(popup.state, "closed", "browserAction popup has been closed"); + + await extension.unload(); +}); + +add_task(async function testBrowserActionMenuResizeStandards() { + await testPopupSize(true); +}); + +add_task(async function testBrowserActionMenuResizeQuirks() { + await testPopupSize(false); +}); -- cgit v1.2.3