diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-12 05:43:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-12 05:43:14 +0000 |
commit | 8dd16259287f58f9273002717ec4d27e97127719 (patch) | |
tree | 3863e62a53829a84037444beab3abd4ed9dfc7d0 /testing/web-platform/tests/css/cssom/CSSStyleSheet-constructable-baseURL.html | |
parent | Releasing progress-linux version 126.0.1-1~progress7.99u1. (diff) | |
download | firefox-8dd16259287f58f9273002717ec4d27e97127719.tar.xz firefox-8dd16259287f58f9273002717ec4d27e97127719.zip |
Merging upstream version 127.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/css/cssom/CSSStyleSheet-constructable-baseURL.html')
-rw-r--r-- | testing/web-platform/tests/css/cssom/CSSStyleSheet-constructable-baseURL.html | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/cssom/CSSStyleSheet-constructable-baseURL.html b/testing/web-platform/tests/css/cssom/CSSStyleSheet-constructable-baseURL.html new file mode 100644 index 0000000000..d0f0f828b0 --- /dev/null +++ b/testing/web-platform/tests/css/cssom/CSSStyleSheet-constructable-baseURL.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://drafts.csswg.org/cssom-1/#dom-cssstylesheetinit-baseurl"> +<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> |