diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /devtools/client/inspector/rules/test/browser_rules_print_media_simulation.js | |
parent | Initial commit. (diff) | |
download | thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | devtools/client/inspector/rules/test/browser_rules_print_media_simulation.js | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/devtools/client/inspector/rules/test/browser_rules_print_media_simulation.js b/devtools/client/inspector/rules/test/browser_rules_print_media_simulation.js new file mode 100644 index 0000000000..1ba411b56a --- /dev/null +++ b/devtools/client/inspector/rules/test/browser_rules_print_media_simulation.js @@ -0,0 +1,96 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +// Test print media simulation. + +// Load the test page under .com TLD, to make the inner .org iframe remote with +// Fission. +const TEST_URI = URL_ROOT_COM_SSL + "doc_print_media_simulation.html"; + +add_task(async function () { + await addTab(TEST_URI); + const { inspector, view } = await openRuleView(); + + info("Check that the print simulation button exists"); + const button = inspector.panelDoc.querySelector("#print-simulation-toggle"); + ok(button, "The print simulation button exists"); + + ok(!button.classList.contains("checked"), "The print button is not checked"); + + // Helper to retrieve the background-color property of the selected element + // All the test elements are expected to have a single background-color rule + // for this test. + const ruleViewHasColor = async color => + (await getPropertiesForRuleIndex(view, 1)).has("background-color:" + color); + + info("Select a div that will change according to print simulation"); + await selectNode("div", inspector); + ok( + await ruleViewHasColor("#f00"), + "The rule view shows the expected initial rule" + ); + is( + getRuleViewAncestorRulesDataElementByIndex(view, 1), + null, + "No media query information are displayed initially" + ); + + info("Click on the button and wait for print media to be applied"); + button.click(); + + await waitFor(() => button.classList.contains("checked")); + ok(true, "The button is now checked"); + + await waitFor(() => ruleViewHasColor("#00f")); + ok( + true, + "The rules view was updated with the rule view from the print media query" + ); + is( + getRuleViewAncestorRulesDataTextByIndex(view, 1), + "@media print", + "Media queries information are displayed" + ); + + info("Select the node from the remote iframe"); + await selectNodeInFrames(["iframe", "html"], inspector); + + ok( + await ruleViewHasColor("#0ff"), + "The simulation is also applied on the remote iframe" + ); + is( + getRuleViewAncestorRulesDataTextByIndex(view, 1), + "@media print", + "Media queries information are displayed for the node on the remote iframe as well" + ); + + info("Select the top level div again"); + await selectNode("div", inspector); + + info("Click the button again to disable print simulation"); + button.click(); + + await waitFor(() => !button.classList.contains("checked")); + ok(true, "The button is no longer checked"); + + await waitFor(() => ruleViewHasColor("#f00")); + is( + getRuleViewAncestorRulesDataElementByIndex(view, 1), + null, + "media query is no longer displayed" + ); + + info("Select the node from the remote iframe again"); + await selectNodeInFrames(["iframe", "html"], inspector); + + await waitFor(() => ruleViewHasColor("#ff0")); + ok(true, "The simulation stopped on the remote iframe as well"); + is( + getRuleViewAncestorRulesDataElementByIndex(view, 1), + null, + "media query is no longer displayed on the remote iframe as well" + ); +}); |