Tests: Import text-shadow parsing test

Done in a distinct commit to show progress in following commits
This commit is contained in:
Callum Law 2025-09-15 15:09:40 +12:00 committed by Sam Atkins
parent c3b0eabf18
commit 5d8a859457
4 changed files with 78 additions and 0 deletions

View File

@ -0,0 +1,13 @@
Harness status: OK
Found 7 tests
1 Pass
6 Fail
Pass Property text-shadow value 'none'
Fail Property text-shadow value '10px 20px'
Fail Property text-shadow value 'red 10px 20px 30px'
Fail Property text-shadow value 'calc(0.5em + 10px) calc(0.5em + 10px) calc(0.5em + 10px)'
Fail Property text-shadow value 'calc(-0.5em + 10px) calc(-0.5em + 10px) calc(-0.5em + 10px)'
Fail Property text-shadow value '10px 20px, 30px 40px'
Fail Property text-shadow value 'lime 10px 20px 30px, red 40px 50px'

View File

@ -0,0 +1,14 @@
Harness status: OK
Found 8 tests
7 Pass
1 Fail
Pass e.style['text-shadow'] = "auto" should not set the property value
Pass e.style['text-shadow'] = "10px 20px -30px" should not set the property value
Pass e.style['text-shadow'] = "10px" should not set the property value
Fail e.style['text-shadow'] = "10px 20px 30px 40px" should not set the property value
Pass e.style['text-shadow'] = "red 10px 20px blue" should not set the property value
Pass e.style['text-shadow'] = "10% 20px" should not set the property value
Pass e.style['text-shadow'] = "10px 20% 30px" should not set the property value
Pass e.style['text-shadow'] = "lime 10px 20px 30%" should not set the property value

View File

@ -0,0 +1,31 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Text Decoration Test: getComputedStyle().textShadow</title>
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#text-shadow-property">
<meta name="assert" content="text-shadow computed value is none or a list, each item a color and lengths.">
<script src="../../../../resources/testharness.js"></script>
<script src="../../../../resources/testharnessreport.js"></script>
<script src="../../../../css/support/computed-testcommon.js"></script>
<style>
#target {
font-size: 40px;
color: blue;
}
</style>
<div id="target"></div>
<script>
'use strict';
const red = 'rgb(255, 0, 0)';
const lime = 'rgb(0, 255, 0)';
const currentColor = 'rgb(0, 0, 255)';
test_computed_value("text-shadow", "none");
test_computed_value("text-shadow", "10px 20px", currentColor + " 10px 20px 0px");
test_computed_value("text-shadow", "red 10px 20px 30px", red + " 10px 20px 30px");
test_computed_value("text-shadow", "calc(0.5em + 10px) calc(0.5em + 10px) calc(0.5em + 10px)", currentColor + " 30px 30px 30px");
test_computed_value("text-shadow", "calc(-0.5em + 10px) calc(-0.5em + 10px) calc(-0.5em + 10px)", currentColor + " -10px -10px 0px");
test_computed_value("text-shadow", "10px 20px, 30px 40px", currentColor + " 10px 20px 0px, " + currentColor + " 30px 40px 0px");
test_computed_value("text-shadow", "lime 10px 20px 30px, red 40px 50px", lime + " 10px 20px 30px, " + red + " 40px 50px 0px");
</script>

View File

@ -0,0 +1,20 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Text Decoration Test: Parsing text-shadow with invalid values</title>
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#text-shadow-property">
<meta name="assert" content="text-shadow supports only the grammar 'none | [ <color>? && <length>{2,3} ]#'.">
<script src="../../../../resources/testharness.js"></script>
<script src="../../../../resources/testharnessreport.js"></script>
<script src="../../../../css/support/parsing-testcommon.js"></script>
<script>
test_invalid_value("text-shadow", "auto");
test_invalid_value("text-shadow", "10px 20px -30px");
test_invalid_value("text-shadow", "10px");
test_invalid_value("text-shadow", "10px 20px 30px 40px");
test_invalid_value("text-shadow", "red 10px 20px blue");
test_invalid_value("text-shadow", "10% 20px");
test_invalid_value("text-shadow", "10px 20% 30px");
test_invalid_value("text-shadow", "lime 10px 20px 30%");
</script>