summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/css/css-values/urls
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/css/css-values/urls')
-rw-r--r--testing/web-platform/tests/css/css-values/urls/empty.html39
-rw-r--r--testing/web-platform/tests/css/css-values/urls/fragment-only.html40
-rw-r--r--testing/web-platform/tests/css/css-values/urls/resolve-relative-to-base.html35
-rw-r--r--testing/web-platform/tests/css/css-values/urls/resolve-relative-to-stylesheet.html33
-rw-r--r--testing/web-platform/tests/css/css-values/urls/support/empty-urls.css9
-rw-r--r--testing/web-platform/tests/css/css-values/urls/support/fragment-only-urls.css19
-rw-r--r--testing/web-platform/tests/css/css-values/urls/support/relative-urls.css15
7 files changed, 190 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-values/urls/empty.html b/testing/web-platform/tests/css/css-values/urls/empty.html
new file mode 100644
index 0000000000..3748567545
--- /dev/null
+++ b/testing/web-platform/tests/css/css-values/urls/empty.html
@@ -0,0 +1,39 @@
+<!doctype html>
+<title>Empty URLs behaviour</title>
+<link rel=help href=https://drafts.csswg.org/css-values/#url-empty>
+<link rel=help href=https://github.com/w3c/csswg-drafts/issues/2211#issuecomment-365677844>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<style>
+#inline-unquoted {
+ background-image: url();
+ cursor: url(), pointer;
+}
+
+#inline-quoted {
+ background-image: url("");
+ cursor: url(""), pointer;
+}
+</style>
+<link rel=stylesheet href=support/empty-urls.css>
+<div id="inline-unquoted"></div>
+<div id="inline-quoted"></div>
+<div id="external-unquoted"></div>
+<div id="external-quoted"></div>
+<script>
+const ids = [
+ "inline-unquoted",
+ "inline-quoted",
+ "external-unquoted",
+ "external-quoted"
+];
+
+for (let id of ids) {
+ test(function() {
+ const el = document.getElementById(id);
+ const style = window.getComputedStyle(el);
+ assert_equals(style["background-image"], 'url("")');
+ assert_equals(style["cursor"], 'url(""), pointer');
+ }, "empty URL: " + id);
+}
+</script>
diff --git a/testing/web-platform/tests/css/css-values/urls/fragment-only.html b/testing/web-platform/tests/css/css-values/urls/fragment-only.html
new file mode 100644
index 0000000000..a7153adf8f
--- /dev/null
+++ b/testing/web-platform/tests/css/css-values/urls/fragment-only.html
@@ -0,0 +1,40 @@
+<!doctype html>
+<title>Fragment-on URLs behaviour</title>
+<link rel=help href=https://drafts.csswg.org/css-values/#local-urls>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<style>
+#inline-unquoted {
+ background-image: url(#foo);
+ cursor: url(#foo), pointer;
+}
+
+#inline-quoted {
+ background-image: url("#foo");
+ cursor: url("#foo"), pointer;
+}
+</style>
+<link rel=stylesheet href=support/fragment-only-urls.css>
+<div id="inline-unquoted"></div>
+<div id="inline-quoted"></div>
+<div id="external-unquoted"></div>
+<div id="external-quoted"></div>
+<div id="external-variable"></div>
+<script>
+const ids = [
+ "inline-unquoted",
+ "inline-quoted",
+ "external-unquoted",
+ "external-quoted",
+ "external-variable",
+];
+
+for (let id of ids) {
+ test(function() {
+ const el = document.getElementById(id);
+ const style = window.getComputedStyle(el);
+ assert_equals(style["background-image"], 'url("#foo")');
+ assert_equals(style["cursor"], 'url("#foo"), pointer');
+ }, "empty URL: " + id);
+}
+</script>
diff --git a/testing/web-platform/tests/css/css-values/urls/resolve-relative-to-base.html b/testing/web-platform/tests/css/css-values/urls/resolve-relative-to-base.html
new file mode 100644
index 0000000000..bfbe127ab2
--- /dev/null
+++ b/testing/web-platform/tests/css/css-values/urls/resolve-relative-to-base.html
@@ -0,0 +1,35 @@
+<!doctype html>
+<title>URLs in embedded style sheets resolve relative to the document base URI</title>
+<link rel=help href=https://drafts.csswg.org/css-values/#relative-urls>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<base href="http://{{hosts[alt][www]}}">
+<style>
+:root {
+ --image-path: url("images/test.png");
+}
+#relative-image-url {
+ background-image: url(images/test.png);
+}
+
+#relative-image-variable-url {
+ background-image: var(--image-path);
+}
+</style>
+<div id="relative-image-url"></div>
+<div id="relative-image-variable-url"></div>
+<script>
+const ids = [
+ "relative-image-url",
+ "relative-image-variable-url"
+];
+
+for (let id of ids) {
+ test(() => {
+ const el = document.getElementById(id);
+ const backgroundImageStyle = window.getComputedStyle(el)["background-image"];
+ const baseRelativeImageURL = new URL("images/test.png", document.baseURI);
+ assert_equals(backgroundImageStyle, `url("${baseRelativeImageURL.href}")`);
+ }, "base-relative URL: " + id);
+}
+</script>
diff --git a/testing/web-platform/tests/css/css-values/urls/resolve-relative-to-stylesheet.html b/testing/web-platform/tests/css/css-values/urls/resolve-relative-to-stylesheet.html
new file mode 100644
index 0000000000..1475d97052
--- /dev/null
+++ b/testing/web-platform/tests/css/css-values/urls/resolve-relative-to-stylesheet.html
@@ -0,0 +1,33 @@
+<!doctype html>
+<title>URLs in a stylesheet resolve relative to the stylesheet</title>
+<link rel=help href=https://drafts.csswg.org/css-values/#relative-urls>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<link id="stylesheet" rel=stylesheet href=support/relative-urls.css>
+<div id="stylesheet-relative-image"></div>
+<div id="stylesheet-relative-variable-image"></div>
+<div id="stylesheet-relative-document-variable-image"></div>
+<style>
+ :root {
+ --image-path-document: url("images/test.png");
+ }
+</style>
+<script>
+const ids = [
+ "stylesheet-relative-image",
+ "stylesheet-relative-variable-image",
+ "stylesheet-relative-document-variable-image",
+];
+
+for (let id of ids) {
+ test(() => {
+ const el = document.getElementById(id);
+ const backgroundImageStyle = window.getComputedStyle(el)["background-image"];
+
+ const stylesheet = document.getElementById("stylesheet");
+ const sheetRelativeImageURL = new URL("images/test.png", stylesheet.href);
+
+ assert_equals(backgroundImageStyle, `url("${sheetRelativeImageURL.href}")`);
+ }, "stylesheet-relative URL: " + id);
+}
+</script>
diff --git a/testing/web-platform/tests/css/css-values/urls/support/empty-urls.css b/testing/web-platform/tests/css/css-values/urls/support/empty-urls.css
new file mode 100644
index 0000000000..0559e3b235
--- /dev/null
+++ b/testing/web-platform/tests/css/css-values/urls/support/empty-urls.css
@@ -0,0 +1,9 @@
+#external-unquoted {
+ background-image: url();
+ cursor: url(), pointer;
+}
+
+#external-quoted {
+ background-image: url("");
+ cursor: url(""), pointer;
+}
diff --git a/testing/web-platform/tests/css/css-values/urls/support/fragment-only-urls.css b/testing/web-platform/tests/css/css-values/urls/support/fragment-only-urls.css
new file mode 100644
index 0000000000..2c39a087e9
--- /dev/null
+++ b/testing/web-platform/tests/css/css-values/urls/support/fragment-only-urls.css
@@ -0,0 +1,19 @@
+:root {
+ --fragment-image-url: url("#foo");
+ --fragment-cursor-url: url("#foo"), pointer;
+}
+
+#external-unquoted {
+ background-image: url(#foo);
+ cursor: url(#foo), pointer;
+}
+
+#external-quoted {
+ background-image: url("#foo");
+ cursor: url("#foo"), pointer;
+}
+
+#external-variable {
+ background-image: var(--fragment-image-url);
+ cursor: var(--fragment-cursor-url);
+}
diff --git a/testing/web-platform/tests/css/css-values/urls/support/relative-urls.css b/testing/web-platform/tests/css/css-values/urls/support/relative-urls.css
new file mode 100644
index 0000000000..1354c655e9
--- /dev/null
+++ b/testing/web-platform/tests/css/css-values/urls/support/relative-urls.css
@@ -0,0 +1,15 @@
+:root {
+ --image-path-stylesheet: url("images/test.png");
+}
+
+#stylesheet-relative-image {
+ background-image: url(images/test.png);
+}
+
+#stylesheet-relative-variable-image {
+ background-image: var(--image-path-stylesheet);
+}
+
+#stylesheet-relative-document-variable-image {
+ background-image: var(--image-path-document);
+}