diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /testing/web-platform/tests/css/css-content | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/css/css-content')
137 files changed, 3171 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-content/META.yml b/testing/web-platform/tests/css/css-content/META.yml new file mode 100644 index 0000000000..848b42b955 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/META.yml @@ -0,0 +1,3 @@ +spec: https://drafts.csswg.org/css-content/ +suggested_reviewers: + - dauwhe diff --git a/testing/web-platform/tests/css/css-content/attr-case-sensitivity-001.html b/testing/web-platform/tests/css/css-content/attr-case-sensitivity-001.html new file mode 100644 index 0000000000..03fcc3bc98 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/attr-case-sensitivity-001.html @@ -0,0 +1,15 @@ +<!doctype html> +<meta charset=utf-8> +<title>attr() with HTML attributes</title> +<link rel="help" href="https://www.w3.org/TR/css-values-4/#attr-notation"> +<link rel="help" href="https://www.w3.org/TR/css-content-3/#content-property"> +<link rel=match href="/css/css-content/attr-case-sensitivity-ref-001.html"> +<meta name="assert" content="This test checks that names specified in attr() for a content property are case-insensitive in HTML documents."> +<style type="text/css"> +div#gencon:before { content: attr(foo) attr(Foo) attr(fOO) + attr(bar) attr(Bar) attr(bAR) + attr(baz) attr(Baz) attr(BAZ) } +</style> +<body> +<div id="gencon" foo="a" Bar="b" bAZ="c"></div> +</body> diff --git a/testing/web-platform/tests/css/css-content/attr-case-sensitivity-002.html b/testing/web-platform/tests/css/css-content/attr-case-sensitivity-002.html new file mode 100644 index 0000000000..a1c4e88b8b --- /dev/null +++ b/testing/web-platform/tests/css/css-content/attr-case-sensitivity-002.html @@ -0,0 +1,18 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>attr() with attributes containing uppercase letters</title> +<link rel="help" href="https://www.w3.org/TR/css-values-4/#attr-notation"> +<link rel="match" href="/css/css-content/attr-case-sensitivity-ref-002.html"> +<link rel="mismatch" href="/css/css-content/attr-case-sensitivity-ref-003.html"> +<meta name="assert" content="This test checks that attribute names specified in the attr() function without a namespace are case-insensitive."> +<style> + #casematch:before { content: attr(RESULT); } + #lowercase:before { content: attr(RESULT); } +</style> +<p id="casematch"></p> +<p id="lowercase"></p> +<script> + // Test uses the Element.setAttributeNS() to create an attribute in the HTML document with capital letters + casematch.setAttributeNS('', 'RESULT', 'casematch'); + lowercase.setAttributeNS('', 'result', 'lowercase'); +</script>
\ No newline at end of file diff --git a/testing/web-platform/tests/css/css-content/attr-case-sensitivity-003.html b/testing/web-platform/tests/css/css-content/attr-case-sensitivity-003.html new file mode 100644 index 0000000000..d62a68f889 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/attr-case-sensitivity-003.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>attr() with MathML attributes</title> +<link rel="help" href="https://www.w3.org/TR/css-values-4/#attr-notation"> +<link rel="match" href="/css/css-content/attr-case-sensitivity-ref-003.html"> +<link rel="mismatch" href="/css/css-content/attr-case-sensitivity-ref-002.html"> +<meta name="assert" content="This test checks that MathML attribute names specified in the attr() function are case-sensitive."> +<style> + #casematch:before { content: attr(definitionURL); } + #lowercase:before { content: attr(definitionurl); } +</style> +<!-- Test uses the fact that MathML attributes have a namespace --> +<math id="casematch" definitionURL="casematch"></math> +<math id="lowercase" definitionURL="lowercase"></math>
\ No newline at end of file diff --git a/testing/web-platform/tests/css/css-content/attr-case-sensitivity-ref-001.html b/testing/web-platform/tests/css/css-content/attr-case-sensitivity-ref-001.html new file mode 100644 index 0000000000..3a7fe169c3 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/attr-case-sensitivity-ref-001.html @@ -0,0 +1,4 @@ +<!doctype html> +<meta charset=utf-8> +<title>attr case-sensitivity reference 001</title> +<div>aaabbbccc</div> diff --git a/testing/web-platform/tests/css/css-content/attr-case-sensitivity-ref-002.html b/testing/web-platform/tests/css/css-content/attr-case-sensitivity-ref-002.html new file mode 100644 index 0000000000..d9ef3edc31 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/attr-case-sensitivity-ref-002.html @@ -0,0 +1,4 @@ +<!doctype html> +<meta charset=utf-8> +<title>attr case-sensitivity reference 002</title> +<p>lowercase</p>
\ No newline at end of file diff --git a/testing/web-platform/tests/css/css-content/attr-case-sensitivity-ref-003.html b/testing/web-platform/tests/css/css-content/attr-case-sensitivity-ref-003.html new file mode 100644 index 0000000000..b6c86aa684 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/attr-case-sensitivity-ref-003.html @@ -0,0 +1,7 @@ +<!doctype html> +<meta charset=utf-8> +<title>attr case-sensitivity reference 003</title> +<style> + #casematch:before { content: "casematch"; } +</style> +<math id="casematch"></math>
\ No newline at end of file diff --git a/testing/web-platform/tests/css/css-content/computed-value.html b/testing/web-platform/tests/css/css-content/computed-value.html new file mode 100644 index 0000000000..505d4b4d00 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/computed-value.html @@ -0,0 +1,15 @@ +<!doctype html> +<meta charset="utf-8"> +<title>CSS Test: initial computed value of content for elements is not none</title> +<link rel="help" href="https://drafts.csswg.org/css-content/#content-property"> +<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1605803"> +<link rel="author" href="https://mozilla.org" title="Mozilla"> +<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +test(function() { + assert_equals(getComputedStyle(document.documentElement, "::before").content, "none"); + assert_not_equals(getComputedStyle(document.documentElement).content, "none"); +}, "initial computed value of content for elements is not none"); +</script> diff --git a/testing/web-platform/tests/css/css-content/content-animation.html b/testing/web-platform/tests/css/css-content/content-animation.html new file mode 100644 index 0000000000..396af94e49 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-animation.html @@ -0,0 +1,51 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>content animation</title> +<link rel="help" href="https://drafts.csswg.org/css-content/#content-property"> +<meta name="test" content="box-shadow supports animation"> +<link rel="author" href="mailto:graouts@apple.com" title="Antoine Quint"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + +.target::after { + content: "default"; +} + +@keyframes content-animation { + from { content: "from" } + to { content: "to" } +} + +.target.animated::after { + animation: content-animation 1s paused linear forwards; +} + +</style> +<body> +<div class="target"></div> +<script> + +test(function() { + const target = document.querySelector(".target"); + const style = getComputedStyle(target, "::after"); + + assert_equals(style.content, '"default"', "Before the animation is applied."); + + target.classList.add("animated"); + const animation = target.getAnimations({ subtree: true })[0]; + + const testContentAtTime = (time, expected) => { + animation.currentTime = time; + assert_equals(style.content, `"${expected}"`, `Check the animated value at time = ${time}ms`); + }; + + testContentAtTime(0, 'from'); + testContentAtTime(499, 'from'); + testContentAtTime(500, 'to'); + testContentAtTime(999, 'to'); + testContentAtTime(1000, 'to'); +}, "The content property can be animated with a discrete animation type."); + +</script> +</body> diff --git a/testing/web-platform/tests/css/css-content/content-no-interpolation.html b/testing/web-platform/tests/css/css-content/content-no-interpolation.html new file mode 100644 index 0000000000..89ca47afca --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-no-interpolation.html @@ -0,0 +1,15 @@ +<!DOCTYPE html> +<link rel=author href="mailto:jarhar@chromium.org"> +<link rel=help href="https://github.com/w3c/csswg-drafts/issues/4441"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> + +<body> +<script> +test_no_interpolation({ + property: 'content', + from: 'initial', + to: '"b"' +}); +</script> diff --git a/testing/web-platform/tests/css/css-content/content-none-details-ref.html b/testing/web-platform/tests/css/css-content/content-none-details-ref.html new file mode 100644 index 0000000000..ea844dc030 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-details-ref.html @@ -0,0 +1,72 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>Reference: content:none on DETAILS</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> + <meta name="flags" content="ahem"> + <style> +html,body { + color:black; background-color:white; font:4px/1 Ahem; padding:0; margin:0; +} +body { margin-left: 3ch; } +body > * { + content:none; + padding:0; margin:0; border:none; +} +::marker { content: 'M'; } +.after::after { content: 'A'; } +.before::before { content: 'B'; } +summary { display:none; } + </style> +</head> +<body> + +<script> + document.body.style.display = 'none'; + + const display = [ + "display:block", "display:inline", "display:ruby", "display:none", "display:grid", + "display:flex", "display:table", "display:list-item", "display:contents", + "columns:2", + ]; + const overflow = [ + "", "overflow:scroll", "overflow:clip", + ]; + const position = [ + "", "position:absolute", + ]; + const tags = [ + "details", + ]; + const classes = [ + "", "after", "before", + ]; + const body = document.body; + for (var d of display) { + for (var o of overflow) { + for (var p of position) { + for (var c of classes) { + for (var t of tags) { + let elem = document.createElement(t); + elem.style = d + ';' + o + ';' + p + ';' + elem.className = c; + elem.setAttribute("open", "true"); + let summary = document.createElement("summary"); // we need a summary child to avoid details creating an anonymous child + elem.append(summary); + body.append(elem); + } + } + } + } + } + + document.body.style.display = ''; +</script> + +</body> +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-details.html b/testing/web-platform/tests/css/css-content/content-none-details.html new file mode 100644 index 0000000000..6ac94c3e86 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-details.html @@ -0,0 +1,78 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>CSS Content: content:none on DETAILS</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="help" href="https://drafts.csswg.org/css-content/#valdef-content-none"> + <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> + <meta name="flags" content="ahem"> + <meta name="assert" content="content:none should inhibit the <details> children from having boxes. Its pseudos should not be affected though."> + <link rel="match" href="content-none-details-ref.html"> + <style> +html,body { + color:black; background-color:white; font:4px/1 Ahem; padding:0; margin:0; +} +body { margin-left: 3ch; } +body > * { + content:none; + padding:0; margin:0; border:none; +} +::marker { content: 'M'; } +.after::after { content: 'A'; } +.before::before { content: 'B'; } + + </style> +</head> +<body> + +<script> + document.body.style.display = 'none'; + + const display = [ + "display:block", "display:inline", "display:ruby", "display:none", "display:grid", + "display:flex", "display:table", "display:list-item", "display:contents", + "columns:2", + ]; + const overflow = [ + "", "overflow:scroll", "overflow:clip", + ]; + const position = [ + "", "position:absolute", + ]; + const tags = [ + "details", + ]; + const classes = [ + "", "after", "before", + ]; + const body = document.body; + for (var d of display) { + for (var o of overflow) { + for (var p of position) { + for (var c of classes) { + for (var t of tags) { + let elem = document.createElement(t); + elem.style = d + ';' + o + ';' + p + ';' + elem.className = c; + elem.setAttribute("open", "true"); + let summary = document.createElement("summary"); + summary.append(document.createTextNode("FAIL")); + elem.append(summary); + elem.append(document.createTextNode("FAIL")); + body.append(elem); + } + } + } + } + } + + document.body.style.display = ''; +</script> + +</body> +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-fieldset-ref.html b/testing/web-platform/tests/css/css-content/content-none-fieldset-ref.html new file mode 100644 index 0000000000..49a86e7a0f --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-fieldset-ref.html @@ -0,0 +1,68 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>Reference: content:none on FIELDSET</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> + <meta name="flags" content="ahem"> + <style> +html,body { + color:black; background-color:white; font:4px/1 Ahem; padding:0; margin:0; +} +body { margin-left: 3ch; } +body > * { + padding:0; margin:0; border:none; +} +::marker { content: 'M'; } +.after::after { content: 'A'; } +.before::before { content: 'B'; } + + </style> +</head> +<body> + +<script> + document.body.style.display = 'none'; + + const display = [ + "display:block", "display:inline", "display:ruby", "display:none", "display:grid", + "display:table", "display:list-item", "display:contents", + "columns:2", + ]; + const overflow = [ + "", "overflow:scroll", + ]; + const position = [ + "", "position:absolute", + ]; + const tags = [ + "fieldset" + ]; + const classes = [ + "", "after", "before", + ]; + const body = document.body; + for (var d of display) { + for (var o of overflow) { + for (var p of position) { + for (var c of classes) { + for (var t of tags) { + let elem = document.createElement(t); + elem.style = d + ';' + o + ';' + p + ';'; + elem.className = c; + body.append(elem); + } + } + } + } + } + + document.body.style.display = ''; +</script> + +</body> +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-fieldset.html b/testing/web-platform/tests/css/css-content/content-none-fieldset.html new file mode 100644 index 0000000000..4ada3b7b01 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-fieldset.html @@ -0,0 +1,77 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>CSS Content: content:none on FIELDSET</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="help" href="https://drafts.csswg.org/css-content/#valdef-content-none"> + <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> + <meta name="flags" content="ahem"> + <meta name="assert" content="content:none should inhibit the <fieldset> children, including rendered legends, from having boxes. Its pseudos should not be affected though."> + <link rel="match" href="content-none-fieldset-ref.html"> + <style> +html,body { + color:black; background-color:white; font:4px/1 Ahem; padding:0; margin:0; +} +body { margin-left: 3ch; } +body > * { + content:none; + padding:0; margin:0; border:none; +} +::marker { content: 'M'; } +.after::after { content: 'A'; } +.before::before { content: 'B'; } + + </style> +</head> +<body> + +<script> + document.body.style.display = 'none'; + + const display = [ + "display:block", "display:inline", "display:ruby", "display:none", "display:grid", + "display:table", "display:list-item", "display:contents", + "columns:2", + ]; + const overflow = [ + "", "overflow:scroll", + ]; + const position = [ + "", "position:absolute", + ]; + const tags = [ + "fieldset" + ]; + const classes = [ + "", "after", "before", + ]; + const body = document.body; + for (var d of display) { + for (var o of overflow) { + for (var p of position) { + for (var c of classes) { + for (var t of tags) { + let elem = document.createElement(t); + elem.style = d + ';' + o + ';' + p + ';'; + elem.className = c; + elem.append(document.createTextNode("FAIL")); + let legend = document.createElement("legend"); + legend.append(document.createTextNode("FAIL")); + elem.append(legend); + body.append(elem); + } + } + } + } + } + + document.body.style.display = ''; +</script> + +</body> +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-input-ref.html b/testing/web-platform/tests/css/css-content/content-none-input-ref.html new file mode 100644 index 0000000000..faa3ba3734 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-input-ref.html @@ -0,0 +1,68 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>Reference: content:none on INPUT</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> + <meta name="flags" content="ahem"> + <style> +html,body, input { + color:black; background-color:white; font:4px/1 Ahem; padding:0; margin:0; +} +body { margin-left: 3ch; } +body > * { + padding:0; margin:0; border:none; +} +.after::after { content: 'A'; } +.before::before { content: 'B'; } + + </style> +</head> +<body> + +<script> + document.body.style.display = 'none'; + + const display = [ + "display:block", "display:inline", "display:ruby", "display:none", "display:grid", + "display:flex", "display:table", "display:list-item", "display:contents", + "columns:2", + ]; + const overflow = [ + "" + ]; + const position = [ + "", "position:absolute", + ]; + const tags = [ + "input" + ]; + const classes = [ + "", "after", "before", + ]; + const body = document.body; + for (var d of display) { + for (var o of overflow) { + for (var p of position) { + for (var c of classes) { + for (var t of tags) { + let elem = document.createElement(t); + elem.style = d + ';' + o + ';' + p + ';' + elem.className = c; + elem.value = "PASS"; + body.append(elem); + } + } + } + } + } + + document.body.style.display = ''; +</script> + +</body> +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-input.html b/testing/web-platform/tests/css/css-content/content-none-input.html new file mode 100644 index 0000000000..5cc76ba11d --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-input.html @@ -0,0 +1,73 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>CSS Content: content:none on INPUT</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="help" href="https://drafts.csswg.org/css-content/#valdef-content-none"> + <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> + <meta name="flags" content="ahem"> + <meta name="assert" content="content:none has no effect on <input> as it has no children"> + <link rel="match" href="content-none-input-ref.html"> + <style> +html,body, input { + color:black; background-color:white; font:4px/1 Ahem; padding:0; margin:0; +} +body { margin-left: 3ch; } +body > * { + content:none; + padding:0; margin:0; border:none; +} +.after::after { content: 'A'; } +.before::before { content: 'B'; } + + </style> +</head> +<body> + +<script> + document.body.style.display = 'none'; + + const display = [ + "display:block", "display:inline", "display:ruby", "display:none", "display:grid", + "display:flex", "display:table", "display:list-item", "display:contents", + "columns:2", + ]; + const overflow = [ + "" + ]; + const position = [ + "", "position:absolute", + ]; + const tags = [ + "input" + ]; + const classes = [ + "", "after", "before", + ]; + const body = document.body; + for (var d of display) { + for (var o of overflow) { + for (var p of position) { + for (var c of classes) { + for (var t of tags) { + let elem = document.createElement(t); + elem.style = d + ';' + o + ';' + p + ';' + elem.className = c; + elem.value = "PASS"; + body.append(elem); + } + } + } + } + } + + document.body.style.display = ''; +</script> + +</body> +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-math-ref.html b/testing/web-platform/tests/css/css-content/content-none-math-ref.html new file mode 100644 index 0000000000..5e43f2ece4 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-math-ref.html @@ -0,0 +1,68 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>Reference: content:none on MATH</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> + <meta name="flags" content="ahem"> + <style> +html,body { + color:black; background-color:white; font:4px/1 Ahem; padding:0; margin:0; +} +body { margin-left: 3ch; } +body > * { + padding:0; margin:0; border:none; +} +::marker { content: 'M'; } +.after::after { content: 'A'; } +.before::before { content: 'B'; } + + </style> +</head> +<body> + +<script> + document.body.style.display = 'none'; + + const display = [ + "display:block", "display:inline", "display:ruby", "display:none", "display:grid", + "display:flex", "display:table", "display:list-item", "display:contents", + "columns:2", + ]; + const overflow = [ + "", "overflow:scroll", "overflow:clip", + ]; + const position = [ + "", "position:absolute", + ]; + const tags = [ + "math", + ]; + const classes = [ + "", "after", "before", + ]; + const body = document.body; + for (var d of display) { + for (var o of overflow) { + for (var p of position) { + for (var c of classes) { + for (var t of tags) { + let elem = document.createElement(t); + elem.style = d + ';' + o + ';' + p + ';' + elem.className = c; + body.append(elem); + } + } + } + } + } + + document.body.style.display = ''; +</script> + +</body> +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-math.html b/testing/web-platform/tests/css/css-content/content-none-math.html new file mode 100644 index 0000000000..2d5e78f678 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-math.html @@ -0,0 +1,76 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>CSS Content: content:none on MATH</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="help" href="https://drafts.csswg.org/css-content/#valdef-content-none"> + <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> + <meta name="flags" content="ahem"> + <meta name="assert" content="content:none should inhibit the <math> children from having boxes. Its pseudos should not be affected though."> + <link rel="match" href="content-none-math-ref.html"> + <style> +html,body { + color:black; background-color:white; font:4px/1 Ahem; padding:0; margin:0; +} +body { margin-left: 3ch; } +body > * { + content:none; + padding:0; margin:0; border:none; +} +::marker { content: 'M'; } +.after::after { content: 'A'; } +.before::before { content: 'B'; } + + </style> +</head> +<body> + +<script> + document.body.style.display = 'none'; + + const display = [ + "display:block", "display:inline", "display:ruby", "display:none", "display:grid", + "display:flex", "display:table", "display:list-item", "display:contents", + "columns:2", + ]; + const overflow = [ + "", "overflow:scroll", "overflow:clip", + ]; + const position = [ + "", "position:absolute", + ]; + const tags = [ + "math", + ]; + const classes = [ + "", "after", "before", + ]; +const body = document.body; + for (var d of display) { + for (var o of overflow) { + for (var p of position) { + for (var c of classes) { + for (var t of tags) { + let elem = document.createElement(t); + elem.style = d + ';' + o + ';' + p + ';' + elem.className = c; + let ms = document.createElementNS("http://www.w3.org/1998/Math/MathML", "ms"); + ms.append(document.createTextNode("FAIL")); + elem.append(ms); + body.append(elem); + } + } + } + } + } + + document.body.style.display = ''; +</script> + +</body> +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-option-ref.html b/testing/web-platform/tests/css/css-content/content-none-option-ref.html new file mode 100644 index 0000000000..336c5bfb94 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-option-ref.html @@ -0,0 +1,75 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>Reference: content:none on OPTION</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> + <meta name="flags" content="ahem"> + <style> +html,body { + color:black; background-color:white; xfont:5px/1 Ahem; padding:0; margin:0; +} +body { margin-left: 3ch; } +option { + padding:0; margin:0; border:none; + font:5px/1 Ahem; +} +::marker { content: 'M'; } +.after::after { content: 'A'; } +.before::before { content: 'B'; } + + </style> +</head> +<body> + +<script> + document.body.style.display = 'none'; + + const display = [ + "display:block", "display:inline", "display:ruby", "display:none", "display:grid", + "display:flex", "display:table", "display:list-item", "display:contents", + "columns:2", + ]; + const overflow = [ + "", "overflow:clip", + ]; + const position = [ + "", "position:absolute", + ]; + const tags = [ + "option", + ]; + const classes = [ + "", "after", "before", + ]; + const body = document.body; + for (var d of display) { + for (var o of overflow) { + for (var p of position) { + for (var c of classes) { + for (var t of tags) { + let select = document.createElement("select"); + select.setAttribute("size", "2"); + let elem = document.createElement(t); + elem.style = d + ';' + o + ';' + p + ';' + elem.className = c; + select.append(elem); + let option = document.createElement("option"); + option.append(document.createTextNode("pass")); + select.append(option); + body.append(select); + } + } + } + } + } + + document.body.style.display = ''; +</script> + +</body> +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-option.html b/testing/web-platform/tests/css/css-content/content-none-option.html new file mode 100644 index 0000000000..5eff477761 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-option.html @@ -0,0 +1,83 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>CSS Content: content:none on OPTION</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="help" href="https://drafts.csswg.org/css-content/#valdef-content-none"> + <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> + <meta name="flags" content="ahem"> + <meta name="assert" content="content:none should inhibit the <option> children from having boxes."> + <link rel="match" href="content-none-option-ref.html"> + <style> +html,body { + color:black; background-color:white; xfont:5px/1 Ahem; padding:0; margin:0; +} +body { margin-left: 3ch; } +option:nth-child(1) { + content:none; +} +option { + padding:0; margin:0; border:none; + font:5px/1 Ahem; +} +::marker { content: 'M'; } +.after::after { content: 'A'; } +.before::before { content: 'B'; } + + </style> +</head> +<body> + +<script> + document.body.style.display = 'none'; + + const display = [ + "display:block", "display:inline", "display:ruby", "display:none", "display:grid", + "display:flex", "display:table", "display:list-item", "display:contents", + "columns:2", + ]; + const overflow = [ + "", "overflow:clip", + ]; + const position = [ + "", "position:absolute", + ]; + const tags = [ + "option", + ]; + const classes = [ + "", "after", "before", + ]; + const body = document.body; + for (var d of display) { + for (var o of overflow) { + for (var p of position) { + for (var c of classes) { + for (var t of tags) { + let select = document.createElement("select"); + select.setAttribute("size", "2"); + let elem = document.createElement(t); + elem.style = d + ';' + o + ';' + p + ';' + elem.className = c; + elem.append(document.createTextNode("FAIL")); + select.append(elem); + let option = document.createElement("option"); + option.append(document.createTextNode("pass")); + select.append(option); + body.append(select); + } + } + } + } + } + + document.body.style.display = ''; +</script> + +</body> +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-root-block-ref.html b/testing/web-platform/tests/css/css-content/content-none-root-block-ref.html new file mode 100644 index 0000000000..e3c2adb417 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-root-block-ref.html @@ -0,0 +1,17 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>Reference: content:none on a :root block</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> +<style> +html,body { + padding:0; margin:0; +} +</style> +</head> +<body><span>B</span><span>A</span></body> +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-root-block.html b/testing/web-platform/tests/css/css-content/content-none-root-block.html new file mode 100644 index 0000000000..c8d15df3ea --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-root-block.html @@ -0,0 +1,25 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>CSS Content: content:none on a :root block</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="help" href="https://drafts.csswg.org/css-content/#valdef-content-none"> + <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <meta name="assert" content="content:none should inhibit the :root's children from having boxes. Its pseudos should not be affected though."> + <link rel="match" href="content-none-root-block-ref.html"> + <style> +:root { + content: none; + display: block; +} +*::after { content: 'A'; } +*::before { content: 'B'; } + + </style> +</head> +FAIL +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-root-columns-ref.html b/testing/web-platform/tests/css/css-content/content-none-root-columns-ref.html new file mode 100644 index 0000000000..661c064ad3 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-root-columns-ref.html @@ -0,0 +1,22 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>Reference: content:none on a :root columns layout</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <style> +html,body { + padding:0; margin:0; +} +body { + column-width: 1px; + column-gap: 100px; +} + + </style> +</head> +<body><span>B</span> <span>A</span></body> +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-root-columns.html b/testing/web-platform/tests/css/css-content/content-none-root-columns.html new file mode 100644 index 0000000000..b3fceb1c4f --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-root-columns.html @@ -0,0 +1,26 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>CSS Content: content:none on a :root columns layout</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="help" href="https://drafts.csswg.org/css-content/#valdef-content-none"> + <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <meta name="assert" content="content:none should inhibit the :root's children from having boxes. Its pseudos should not be affected though."> + <link rel="match" href="content-none-root-columns-ref.html"> + <style> +:root { + content: none; + column-width: 1px; + column-gap: 100px; +} +*::after { content: 'A'; } +*::before { content: 'B '; } + + </style> +</head> +FAIL +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-root-flex-ref.html b/testing/web-platform/tests/css/css-content/content-none-root-flex-ref.html new file mode 100644 index 0000000000..b14e9f14f9 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-root-flex-ref.html @@ -0,0 +1,22 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>Reference: content:none on a :root flex</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <style> +html,body { + padding:0; margin:0; +} +body { + display: flex; + border: 1px solid; + gap: 10px; +} + </style> +</head> +<body><x>B</x><x>A</x></body> +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-root-flex.html b/testing/web-platform/tests/css/css-content/content-none-root-flex.html new file mode 100644 index 0000000000..0b6c6cab14 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-root-flex.html @@ -0,0 +1,27 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>CSS Content: content:none on a :root flex</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="help" href="https://drafts.csswg.org/css-content/#valdef-content-none"> + <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <meta name="assert" content="content:none should inhibit the :root's children from having boxes. Its pseudos should not be affected though."> + <link rel="match" href="content-none-root-flex-ref.html"> + <style> +:root { + content: none; + display: flex; + border: 1px solid; + gap: 10px; +} +*::after { content: 'A'; } +*::before { content: 'B'; } + + </style> +</head> +FAIL +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-root-grid-ref.html b/testing/web-platform/tests/css/css-content/content-none-root-grid-ref.html new file mode 100644 index 0000000000..9b092c664b --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-root-grid-ref.html @@ -0,0 +1,23 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>Reference: content:none on a :root grid</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <style> +html,body { + padding:0; margin:0; +} +body { + display: grid; + border: 1px solid; + grid-template-columns: 50px 50px; + gap: 10px; +} + </style> +</head> +<body><x>B</x><x>A</x></body> +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-root-grid.html b/testing/web-platform/tests/css/css-content/content-none-root-grid.html new file mode 100644 index 0000000000..e97f7848ac --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-root-grid.html @@ -0,0 +1,28 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>CSS Content: content:none on a :root grid</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="help" href="https://drafts.csswg.org/css-content/#valdef-content-none"> + <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <meta name="assert" content="content:none should inhibit the :root's children from having boxes. Its pseudos should not be affected though."> + <link rel="match" href="content-none-root-grid-ref.html"> + <style> +:root { + content: none; + display: grid; + border: 1px solid; + grid-template-columns: 50px 50px; + gap: 10px; +} +*::after { content: 'A'; } +*::before { content: 'B'; } + + </style> +</head> +FAIL +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-root-ruby-ref.html b/testing/web-platform/tests/css/css-content/content-none-root-ruby-ref.html new file mode 100644 index 0000000000..cfb0ecd866 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-root-ruby-ref.html @@ -0,0 +1,21 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>Reference: content:none on a :root ruby (blockified) box</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <style> +html,body { + padding:0; margin:0; +} +body { + border: 1px solid; + margin: 50px; +} + </style> +</head> +<body><x>B</x><x>A</x></body> +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-root-ruby.html b/testing/web-platform/tests/css/css-content/content-none-root-ruby.html new file mode 100644 index 0000000000..8434d96190 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-root-ruby.html @@ -0,0 +1,34 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>CSS Content: content:none on a :root ruby (blockified) box</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="help" href="https://drafts.csswg.org/css-content/#valdef-content-none"> + <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <meta name="assert" content="content:none should inhibit the :root's children from having boxes. Its pseudos should not be affected though."> + <link rel="match" href="content-none-root-ruby-ref.html"> + <style> +:root { + content: none; + display: ruby; + border: 1px solid; + margin: 50px; +} +*::after { content: 'A'; } +*::before { content: 'B'; } + + </style> +</head> +べ +<rtc> + <rt>る</rt> +</rtc> +<rbc> + <rb>FAIL</rb> + <rb>FAIL</rb> +</rbc> +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-root-table-ref.html b/testing/web-platform/tests/css/css-content/content-none-root-table-ref.html new file mode 100644 index 0000000000..d32fdf0525 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-root-table-ref.html @@ -0,0 +1,22 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>Reference: content:none on a :root table</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <style> +html,body { + padding:0; margin:0; +} +body { + display: table; + border: 1px solid; + border-spacing: 10px; +} + </style> +</head> +<body><x>B</x><x>A</x></body> +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-root-table.html b/testing/web-platform/tests/css/css-content/content-none-root-table.html new file mode 100644 index 0000000000..92e4a7730b --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-root-table.html @@ -0,0 +1,28 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>CSS Content: content:none on a :root table</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="help" href="https://drafts.csswg.org/css-content/#valdef-content-none"> + <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <meta name="assert" content="content:none should inhibit the :root's children from having boxes. Its pseudos should not be affected though."> + <link rel="match" href="content-none-root-table-ref.html"> + <style> +:root { + content: none; + display: table; + border: 1px solid; + border-spacing: 10px; +} +*::after { content: 'A'; } +*::before { content: 'B'; } + + </style> +</head> +<x style="display:table-cell">FAIL</x> +</html> + diff --git a/testing/web-platform/tests/css/css-content/content-none-select-1-ref.html b/testing/web-platform/tests/css/css-content/content-none-select-1-ref.html new file mode 100644 index 0000000000..5fef3a498c --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-select-1-ref.html @@ -0,0 +1,72 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>Reference: content:none on SELECT size=1</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> + <meta name="flags" content="ahem"> + <meta name="timeout" content="long"> + <style> +html,body { + color:black; background-color:white; font:4px/1 Ahem; padding:0; margin:0; +} +body { margin-left: 3ch; } +body > * { + padding:0; margin:0; border:none; + font:5px/1 Ahem; +} +::marker { content: 'M'; } +.after::after { content: 'A'; } +.before::before { content: 'B'; } + + </style> +</head> +<body> + +<script> + document.body.style.display = 'none'; + + const display = [ + "display:block", "display:inline", "display:ruby", "display:none", "display:grid", + "display:flex", "display:table", "display:list-item", "display:contents", + "columns:2", + ]; + const overflow = [ + "", "overflow:scroll", "overflow:clip", + ]; + const position = [ + "", "position:absolute", + ]; + const tags = [ + "select", + ]; + const classes = [ + "", "after", "before", + ]; + const body = document.body; + for (var d of display) { + for (var o of overflow) { + for (var p of position) { + for (var c of classes) { + for (var t of tags) { + let elem = document.createElement(t); + elem.style = d + ';' + o + ';' + p + ';' + elem.className = c; + let option = document.createElement("option"); // need an empty option to get same line-height + elem.append(option); + body.append(elem); + } + } + } + } + } + + document.body.style.display = ''; +</script> + +</body> +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-select-1.html b/testing/web-platform/tests/css/css-content/content-none-select-1.html new file mode 100644 index 0000000000..450dd66e21 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-select-1.html @@ -0,0 +1,81 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>CSS Content: content:none on SELECT size=1</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="help" href="https://drafts.csswg.org/css-content/#valdef-content-none"> + <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> + <meta name="flags" content="ahem"> + <meta name="assert" content="content:none should inhibit the <select> children from having boxes."> + <meta name="timeout" content="long"> + <link rel="match" href="content-none-select-1-ref.html"> + <style> +html,body { + color:black; background-color:white; font:4px/1 Ahem; padding:0; margin:0; +} +body { margin-left: 3ch; } +body > * { + content:none; + padding:0; margin:0; border:none; + font:5px/1 Ahem; +} +::marker { content: 'M'; } +.after::after { content: 'A'; } +.before::before { content: 'B'; } + + </style> +</head> +<body> + +<script> + document.body.style.display = 'none'; + + const display = [ + "display:block", "display:inline", "display:ruby", "display:none", "display:grid", + "display:flex", "display:table", "display:list-item", "display:contents", + "columns:2", + ]; + const overflow = [ + "", "overflow:scroll", "overflow:clip", + ]; + const position = [ + "", "position:absolute", + ]; + const tags = [ + "select", + ]; + const classes = [ + "", "after", "before", + ]; + const body = document.body; + for (var d of display) { + for (var o of overflow) { + for (var p of position) { + for (var c of classes) { + for (var t of tags) { + let elem = document.createElement(t); + elem.style = d + ';' + o + ';' + p + ';' + elem.className = c; + let option = document.createElement("option"); + option.append(document.createTextNode("FAIL")); + elem.append(option); + option = document.createElement("option"); + option.append(document.createTextNode("FAIL")); + elem.append(option); + body.append(elem); + } + } + } + } + } + + document.body.style.display = ''; +</script> + +</body> +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-select-2-ref.html b/testing/web-platform/tests/css/css-content/content-none-select-2-ref.html new file mode 100644 index 0000000000..4848b57d95 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-select-2-ref.html @@ -0,0 +1,70 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>Reference: content:none on SELECT size=2</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> + <meta name="flags" content="ahem"> + <style> +html,body { + color:black; background-color:white; font:4px/1 Ahem; padding:0; margin:0; +} +body { margin-left: 3ch; } +body > * { + padding:0; margin:0; border:none; + font:5px/1 Ahem; +} +::marker { content: 'M'; } +.after::after { content: 'A'; } +.before::before { content: 'B'; } + + </style> +</head> +<body> + +<script> + document.body.style.display = 'none'; + + const display = [ + "display:block", "display:inline", "display:ruby", "display:none", "display:grid", + "display:flex", "display:table", "display:list-item", "display:contents", + "columns:2", + ]; + const overflow = [ + "", "overflow:scroll", "overflow:clip", + ]; + const position = [ + "", "position:absolute", + ]; + const tags = [ + "select", + ]; + const classes = [ + "", "after", "before", + ]; + const body = document.body; + for (var d of display) { + for (var o of overflow) { + for (var p of position) { + for (var c of classes) { + for (var t of tags) { + let elem = document.createElement(t); + elem.style = d + ';' + o + ';' + p + ';' + elem.className = c; + elem.setAttribute("size", "2"); + body.append(elem); + } + } + } + } + } + + document.body.style.display = ''; +</script> + +</body> +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-select-2.html b/testing/web-platform/tests/css/css-content/content-none-select-2.html new file mode 100644 index 0000000000..4b8f0f5c32 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-select-2.html @@ -0,0 +1,81 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>CSS Content: content:none on SELECT size=2</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="help" href="https://drafts.csswg.org/css-content/#valdef-content-none"> + <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> + <meta name="flags" content="ahem"> + <meta name="assert" content="content:none should inhibit the <select> children from having boxes."> + <link rel="match" href="content-none-select-2-ref.html"> + <style> +html,body { + color:black; background-color:white; font:4px/1 Ahem; padding:0; margin:0; +} +body { margin-left: 3ch; } +body > * { + content:none; + padding:0; margin:0; border:none; + font:5px/1 Ahem; +} +::marker { content: 'M'; } +.after::after { content: 'A'; } +.before::before { content: 'B'; } + + </style> +</head> +<body> + +<script> + document.body.style.display = 'none'; + + const display = [ + "display:block", "display:inline", "display:ruby", "display:none", "display:grid", + "display:flex", "display:table", "display:list-item", "display:contents", + "columns:2", + ]; + const overflow = [ + "", "overflow:scroll", "overflow:clip", + ]; + const position = [ + "", "position:absolute", + ]; + const tags = [ + "select", + ]; + const classes = [ + "", "after", "before", + ]; + const body = document.body; + for (var d of display) { + for (var o of overflow) { + for (var p of position) { + for (var c of classes) { + for (var t of tags) { + let elem = document.createElement(t); + elem.style = d + ';' + o + ';' + p + ';' + elem.className = c; + elem.setAttribute("size", "2"); + let option = document.createElement("option"); + option.append(document.createTextNode("FAIL")); + elem.append(option); + option = document.createElement("option"); + option.append(document.createTextNode("FAIL")); + elem.append(option); + body.append(elem); + } + } + } + } + } + + document.body.style.display = ''; +</script> + +</body> +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-span-dynamic.html b/testing/web-platform/tests/css/css-content/content-none-span-dynamic.html new file mode 100644 index 0000000000..078be9928a --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-span-dynamic.html @@ -0,0 +1,81 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>CSS Content: content:none on SPAN with dynamically inserted children</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="help" href="https://drafts.csswg.org/css-content/#valdef-content-none"> + <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> + <meta name="flags" content="ahem"> + <meta name="assert" content="content:none should inhibit the <span> children from having boxes. Its pseudos should not be affected though."> + <link rel="match" href="content-none-span-ref.html"> + <style> +html,body { + color:black; background-color:white; font:4px/1 Ahem; padding:0; margin:0; +} +body { margin-left: 3ch; } +body > * { + content:none; + padding:0; margin:0; border:none; +} +::marker { content: 'M'; } +.after::after { content: 'A'; } +.before::before { content: 'B'; } + + </style> +</head> +<body> + +<script> + document.body.style.display = 'none'; + + const display = [ + "display:block", "display:inline", "display:ruby", "display:none", "display:grid", + "display:flex", "display:table", "display:list-item", "display:contents", + "columns:2", + ]; + const overflow = [ + "", "overflow:scroll", "overflow:clip", + ]; + const position = [ + "", "position:absolute", "position:relative", + ]; + const tags = [ + "span", + ]; + const classes = [ + "", "after", "before", + ]; + const body = document.body; + for (var d of display) { + for (var o of overflow) { + for (var p of position) { + for (var c of classes) { + for (var t of tags) { + let elem = document.createElement(t); + elem.style = d + ';' + o + ';' + p + ';' + elem.className = c + " test"; + body.append(elem); + } + } + } + } + } + + document.body.style.display = ''; + document.body.offsetHeight; + + for (let elem of Array.from(document.querySelectorAll(".test"))) { + elem.append(document.createTextNode("FAIL")) + elem.append(document.createElement("div")); + } + + document.body.offsetHeight; +</script> + +</body> +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-span-ref.html b/testing/web-platform/tests/css/css-content/content-none-span-ref.html new file mode 100644 index 0000000000..cec124a3d4 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-span-ref.html @@ -0,0 +1,68 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>Reference: content:none on SPAN</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> + <meta name="flags" content="ahem"> + <style> +html,body { + color:black; background-color:white; font:4px/1 Ahem; padding:0; margin:0; +} +body { margin-left: 3ch; } +body > * { + padding:0; margin:0; border:none; +} +::marker { content: 'M'; } +.after::after { content: 'A'; } +.before::before { content: 'B'; } + + </style> +</head> +<body> + +<script> + document.body.style.display = 'none'; + + const display = [ + "display:block", "display:inline", "display:ruby", "display:none", "display:grid", + "display:flex", "display:table", "display:list-item", "display:contents", + "columns:2", + ]; + const overflow = [ + "", "overflow:scroll", "overflow:clip", + ]; + const position = [ + "", "position:absolute", "position:relative", + ]; + const tags = [ + "span", + ]; + const classes = [ + "", "after", "before", + ]; + const body = document.body; + for (var d of display) { + for (var o of overflow) { + for (var p of position) { + for (var c of classes) { + for (var t of tags) { + let elem = document.createElement(t); + elem.style = d + ';' + o + ';' + p + ';' + elem.className = c; + body.append(elem); + } + } + } + } + } + + document.body.style.display = ''; +</script> + +</body> +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-span.html b/testing/web-platform/tests/css/css-content/content-none-span.html new file mode 100644 index 0000000000..b963869cfe --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-span.html @@ -0,0 +1,75 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>CSS Content: content:none on SPAN</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="help" href="https://drafts.csswg.org/css-content/#valdef-content-none"> + <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> + <meta name="flags" content="ahem"> + <meta name="assert" content="content:none should inhibit the <span> children from having boxes. Its pseudos should not be affected though."> + <link rel="match" href="content-none-span-ref.html"> + <style> +html,body { + color:black; background-color:white; font:4px/1 Ahem; padding:0; margin:0; +} +body { margin-left: 3ch; } +body > * { + content:none; + padding:0; margin:0; border:none; +} +::marker { content: 'M'; } +.after::after { content: 'A'; } +.before::before { content: 'B'; } + + </style> +</head> +<body> + +<script> + document.body.style.display = 'none'; + + const display = [ + "display:block", "display:inline", "display:ruby", "display:none", "display:grid", + "display:flex", "display:table", "display:list-item", "display:contents", + "columns:2", + ]; + const overflow = [ + "", "overflow:scroll", "overflow:clip", + ]; + const position = [ + "", "position:absolute", "position:relative", + ]; + const tags = [ + "span", + ]; + const classes = [ + "", "after", "before", + ]; + const body = document.body; + for (var d of display) { + for (var o of overflow) { + for (var p of position) { + for (var c of classes) { + for (var t of tags) { + let elem = document.createElement(t); + elem.style = d + ';' + o + ';' + p + ';' + elem.className = c; + elem.append(document.createTextNode("FAIL")) + elem.append(document.createElement("div")); + body.append(elem); + } + } + } + } + } + + document.body.style.display = ''; +</script> + +</body> +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-table-ref.html b/testing/web-platform/tests/css/css-content/content-none-table-ref.html new file mode 100644 index 0000000000..ec5d167210 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-table-ref.html @@ -0,0 +1,49 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>Reference: content:none on various table boxes</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> + <meta name="flags" content="ahem"> + <style> +html,body { + color:black; background-color:white; font:10px/1 Ahem; padding:0; margin:0; +} +body { margin-left: 3ch; } +body * { + border:3px solid; +} +.after::after { content: 'A'; } +.before::before { content: 'B'; } +x-table { display:table } +x-thead { display:table-row-group } +x-tr { display:table-row } +x-td { display:table-cell } + </style> +</head> +<body> + +<table><thead><tr><td class="c"></td></tr></thead></table> +<table><thead><tr class="c"></tr></thead></table> +<table><thead class="c"></thead></table> +<table class="c"></thead></table> + +<table><thead><tr><td class="c"></td><td>PASS</td></tr></thead></table> +<table><thead><tr class="c"></tr><tr><td>PASS</td></tr></thead></table> +<table><thead class="c"></thead><thead><tr><td>PASS</td></tr></thead></table> + +<x-table><x-thead><x-tr><x-td class="c"></x-td></x-tr></x-thead></x-table> +<x-table><x-thead><x-tr class="c"></x-tr></x-thead></x-table> +<x-table><x-thead class="c"></x-thead></x-table> +<x-table class="c"></x-table> + +<x-table><x-thead><x-tr><x-td class="c"></x-td><x-td>PASS</x-td></x-tr></x-thead></x-table> +<x-table><x-thead><x-tr class="c"></x-tr><x-tr><x-td>PASS</x-td></x-tr></x-thead></x-table> +<x-table><x-thead class="c"></x-thead><x-thead><x-tr><x-td>PASS</x-td></x-tr></x-thead></x-table> + +</body> +</html> diff --git a/testing/web-platform/tests/css/css-content/content-none-table.html b/testing/web-platform/tests/css/css-content/content-none-table.html new file mode 100644 index 0000000000..723e2e4146 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/content-none-table.html @@ -0,0 +1,54 @@ +<!doctype html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>CSS Content: content:none on various table boxes</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="help" href="https://drafts.csswg.org/css-content/#valdef-content-none"> + <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1699964"> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"> + <meta name="flags" content="ahem"> + <meta name="assert" content="content:none should inhibit table children from having boxes. Its pseudos should not be affected though."> + <link rel="match" href="content-none-table-ref.html"> + <style> +html,body { + color:black; background-color:white; font:10px/1 Ahem; padding:0; margin:0; +} +body { margin-left: 3ch; } +body * { + border:3px solid; +} +.after::after { content: 'A'; } +.before::before { content: 'B'; } +.c { content:none; } +x-table { display:table } +x-thead { display:table-row-group } +x-tr { display:table-row } +x-td { display:table-cell } + </style> +</head> +<body> + +<table><thead><tr><td class="c">FAIL<x>FAIL</x></td></tr></thead></table> +<table><thead><tr class="c"><td>FAIL<x>FAIL</x></td></tr></thead></table> +<table><thead class="c"><tr><td>FAIL<x>FAIL</x></td></tr></thead></table> +<table class="c"><thead><tr><td>FAIL<x>FAIL</x></td></tr></thead></table> + +<table><thead><tr><td class="c">FAIL<x>FAIL</x></td><td>PASS</td></tr></thead></table> +<table><thead><tr class="c"><td>FAIL<x>FAIL</x></td></tr><tr><td>PASS</td></tr></thead></table> +<table><thead class="c"><tr><td>FAIL<x>FAIL</x></td></tr></thead><thead><tr><td>PASS</td></tr></thead></table> + +<x-table><x-thead><x-tr><x-td class="c">FAIL<x>FAIL</x></x-td></x-tr></x-thead></x-table> +<x-table><x-thead><x-tr class="c"><x-td>FAIL<x>FAIL</x></x-td></x-tr></x-thead></x-table> +<x-table><x-thead class="c"><x-tr><x-td>FAIL<x>FAIL</x></x-td></x-tr></x-thead></x-table> +<x-table class="c"><x-thead><x-tr><x-td>FAIL<x>FAIL</x></x-td></x-tr></x-thead></x-table> + +<x-table><x-thead><x-tr><x-td class="c">FAIL<x>FAIL</x></x-td><x-td>PASS</x-td></x-tr></x-thead></x-table> +<x-table><x-thead><x-tr class="c"><x-td>FAIL<x>FAIL</x></x-td></x-tr><x-tr><x-td>PASS</x-td></x-tr></x-thead></x-table> +<x-table><x-thead class="c"><x-tr><x-td>FAIL<x>FAIL</x></x-td></x-tr></x-thead><x-thead><x-tr><x-td>PASS</x-td></x-tr></x-thead></x-table> + +</body> +</html> diff --git a/testing/web-platform/tests/css/css-content/element-replacement-alt-ref.html b/testing/web-platform/tests/css/css-content/element-replacement-alt-ref.html new file mode 100644 index 0000000000..ef8a6f3953 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/element-replacement-alt-ref.html @@ -0,0 +1,4 @@ +<!DOCTYPE html> +<title>CSS Test Reference</title> +<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez"> +<div style="content: url(broken);"></div> diff --git a/testing/web-platform/tests/css/css-content/element-replacement-alt.html b/testing/web-platform/tests/css/css-content/element-replacement-alt.html new file mode 100644 index 0000000000..e9ee9344c2 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/element-replacement-alt.html @@ -0,0 +1,6 @@ +<!DOCTYPE html> +<title>The content CSS property with a broken image doesn't pull the alt attribute from that element</title> +<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez"> +<link rel="match" href="element-replacement-alt-ref.html"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#content-property"> +<div style="content: url(broken);" alt="Alt text">FAIL</div> diff --git a/testing/web-platform/tests/css/css-content/element-replacement-display-contents.html b/testing/web-platform/tests/css/css-content/element-replacement-display-contents.html new file mode 100644 index 0000000000..3782f4c2c7 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/element-replacement-display-contents.html @@ -0,0 +1,12 @@ +<!doctype html> +<title>The content CSS property doesn't override display: contents</title> +<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez"> +<link rel="match" href="../reference/blank.html"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#content-property"> +<style> + div { + display: contents; + content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAKElEQVR42u3NQQ0AAAgEoNP+nTWFDzcoQE1udQQCgUAgEAgEAsGTYAGjxAE/G/Q2tQAAAABJRU5ErkJggg==); + } +</style> +<div></div> diff --git a/testing/web-platform/tests/css/css-content/element-replacement-display-none.html b/testing/web-platform/tests/css/css-content/element-replacement-display-none.html new file mode 100644 index 0000000000..6c61da3818 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/element-replacement-display-none.html @@ -0,0 +1,12 @@ +<!doctype html> +<title>The content CSS property doesn't override display: none</title> +<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez"> +<link rel="match" href="../reference/blank.html"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#content-property"> +<style> + div { + display: none; + content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAKElEQVR42u3NQQ0AAAgEoNP+nTWFDzcoQE1udQQCgUAgEAgEAsGTYAGjxAE/G/Q2tQAAAABJRU5ErkJggg==); + } +</style> +<div>FAIL</div> diff --git a/testing/web-platform/tests/css/css-content/element-replacement-dynamic.html b/testing/web-platform/tests/css/css-content/element-replacement-dynamic.html new file mode 100644 index 0000000000..c025759094 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/element-replacement-dynamic.html @@ -0,0 +1,24 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>The content CSS attribute can replace an element's contents dynamically</title> +<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com" /> +<link rel="match" href="element-replacement-ref.html" /> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#content-property" /> +<meta name="assert" content"This test checks that the CSS content propertly can replace a normal element's contents when changed dynamically" /> + +<style> +#target { + content: none; +} +#target.replaced { + content: url('resources/rect.svg'); +} +</style> + +<div id="target">This text should not be visible</div> + +<script> +const target = document.getElementById("target"); +getComputedStyle(target).width; +target.className = "replaced"; +</script> diff --git a/testing/web-platform/tests/css/css-content/element-replacement-gradient-ref.html b/testing/web-platform/tests/css/css-content/element-replacement-gradient-ref.html new file mode 100644 index 0000000000..ecbc1947e4 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/element-replacement-gradient-ref.html @@ -0,0 +1,11 @@ +<!doctype html> +<meta charset="utf-8"> +<title>CSS Test Reference</title> +<style> +div { + width: 100px; + height: 100px; + background-image: linear-gradient(purple, yellow); +} +</style> +<div></div> diff --git a/testing/web-platform/tests/css/css-content/element-replacement-gradient.html b/testing/web-platform/tests/css/css-content/element-replacement-gradient.html new file mode 100644 index 0000000000..bb1010b075 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/element-replacement-gradient.html @@ -0,0 +1,15 @@ +<!doctype html> +<meta charset="utf-8"> +<title>content: gradient</title> +<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"> +<link rel="author" title="Mozilla" href="https://mozilla.org"> +<link rel="match" href="element-replacement-gradient-ref.html" /> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#content-property" /> +<style> +div { + width: 100px; + height: 100px; + content: linear-gradient(purple, yellow); +} +</style> +<div></div> diff --git a/testing/web-platform/tests/css/css-content/element-replacement-image-alt.html b/testing/web-platform/tests/css/css-content/element-replacement-image-alt.html new file mode 100644 index 0000000000..89cd63e5c4 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/element-replacement-image-alt.html @@ -0,0 +1,12 @@ +<!DOCTYPE html> +<title>Content CSS property on img with alt and no src is honored</title> +<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez"> +<link rel="match" href="element-replacement-ref.html" /> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#content-property"> +<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1625805"> +<style> + img { + content: url('resources/rect.svg'); + } +</style> +<img alt="Something"> diff --git a/testing/web-platform/tests/css/css-content/element-replacement-image-no-src-ref.html b/testing/web-platform/tests/css/css-content/element-replacement-image-no-src-ref.html new file mode 100644 index 0000000000..b9ba2e92d7 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/element-replacement-image-no-src-ref.html @@ -0,0 +1,2 @@ +<!doctype html> +<img src="/images/yellow.png" width=100 height=100> diff --git a/testing/web-platform/tests/css/css-content/element-replacement-image-no-src.tentative.html b/testing/web-platform/tests/css/css-content/element-replacement-image-no-src.tentative.html new file mode 100644 index 0000000000..0c400ed574 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/element-replacement-image-no-src.tentative.html @@ -0,0 +1,9 @@ +<!doctype html> +<title>content: url() works on image</title> +<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#content-property"> +<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/2831"> +<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1484928"> +<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1742411"> +<link rel="match" href="element-replacement-image-no-src-ref.html"> +<img style="content: url(/images/yellow.png)" width=100 height=100> diff --git a/testing/web-platform/tests/css/css-content/element-replacement-image-src.tentative.html b/testing/web-platform/tests/css/css-content/element-replacement-image-src.tentative.html new file mode 100644 index 0000000000..33547e2c24 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/element-replacement-image-src.tentative.html @@ -0,0 +1,9 @@ +<!doctype html> +<title>content: url() works on image</title> +<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#content-property"> +<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/2831"> +<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1484928"> +<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1742411"> +<link rel="match" href="element-replacement-image-no-src-ref.html"> +<img src="/images/blue.png" style="content: url(/images/yellow.png)" width=100 height=100> diff --git a/testing/web-platform/tests/css/css-content/element-replacement-on-replaced-element-ref.html b/testing/web-platform/tests/css/css-content/element-replacement-on-replaced-element-ref.html new file mode 100644 index 0000000000..a13d0fdb4b --- /dev/null +++ b/testing/web-platform/tests/css/css-content/element-replacement-on-replaced-element-ref.html @@ -0,0 +1,3 @@ +<!doctype html> +<title>CSS Test Reference</title> +<video poster="/images/blue.png" style="object-fit: cover; content: url(/images/yellow.png)" width=100 height=100></video> diff --git a/testing/web-platform/tests/css/css-content/element-replacement-on-replaced-element.tentative.html b/testing/web-platform/tests/css/css-content/element-replacement-on-replaced-element.tentative.html new file mode 100644 index 0000000000..79a465541f --- /dev/null +++ b/testing/web-platform/tests/css/css-content/element-replacement-on-replaced-element.tentative.html @@ -0,0 +1,8 @@ +<!doctype html> +<title>content: url() works (or not) consistently on replaced elements</title> +<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#content-property"> +<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/2831"> +<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1625805#c6"> +<link rel="match" href="element-replacement-on-replaced-element-ref.html"> +<img src="/images/blue.png" style="content: url(/images/yellow.png)" width=100 height=100> diff --git a/testing/web-platform/tests/css/css-content/element-replacement-ref.html b/testing/web-platform/tests/css/css-content/element-replacement-ref.html new file mode 100644 index 0000000000..d301f1d6a1 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/element-replacement-ref.html @@ -0,0 +1,4 @@ +<!DOCTYPE html> +<title>Reference for the content CSS attribute can replace an element's contents</title> + +<img src='resources/rect.svg' /> diff --git a/testing/web-platform/tests/css/css-content/element-replacement.html b/testing/web-platform/tests/css/css-content/element-replacement.html new file mode 100644 index 0000000000..a78e9f713b --- /dev/null +++ b/testing/web-platform/tests/css/css-content/element-replacement.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<title>The content CSS attribute can replace an element's contents</title> +<link rel="match" href="element-replacement-ref.html" /> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#content-property" /> +<meta name="assert" content"This test checks that the CSS content propertly can replace a normal element's contents" /> + +<style> +p { + margin: 0; + content: url('resources/rect.svg'); +} +</style> + +<p>This text should not be visible</p> diff --git a/testing/web-platform/tests/css/css-content/inheritance.html b/testing/web-platform/tests/css/css-content/inheritance.html new file mode 100644 index 0000000000..a3242556fd --- /dev/null +++ b/testing/web-platform/tests/css/css-content/inheritance.html @@ -0,0 +1,24 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>Inheritance of CSS Contents properties</title> +<link rel="help" href="https://drafts.csswg.org/css-content/#propdef-quotes"> +<link rel="help" href="https://drafts.csswg.org/css-content/#property-index"> +<meta name="assert" content="Properties inherit or not according to the spec."> +<meta name="assert" content="Properties have initial values according to the spec."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/inheritance-testcommon.js"></script> +</head> +<body> +<div id="container"> + <div id="target"></div> +</div> +<script> +assert_inherited('quotes', 'auto', 'none'); +assert_not_inherited('bookmark-level', 'none', '1'); +assert_not_inherited('bookmark-state', 'open', 'closed'); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/css-content/pseudo-element-inline-box-ref.html b/testing/web-platform/tests/css/css-content/pseudo-element-inline-box-ref.html new file mode 100644 index 0000000000..8294ae672d --- /dev/null +++ b/testing/web-platform/tests/css/css-content/pseudo-element-inline-box-ref.html @@ -0,0 +1,8 @@ +<!doctype html> +<title>CSS Test Reference</title> +<p>Should see a green image with a blue border</p> +<div> + <span style="border: 10px solid blue"> + <img src="resources/rect.svg"> + </span> +</div> diff --git a/testing/web-platform/tests/css/css-content/pseudo-element-inline-box.html b/testing/web-platform/tests/css/css-content/pseudo-element-inline-box.html new file mode 100644 index 0000000000..5c1666261e --- /dev/null +++ b/testing/web-platform/tests/css/css-content/pseudo-element-inline-box.html @@ -0,0 +1,15 @@ +<!doctype html> +<title>CSS Test: content: url() on pseudo-elements is under a non-replaced box.</title> +<link rel="match" href="pseudo-element-inline-box-ref.html"> +<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"> +<link rel="author" title="Boris Zbarsky" href="mailto:bzbarsky@mit.edu"> +<link rel="help" href="https://drafts.csswg.org/css-content/#typedef-content-content-list"> +<style> + div::before { + border: 10px solid blue; + content: url(resources/rect.svg); + display: inline; + } +</style> +<p>Should see a green image with a blue border</p> +<div></div> diff --git a/testing/web-platform/tests/css/css-content/quotes-001.html b/testing/web-platform/tests/css/css-content/quotes-001.html new file mode 100644 index 0000000000..26fddec97a --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-001.html @@ -0,0 +1,15 @@ +<!doctype html> +<html> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Browser uses default quote marks when no lang is specified"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-001-ref.html"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the <q>outer <q>quote marks</q> are double, +and the two sets of <q>inner</q> ones</q> are single. diff --git a/testing/web-platform/tests/css/css-content/quotes-002.html b/testing/web-platform/tests/css/css-content/quotes-002.html new file mode 100644 index 0000000000..e87938cf98 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-002.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="en-US"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="The quotes property controls quote marks inserted by the q element"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-002-ref.html"> +<style> +body { font: 32px serif; } +.test { quotes: "<" ">" ; } +</style> +<body> +Test passes if the word <q>quotes</q> is enclosed in curly quotes, +and <q class=test>angle brackets</q> in angle brackets. diff --git a/testing/web-platform/tests/css/css-content/quotes-003.html b/testing/web-platform/tests/css/css-content/quotes-003.html new file mode 100644 index 0000000000..ed568f2d04 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-003.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="en-US"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="The quotes property can specify different marks for nested quotes"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-003-ref.html"> +<style> +body { font: 32px serif; } +.test { quotes: "<" ">" "[" "]"; } +</style> +<body> +<p class=test>Test passes if the <q>outer <q>quote marks</q> are angle brackets, +and the two sets of <q>inner</q> ones</q> are square brackets. diff --git a/testing/web-platform/tests/css/css-content/quotes-004.html b/testing/web-platform/tests/css/css-content/quotes-004.html new file mode 100644 index 0000000000..0fbe91d194 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-004.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="am"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Amharic quotation marks follow CLDR"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-004-ref.html"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p><q>አንድ <q>ሁለት</q> ሦስት</q> +<p>«አንድ ‹ሁለት› ሦስት» diff --git a/testing/web-platform/tests/css/css-content/quotes-005.html b/testing/web-platform/tests/css/css-content/quotes-005.html new file mode 100644 index 0000000000..d813a589de --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-005.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="ar"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Arabic quotation marks follow CLDR"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-005-ref.html"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p dir=rtl><q>واحد <q>اثنينل</q> ثلاثة</q> +<p dir=rtl>”واحد ’اثنينل‘ ثلاثة“ diff --git a/testing/web-platform/tests/css/css-content/quotes-006.html b/testing/web-platform/tests/css/css-content/quotes-006.html new file mode 100644 index 0000000000..b4f876f446 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-006.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="bn"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Bengali quotation marks follow CLDR"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-006-ref.html"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p><q>এক <q>দুই</q> তিন</q> +<p>“এক ‘দুই’ তিন” diff --git a/testing/web-platform/tests/css/css-content/quotes-007.html b/testing/web-platform/tests/css/css-content/quotes-007.html new file mode 100644 index 0000000000..b6791d42a5 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-007.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="chr"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Cherokee quotation marks follow CLDR"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-007-ref.html"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p><q>Ꮒꭶꮣ <q>ꭰꮒᏼꮻ</q> ꭴꮎꮥꮕꭲ</q> +<p>“Ꮒꭶꮣ ‘ꭰꮒᏼꮻ’ ꭴꮎꮥꮕꭲ” diff --git a/testing/web-platform/tests/css/css-content/quotes-008.html b/testing/web-platform/tests/css/css-content/quotes-008.html new file mode 100644 index 0000000000..5369fd0bbf --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-008.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="el"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Greek quotation marks follow CLDR"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-008-ref.html"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p><q>ένα <q>δύο</q> τρία</q> +<p>«ένα “δύο” τρία» diff --git a/testing/web-platform/tests/css/css-content/quotes-009.html b/testing/web-platform/tests/css/css-content/quotes-009.html new file mode 100644 index 0000000000..ae1688f5a4 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-009.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="fa"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Farsi quotation marks follow CLDR"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-009-ref.html"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p><q>یک <q>دو</q> سه</q> +<p>«یک ‹دو› سه» diff --git a/testing/web-platform/tests/css/css-content/quotes-010.html b/testing/web-platform/tests/css/css-content/quotes-010.html new file mode 100644 index 0000000000..022bdd561b --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-010.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="fr"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="French quotation marks follow CLDR"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-010-ref.html"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p><q>un <q>deux</q> trois</q> +<p>«un «deux» trois» diff --git a/testing/web-platform/tests/css/css-content/quotes-011.html b/testing/web-platform/tests/css/css-content/quotes-011.html new file mode 100644 index 0000000000..3a3dc87d16 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-011.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="fr-CH"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Swiss-French quotation marks follow CLDR"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-011-ref.html"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p><q>un <q>deux</q> trois</q> +<p>«un ‹deux› trois» diff --git a/testing/web-platform/tests/css/css-content/quotes-012.html b/testing/web-platform/tests/css/css-content/quotes-012.html new file mode 100644 index 0000000000..481b73dc77 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-012.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="gu"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Gujarati quotation marks follow CLDR"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-012-ref.html"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p><q>એક <q>બે</q> રણ</q> +<p>“એક ‘બે’ રણ” diff --git a/testing/web-platform/tests/css/css-content/quotes-013.html b/testing/web-platform/tests/css/css-content/quotes-013.html new file mode 100644 index 0000000000..9db9526a8c --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-013.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="he"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Hebrew quotation marks follow CLDR"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-013-ref.html"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p dir=rtl><q>אחת <q>שתיים</q> שלוש</q> +<p dir=rtl>”אחת ’שתיים’ שלוש” diff --git a/testing/web-platform/tests/css/css-content/quotes-014.html b/testing/web-platform/tests/css/css-content/quotes-014.html new file mode 100644 index 0000000000..967510a653 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-014.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="hi"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Hindi quotation marks follow CLDR"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-014-ref.html"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p><q>एक <q>दो</q> तीन</q> +<p>“एक ‘दो’ तीन” diff --git a/testing/web-platform/tests/css/css-content/quotes-015.html b/testing/web-platform/tests/css/css-content/quotes-015.html new file mode 100644 index 0000000000..86a96085f2 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-015.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="hu"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Hungarian quotation marks follow CLDR"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-015-ref.html"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p><q>egy <q>kettő</q> három</q> +<p>„egy »kettő« három” diff --git a/testing/web-platform/tests/css/css-content/quotes-016.html b/testing/web-platform/tests/css/css-content/quotes-016.html new file mode 100644 index 0000000000..ebb8120244 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-016.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="ja"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Japanese quotation marks follow CLDR"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-016-ref.html"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p><q>一 <q>二</q> 三</q> +<p>「一 『二』 三」 diff --git a/testing/web-platform/tests/css/css-content/quotes-017.html b/testing/web-platform/tests/css/css-content/quotes-017.html new file mode 100644 index 0000000000..f03ec21363 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-017.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="km"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Khmer quotation marks follow CLDR"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-017-ref.html"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p><q>មួយ <q>ពីរ</q> បី</q> +<p>“មួយ ‘ពីរ’ បី” diff --git a/testing/web-platform/tests/css/css-content/quotes-018.html b/testing/web-platform/tests/css/css-content/quotes-018.html new file mode 100644 index 0000000000..48bd318398 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-018.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="ko"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Korean quotation marks follow CLDR"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-018-ref.html"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p><q>하나 <q>둘</q> 셋</q> +<p>“하나 ‘둘’ 셋” diff --git a/testing/web-platform/tests/css/css-content/quotes-019.html b/testing/web-platform/tests/css/css-content/quotes-019.html new file mode 100644 index 0000000000..5bd522ee1a --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-019.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="lo"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Lao quotation marks follow CLDR"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-019-ref.html"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p><q>ຫນຶ່ງ <q>ສອງ</q> ສາມ</q> +<p>“ຫນຶ່ງ ‘ສອງ’ ສາມ” diff --git a/testing/web-platform/tests/css/css-content/quotes-020.html b/testing/web-platform/tests/css/css-content/quotes-020.html new file mode 100644 index 0000000000..0c1827d807 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-020.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="my"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Burmese quotation marks follow CLDR"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-020-ref.html"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p><q>တစ် <q>နှစ်</q> သုံး</q> +<p>“တစ် ‘နှစ်’ သုံး” diff --git a/testing/web-platform/tests/css/css-content/quotes-021.html b/testing/web-platform/tests/css/css-content/quotes-021.html new file mode 100644 index 0000000000..bf23f1b033 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-021.html @@ -0,0 +1,17 @@ +<!doctype html> +<html lang="nl"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Dutch quotation marks follow CLDR"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel="help" href="https://unicode-org.github.io/cldr-staging/charts/40/summary/nl.html#101c4f8aa144538f"> +<link rel=match href="reference/quotes-021-ref.html"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p><q>een <q>twee</q> drie</q> +<p>‘een ‘twee’ drie’ diff --git a/testing/web-platform/tests/css/css-content/quotes-022.html b/testing/web-platform/tests/css/css-content/quotes-022.html new file mode 100644 index 0000000000..430b98b2c8 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-022.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="pa"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Punjabi quotation marks follow CLDR"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-022-ref.html"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p><q>ਇੱਕ <q>ਦੋ</q> ਤਿੰਨ</q> +<p>“ਇੱਕ ‘ਦੋ’ ਤਿੰਨ” diff --git a/testing/web-platform/tests/css/css-content/quotes-023.html b/testing/web-platform/tests/css/css-content/quotes-023.html new file mode 100644 index 0000000000..e88d6abffc --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-023.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="ta"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Tamil quotation marks follow CLDR"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-023-ref.html"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p><q>ஒன்று <q>இரண்டு</q> மூன்று</q> +<p>“ஒன்று ‘இரண்டு’ மூன்று” diff --git a/testing/web-platform/tests/css/css-content/quotes-024.html b/testing/web-platform/tests/css/css-content/quotes-024.html new file mode 100644 index 0000000000..99b29a2d67 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-024.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="th"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Thai quotation marks follow CLDR"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-024-ref.html"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p><q>หนึ่ง<q>สอง</q>สาม</q> +<p>“หนึ่ง‘สอง’สาม” diff --git a/testing/web-platform/tests/css/css-content/quotes-025.html b/testing/web-platform/tests/css/css-content/quotes-025.html new file mode 100644 index 0000000000..28e1f2904b --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-025.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="zh-Hans"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Simplified Chinese quotation marks follow CLDR"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-025-ref.html"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p><q>一 <q>二</q> 三</q> +<p>“一 ‘二’ 三” diff --git a/testing/web-platform/tests/css/css-content/quotes-026.html b/testing/web-platform/tests/css/css-content/quotes-026.html new file mode 100644 index 0000000000..ee1d5c5664 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-026.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="zh-Hant"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Traditional Chinese quotation marks follow CLDR"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-026-ref.html"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p><q>一 <q>二</q> 三</q> +<p>「一 『二』 三」 diff --git a/testing/web-platform/tests/css/css-content/quotes-027.html b/testing/web-platform/tests/css/css-content/quotes-027.html new file mode 100644 index 0000000000..051d308539 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-027.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="zh"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Chinese quotation marks follow CLDR"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes"> +<link rel=match href="reference/quotes-027-ref.html"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p><q>一 <q>二</q> 三</q> +<p>“一 ‘二’ 三” diff --git a/testing/web-platform/tests/css/css-content/quotes-028.html b/testing/web-platform/tests/css/css-content/quotes-028.html new file mode 100644 index 0000000000..5ec2ad0f02 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-028.html @@ -0,0 +1,15 @@ +<!doctype html> +<html lang="en"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Nested quotes use successive pairs, then repeat final pair"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel=match href="reference/quotes-028-ref.html"> +<style> +body { font: 32px serif; quotes: "“" "”" "‘" "’" "«" "»" "‹" "›"; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>One <q>two <q>three <q>four <q>five <q>six</q></q></q></q></q> +<p>One “two ‘three «four ‹five ‹six››»’” diff --git a/testing/web-platform/tests/css/css-content/quotes-029.html b/testing/web-platform/tests/css/css-content/quotes-029.html new file mode 100644 index 0000000000..760605d0e2 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-029.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="en"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="Nested quotes continue at the correct level when the quotes property is updated"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel=match href="reference/quotes-029-ref.html"> +<style> +body { font: 32px serif; quotes: none; } +.q { quotes: "“" "”" "‘" "’" "«" "»" "‹" "›"; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>One <q>two <q>three <q class=q>four <q>five <q>six</q></q></q></q></q> +<p>One two three «four ‹five ‹six››» diff --git a/testing/web-platform/tests/css/css-content/quotes-030.html b/testing/web-platform/tests/css/css-content/quotes-030.html new file mode 100644 index 0000000000..095c37fedb --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-030.html @@ -0,0 +1,17 @@ +<!doctype html> +<html lang="en"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="quotes:auto with mixed languages uses appropriate CLDR quotes for each language, +based on the parent language (not the language of the element itself)"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5478#issuecomment-701507076"> +<link rel=match href="reference/quotes-030-ref.html"> +<style> +body { font: 32px Arial, Helvetica, Noto Sans, DejaVu Sans, FreeSans, sans-serif; quotes: auto; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>One <q>two <q lang="ja">three <q lang="fr">four</q></q></q> +<p>One “two <span lang="ja">‘three <span lang="fr">『four』</span>’</span>” diff --git a/testing/web-platform/tests/css/css-content/quotes-031.html b/testing/web-platform/tests/css/css-content/quotes-031.html new file mode 100644 index 0000000000..72d2027341 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-031.html @@ -0,0 +1,15 @@ +<!doctype html> +<html lang="en"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="language change does not override explicit quotes:<pair-list>"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel=match href="reference/quotes-031-ref.html"> +<style> +body { font: 32px serif; quotes: "‹" "›"; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>One <q>two <q lang="ja">three <q lang="fr">four</q></q></q> +<p>One ‹two <span lang="ja">‹three <span lang="fr">‹four›</span>›</span>› diff --git a/testing/web-platform/tests/css/css-content/quotes-032.html b/testing/web-platform/tests/css/css-content/quotes-032.html new file mode 100644 index 0000000000..cb0b36312b --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-032.html @@ -0,0 +1,15 @@ +<!doctype html> +<html lang="en"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="lang attribute does not override explicit quotes:none setting"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel=match href="reference/quotes-032-ref.html"> +<style> +body { font: 32px serif; quotes: none; } +</style> +<body> +<p>Test passes if both lines match, with no quote marks: +<p>One <q>two <q lang="ja">three <q lang="fr">four</q></q></q> +<p>One two <span lang="ja">three <span lang="fr">four</span></span> diff --git a/testing/web-platform/tests/css/css-content/quotes-033.html b/testing/web-platform/tests/css/css-content/quotes-033.html new file mode 100644 index 0000000000..ca54478864 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-033.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="en"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="quotes:auto resets default behavior after quotes:none"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel=match href="reference/quotes-033-ref.html"> +<style> +body { font: 32px serif; quotes: none; } +.inner { quotes: auto; } +</style> +<body> +<p>Test passes if quote marks in both lines match: +<p>One <q>two</q> <span class="inner"><q>three <q>four</q></q></span> <q>five</q> +<p>One two “three ‘four’” five diff --git a/testing/web-platform/tests/css/css-content/quotes-034.html b/testing/web-platform/tests/css/css-content/quotes-034.html new file mode 100644 index 0000000000..1c0c744c30 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-034.html @@ -0,0 +1,34 @@ +<!doctype html> +<html lang="en"> +<meta charset=utf-8> +<title>CSS Generated Content test: quotes</title> +<meta name="assert" content="In the case of an unknown region, the quotes displayed should be based on the fallback order."> +<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes"> +<link rel=match href="reference/quotes-034-ref.html"> +<style> +body { font: 15px serif; } +</style> +<body> +<p>Test passes if quote marks in each pair lines match:</p> + +<p lang="fr"><q>fr FALLBACK</q></p> +<p lang="fr-FR"><q>fr FALLBACK</q></p> + +<p lang="en"><q>en FALLBACK</q></p> +<p lang="en-EN"><q>en FALLBACK</q></p> + +<p lang="fi"><q>fi FALLBACK</q></p> +<p lang="fi-FI"><q>fi FALLBACK</q></p> + +<p lang="de"><q>de FALLBACK</q></p> +<p lang="de-DE"><q>de FALLBACK</q></p> + +<p lang="he"><q>he FALLBACK</q></p> +<p lang="he-HE"><q>he FALLBACK</q></p> + +<p lang="ja"><q>ja FALLBACK</q></p> +<p lang="ja-JA"><q>ja FALLBACK</q></p> + +<p lang="aa"><q>root FALLBACK</q></p> + +<p lang="zz"><q>root FALLBACK</q></p> diff --git a/testing/web-platform/tests/css/css-content/quotes-first-letter-001.html b/testing/web-platform/tests/css/css-content/quotes-first-letter-001.html new file mode 100644 index 0000000000..651615f525 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-first-letter-001.html @@ -0,0 +1,19 @@ +<!doctype html> +<meta charset=utf-8> +<title>CSS-content test: first letter with quotes interaction dynamic quotes change</title> +<link rel="author" title="Daniil Sakhapov" href="sakhapov@google.com"> +<link rel="match" href="reference/quotes-first-letter-001-ref.html"> +<link rel=help href="https://drafts.csswg.org/css-content/#quotes"> + +<style> + #root { quotes: "A" "B"; } + #root.xy-quotes { quotes: "'X" "'Y"; } + #root::first-letter { color: green; } +</style> + +<div id="root"><q>First letter</q></div> + +<script> + document.body.offsetTop; + root.className = "xy-quotes"; +</script> diff --git a/testing/web-platform/tests/css/css-content/quotes-first-letter-002.html b/testing/web-platform/tests/css/css-content/quotes-first-letter-002.html new file mode 100644 index 0000000000..8c40b1418a --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-first-letter-002.html @@ -0,0 +1,25 @@ +<!doctype html> +<meta charset=utf-8> +<title>CSS-content test: first letter with quotes interaction dynamic attachment</title> +<link rel="author" title="Daniil Sakhapov" href="sakhapov@google.com"> +<link rel="match" href="reference/quotes-first-letter-002-ref.html"> +<link rel=help href="https://drafts.csswg.org/css-content/#quotes"> + +<style> + .first-letter::first-letter { color: green; } +</style> + +<q> + <div id="outer"> + <q>Should not crash or assert and all six quotes should be displayed.</q> + <div id="inner"> + <q>Should not crash or assert and all six quotes should be displayed.</q> + </div> + </div> +</q> + +<script> + document.body.offsetTop; + inner.className = 'first-letter'; + outer.className = 'first-letter'; +</script> diff --git a/testing/web-platform/tests/css/css-content/quotes-first-letter-003.html b/testing/web-platform/tests/css/css-content/quotes-first-letter-003.html new file mode 100644 index 0000000000..fd556d2ab1 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-first-letter-003.html @@ -0,0 +1,19 @@ +<!doctype html> +<meta charset=utf-8> +<title>CSS-content test: first letter with quotes interaction dynamic detach</title> +<link rel="author" title="Daniil Sakhapov" href="sakhapov@google.com"> +<link rel="match" href="reference/quotes-first-letter-001-ref.html"> +<link rel=help href="https://drafts.csswg.org/css-content/#quotes"> + +<style> + #outer { quotes: "'X" "'Y"; } + #outer::first-letter { color: green; } + #inner::first-letter { color: red; } +</style> + +<div id="outer"><div id="inner"><q>First letter</q></div></div> + +<script> + document.body.offsetTop; + inner.removeAttribute('id'); +</script> diff --git a/testing/web-platform/tests/css/css-content/quotes-first-letter-004.html b/testing/web-platform/tests/css/css-content/quotes-first-letter-004.html new file mode 100644 index 0000000000..932ea8516e --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-first-letter-004.html @@ -0,0 +1,19 @@ +<!doctype html> +<meta charset=utf-8> +<title>CSS-content test: first letter with quotes interaction dynamic style change</title> +<link rel="author" title="Daniil Sakhapov" href="sakhapov@google.com"> +<link rel="match" href="reference/quotes-first-letter-001-ref.html"> +<link rel=help href="https://drafts.csswg.org/css-content/#quotes"> + +<style> + #outer { quotes: "'X" "'Y"; } + #outer::first-letter { color: red; } + #outer.green::first-letter { color: green; } +</style> + +<div id="outer"><div id="inner"><q>First letter</q></div></div> + +<script> + document.body.offsetTop; + outer.className = "green"; +</script> diff --git a/testing/web-platform/tests/css/css-content/quotes-first-letter-005.html b/testing/web-platform/tests/css/css-content/quotes-first-letter-005.html new file mode 100644 index 0000000000..a22589a661 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-first-letter-005.html @@ -0,0 +1,25 @@ +<!doctype html> +<meta charset=utf-8> +<title>CSS-content test: first letter with quotes interaction dynamic attachment siblings</title> +<link rel="author" title="Daniil Sakhapov" href="sakhapov@google.com"> +<link rel="match" href="reference/quotes-first-letter-002-ref.html"> +<link rel=help href="https://drafts.csswg.org/css-content/#quotes"> + +<style> + .first-letter::first-letter { color: green; } +</style> + +<q> + <div id="first"> + <q>Should not crash or assert and all six quotes should be displayed.</q> + </div> + <div id="last"> + <q>Should not crash or assert and all six quotes should be displayed.</q> + </div> +</q> + +<script> + document.body.offsetTop; + first.className = 'first-letter'; + last.className = 'first-letter'; +</script> diff --git a/testing/web-platform/tests/css/css-content/quotes-slot-scoping-ref.html b/testing/web-platform/tests/css/css-content/quotes-slot-scoping-ref.html new file mode 100644 index 0000000000..e3e907cba5 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-slot-scoping-ref.html @@ -0,0 +1,18 @@ +<!DOCTYPE html> +<html> + <head> + <title>Quote scope Shadow DOM and SLOT</title> + <link rel="author" title="Martin Robinson" href="mailto:mrobinson@igalia.com"> + <link rel="help" href="https://www.w3.org/TR/css-content-3/#quote-values"> + <style> + q { + quotes: '1''1''2''2''3''3'; + } + </style> + </head> + <body> + <q> + <q>Quote</q> + </q> + </body> +</html> diff --git a/testing/web-platform/tests/css/css-content/quotes-slot-scoping.html b/testing/web-platform/tests/css/css-content/quotes-slot-scoping.html new file mode 100644 index 0000000000..3caeabef4e --- /dev/null +++ b/testing/web-platform/tests/css/css-content/quotes-slot-scoping.html @@ -0,0 +1,38 @@ +<!DOCTYPE html> +<html> + <head> + <title>Quote scope Shadow DOM and SLOT</title> + <link rel="author" title="Martin Robinson" href="mailto:mrobinson@igalia.com"> + <link rel="help" href="https://www.w3.org/TR/css-content-3/#quote-values"> + <link rel="match" href="quotes-slot-scoping-ref.html"> + </head> + + <body> + <div id="host"> + <q slot="quote">Quote</q> + </div> + + <script> + function makeStyle() { + let style = document.createElement('style'); + style.textContent = ` + q { + quotes: '1' '1' '2' '2' '3' '3'; + } + `; + return style; + } + document.body.appendChild(makeStyle()); + + const shadowRoot = document + .getElementById('host') + .attachShadow({mode: 'open'}); + shadowRoot.innerHTML = ` + <q> + <slot name="quote"></slot> + </q> + `; + shadowRoot.appendChild(makeStyle()); + </script> + </body> +</html> diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-001-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-001-ref.html new file mode 100644 index 0000000000..8e26721e03 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-001-ref.html @@ -0,0 +1,11 @@ +<!doctype html> +<html> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the “outer ‘quote marks’ are double, +and the two sets of ‘inner’ ones” are single. diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-002-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-002-ref.html new file mode 100644 index 0000000000..aa0b2c8a42 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-002-ref.html @@ -0,0 +1,11 @@ +<!doctype html> +<html lang="en-US"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +Test passes if the word “quotes” is enclosed in curly quotes, +and <angle brackets> in angle brackets. diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-003-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-003-ref.html new file mode 100644 index 0000000000..b078c0bf30 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-003-ref.html @@ -0,0 +1,11 @@ +<!doctype html> +<html lang="en-US"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p class=test>Test passes if the <outer [quote marks] are angle brackets, +and the two sets of [inner] ones> are square brackets. diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-004-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-004-ref.html new file mode 100644 index 0000000000..668c65afa1 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-004-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="am"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>«አንድ ‹ሁለት› ሦስት» +<p>«አንድ ‹ሁለት› ሦስት» diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-005-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-005-ref.html new file mode 100644 index 0000000000..fe3161fec3 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-005-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="ar"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p dir=rtl>”واحد ’اثنينل‘ ثلاثة“ +<p dir=rtl>”واحد ’اثنينل‘ ثلاثة“ diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-006-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-006-ref.html new file mode 100644 index 0000000000..fcbc028490 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-006-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="bn"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>“এক ‘দুই’ তিন” +<p>“এক ‘দুই’ তিন” diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-007-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-007-ref.html new file mode 100644 index 0000000000..5e0416f2c5 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-007-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="chr"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>“Ꮒꭶꮣ ‘ꭰꮒᏼꮻ’ ꭴꮎꮥꮕꭲ” +<p>“Ꮒꭶꮣ ‘ꭰꮒᏼꮻ’ ꭴꮎꮥꮕꭲ” diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-008-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-008-ref.html new file mode 100644 index 0000000000..aa0850be96 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-008-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="el"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>«ένα “δύο” τρία» +<p>«ένα “δύο” τρία» diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-009-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-009-ref.html new file mode 100644 index 0000000000..279e7f4ae1 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-009-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="fa"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>«یک ‹دو› سه» +<p>«یک ‹دو› سه» diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-010-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-010-ref.html new file mode 100644 index 0000000000..cd37a2628d --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-010-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="fr"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>«un «deux» trois» +<p>«un «deux» trois» diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-011-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-011-ref.html new file mode 100644 index 0000000000..b61c264b48 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-011-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="fr-CH"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>«un ‹deux› trois» +<p>«un ‹deux› trois» diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-012-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-012-ref.html new file mode 100644 index 0000000000..9c28ad7d0a --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-012-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="gu"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>“એક ‘બે’ રણ” +<p>“એક ‘બે’ રણ” diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-013-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-013-ref.html new file mode 100644 index 0000000000..0e10cba117 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-013-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="he"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p dir=rtl>”אחת ’שתיים’ שלוש” +<p dir=rtl>”אחת ’שתיים’ שלוש” diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-014-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-014-ref.html new file mode 100644 index 0000000000..0b82e024ed --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-014-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="hi"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>“एक ‘दो’ तीन” +<p>“एक ‘दो’ तीन” diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-015-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-015-ref.html new file mode 100644 index 0000000000..3417d6035b --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-015-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="hu"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>„egy »kettő« három” +<p>„egy »kettő« három” diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-016-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-016-ref.html new file mode 100644 index 0000000000..b70e7d423c --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-016-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="ja"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>「一 『二』 三」 +<p>「一 『二』 三」 diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-017-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-017-ref.html new file mode 100644 index 0000000000..7039368035 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-017-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="km"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>“មួយ ‘ពីរ’ បី” +<p>“មួយ ‘ពីរ’ បី” diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-018-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-018-ref.html new file mode 100644 index 0000000000..c022d3f413 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-018-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="ko"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>“하나 ‘둘’ 셋” +<p>“하나 ‘둘’ 셋” diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-019-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-019-ref.html new file mode 100644 index 0000000000..aa80c978a6 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-019-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="lo"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>“ຫນຶ່ງ ‘ສອງ’ ສາມ” +<p>“ຫນຶ່ງ ‘ສອງ’ ສາມ” diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-020-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-020-ref.html new file mode 100644 index 0000000000..6629270839 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-020-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="my"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>“တစ် ‘နှစ်’ သုံး” +<p>“တစ် ‘နှစ်’ သုံး” diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-021-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-021-ref.html new file mode 100644 index 0000000000..f87212a649 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-021-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="nl"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>‘een ‘twee’ drie’ +<p>‘een ‘twee’ drie’ diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-022-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-022-ref.html new file mode 100644 index 0000000000..8c6d3937f6 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-022-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="pa"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>“ਇੱਕ ‘ਦੋ’ ਤਿੰਨ” +<p>“ਇੱਕ ‘ਦੋ’ ਤਿੰਨ” diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-023-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-023-ref.html new file mode 100644 index 0000000000..022f6f3cba --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-023-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="ta"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>“ஒன்று ‘இரண்டு’ மூன்று” +<p>“ஒன்று ‘இரண்டு’ மூன்று” diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-024-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-024-ref.html new file mode 100644 index 0000000000..074069f7f0 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-024-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="th"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>“หนึ่ง‘สอง’สาม” +<p>“หนึ่ง‘สอง’สาม” diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-025-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-025-ref.html new file mode 100644 index 0000000000..45f41d8e86 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-025-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="zh-Hans"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>“一 ‘二’ 三” +<p>“一 ‘二’ 三” diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-026-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-026-ref.html new file mode 100644 index 0000000000..247007348f --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-026-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="zh-Hant"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>「一 『二』 三」 +<p>「一 『二』 三」 diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-027-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-027-ref.html new file mode 100644 index 0000000000..8ccc0e310e --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-027-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="zh"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>“一 ‘二’ 三” +<p>“一 ‘二’ 三” diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-028-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-028-ref.html new file mode 100644 index 0000000000..48b98caefc --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-028-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="en"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>One “two ‘three «four ‹five ‹six››»’” +<p>One “two ‘three «four ‹five ‹six››»’” diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-029-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-029-ref.html new file mode 100644 index 0000000000..4d37e50376 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-029-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="en"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>One two three «four ‹five ‹six››» +<p>One two three «four ‹five ‹six››» diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-030-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-030-ref.html new file mode 100644 index 0000000000..c06d85b9dd --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-030-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="en"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px Arial, Helvetica, Noto Sans, DejaVu Sans, FreeSans, sans-serif; quotes: auto; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>One “two <span lang="ja">‘three <span lang="fr">『four』</span>’</span>” +<p>One “two <span lang="ja">‘three <span lang="fr">『four』</span>’</span>” diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-031-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-031-ref.html new file mode 100644 index 0000000000..a4732c379e --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-031-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="en"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if the quote marks in both lines match: +<p>One ‹two <span lang="ja">‹three <span lang="fr">‹four›</span>›</span>› +<p>One ‹two <span lang="ja">‹three <span lang="fr">‹four›</span>›</span>› diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-032-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-032-ref.html new file mode 100644 index 0000000000..2ba542328a --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-032-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="en"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if both lines match, with no quote marks: +<p>One two <span lang="ja">three <span lang="fr">four</span></span> +<p>One two <span lang="ja">three <span lang="fr">four</span></span> diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-033-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-033-ref.html new file mode 100644 index 0000000000..99d1e75ddb --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-033-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html lang="en"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<style> +body { font: 32px serif; } +</style> +<body> +<p>Test passes if quote marks in both lines match: +<p>One two “three ‘four’” five +<p>One two “three ‘four’” five diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-034-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-034-ref.html new file mode 100644 index 0000000000..bfe7163f13 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-034-ref.html @@ -0,0 +1,31 @@ +<!doctype html> +<html lang="en"> +<meta charset=utf-8> +<title>CSS Generated Content reference: quotes</title> +<style> +body { font: 15px serif; } +</style> +<body> +<p>Test passes if quote marks in each pair lines match: + +<p lang="fr">«fr FALLBACK»</p> +<p lang="fr">«fr FALLBACK»</p> + +<p lang="en">“en FALLBACK”</p> +<p lang="en">“en FALLBACK”</p> + +<p lang="fi">”fi FALLBACK”</p> +<p lang="fi">”fi FALLBACK”</p> + +<p lang="de">„de FALLBACK“</p> +<p lang="de">„de FALLBACK“</p> + +<p lang="he">”he FALLBACK”</p> +<p lang="he">”he FALLBACK”</p> + +<p lang="ja">「ja FALLBACK」</p> +<p lang="ja">「ja FALLBACK」</p> + +<p lang="aa">“root FALLBACK”</p> + +<p lang="zz">“root FALLBACK”</p> diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-first-letter-001-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-first-letter-001-ref.html new file mode 100644 index 0000000000..c68334b8da --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-first-letter-001-ref.html @@ -0,0 +1,6 @@ +<!doctype html> +<meta charset=utf-8> +<title>CSS-content test reference: first letter with quotes interaction dynamice quotes change</title> +<link rel="author" title="Daniil Sakhapov" href="sakhapov@google.com"> + +<span style="color: green">'X</span>First letter'Y diff --git a/testing/web-platform/tests/css/css-content/reference/quotes-first-letter-002-ref.html b/testing/web-platform/tests/css/css-content/reference/quotes-first-letter-002-ref.html new file mode 100644 index 0000000000..094be48cd8 --- /dev/null +++ b/testing/web-platform/tests/css/css-content/reference/quotes-first-letter-002-ref.html @@ -0,0 +1,13 @@ +<!doctype html> +<meta charset=utf-8> +<title>CSS-content test reference: first letter with quotes interaction</title> +<link rel="author" title="Daniil Sakhapov" href="sakhapov@google.com"> + +<style> + .quote { color: green; } +</style> + +“ +<div><span class="quote">‘</span>Should not crash or assert and all six quotes should be displayed.’</div> +<div><span class="quote">‘</span>Should not crash or assert and all six quotes should be displayed.’</div> +” diff --git a/testing/web-platform/tests/css/css-content/resources/rect.svg b/testing/web-platform/tests/css/css-content/resources/rect.svg new file mode 100644 index 0000000000..d5de6b4c9d --- /dev/null +++ b/testing/web-platform/tests/css/css-content/resources/rect.svg @@ -0,0 +1,3 @@ +<svg width="100" height="100" version="1.1" xmlns="http://www.w3.org/2000/svg"> + <rect x="0" y="0" width="100" height="100" fill="green" /> +</svg> |