diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
commit | 0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d (patch) | |
tree | a31f07c9bcca9d56ce61e9a1ffd30ef350d513aa /testing/web-platform/tests/css/cssom/CSSStyleSheet-constructable-baseURL.tentative.html | |
parent | Initial commit. (diff) | |
download | firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.tar.xz firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.zip |
Adding upstream version 115.8.0esr.upstream/115.8.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/css/cssom/CSSStyleSheet-constructable-baseURL.tentative.html')
-rw-r--r-- | testing/web-platform/tests/css/cssom/CSSStyleSheet-constructable-baseURL.tentative.html | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/cssom/CSSStyleSheet-constructable-baseURL.tentative.html b/testing/web-platform/tests/css/cssom/CSSStyleSheet-constructable-baseURL.tentative.html new file mode 100644 index 0000000000..8997a59e9c --- /dev/null +++ b/testing/web-platform/tests/css/cssom/CSSStyleSheet-constructable-baseURL.tentative.html @@ -0,0 +1,66 @@ +<!DOCTYPE html> +<title>CSSStyleSheet baseURL</title> +<link rel="author" title="Erik Nordin" href="mailto:enordin@mozilla.com"> +<link rel="help" href="https://github.com/WICG/construct-stylesheets/issues/95#issuecomment-593545252"> +<div id="target"></div> +<script src='/resources/testharness.js'></script> +<script src='/resources/testharnessreport.js'></script> +<script> + +function currentLocation() { + const sections = location.href.split("/") + sections.pop(); + return sections.join("/"); +} + +test(() => { + const span = document.createElement("span"); + target.appendChild(span); + span.attachShadow({ mode: "open" }) + const shadowDiv = document.createElement("div"); + span.shadowRoot.appendChild(shadowDiv); + + const fileName = "example.png" + const baseURL = `${location.origin}/custom/path/`; + const fullURL = `${baseURL}${fileName}`; + + const sheet = new CSSStyleSheet({ baseURL }); + span.shadowRoot.adoptedStyleSheets = [sheet]; + + sheet.replaceSync(`* { background-image: url("${fileName}"); }`); + const styleFromRelative = getComputedStyle(shadowDiv).backgroundImage; + + sheet.replaceSync(`* { background-image: url("${fullURL}"); }`); + const styleFromFull = getComputedStyle(shadowDiv).backgroundImage; + + assert_equals(styleFromRelative, styleFromFull); +}, "Constructing sheet with custom base URL ueses that URL for CSS rules"); + +test(() => { + const span = document.createElement("span"); + target.appendChild(span); + span.attachShadow({ mode: "open" }) + const shadowDiv = document.createElement("div"); + span.shadowRoot.appendChild(shadowDiv); + + const fileName = "example.png" + const baseURL = "custom/path/"; + const fullURL = `${currentLocation()}/${baseURL}${fileName}`; + + const sheet = new CSSStyleSheet({ baseURL }); + span.shadowRoot.adoptedStyleSheets = [sheet]; + + sheet.replaceSync(`* { background-image: url("${fileName}"); }`); + const styleFromRelative = getComputedStyle(shadowDiv).backgroundImage; + + sheet.replaceSync(`* { background-image: url("${fullURL}"); }`); + const styleFromFull = getComputedStyle(shadowDiv).backgroundImage; + + assert_equals(styleFromRelative, styleFromFull); +}, "Constructing sheet with relative URL adds to the constructor document's base URL"); + +test(() => { + assert_throws_dom("NotAllowedError", () => { new CSSStyleSheet({ baseURL: "https://test:test/"}) }); +}, "Constructing sheet with invalid base URL throws a NotAllowedError"); + +</script> |