diff options
Diffstat (limited to 'testing/web-platform/tests/css/css-lists/parsing')
21 files changed, 577 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-lists/parsing/content-invalid.html b/testing/web-platform/tests/css/css-lists/parsing/content-invalid.html new file mode 100644 index 0000000000..54fe99c0f0 --- /dev/null +++ b/testing/web-platform/tests/css/css-lists/parsing/content-invalid.html @@ -0,0 +1,41 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Lists: parsing counter()/counters() values for the 'content' property</title> +<link rel="help" href="https://drafts.csswg.org/css-lists-3/#counter-functions"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value('content', 'counter(foo, none)'); +test_invalid_value('content', 'counters(foo, "", none)'); +test_invalid_value('content', 'counter(foo, unset)'); +test_invalid_value('content', 'counters(foo, "", unset)'); +test_invalid_value('content', 'counter(foo, initial)'); +test_invalid_value('content', 'counters(foo, "", initial)'); +test_invalid_value('content', 'counter(foo, inherit)'); +test_invalid_value('content', 'counters(foo, "", inherit)'); + +test_invalid_value('content', '"z" counter(foo, none)'); +test_invalid_value('content', '"z" counters(foo, "", none)'); +test_invalid_value('content', '"z" counter(foo, unset)'); +test_invalid_value('content', '"z" counters(foo, "", unset)'); +test_invalid_value('content', '"z" counter(foo, initial)'); +test_invalid_value('content', '"z" counters(foo, "", initial)'); +test_invalid_value('content', '"z" counter(foo, inherit)'); +test_invalid_value('content', '"z" counters(foo, "", inherit)'); + +test_invalid_value('content', 'counter(foo, none) "z"'); +test_invalid_value('content', 'counters(foo, "", none) "z"'); +test_invalid_value('content', 'counter(foo, unset) "z"'); +test_invalid_value('content', 'counters(foo, "", unset) "z"'); +test_invalid_value('content', 'counter(foo, initial) "z"'); +test_invalid_value('content', 'counters(foo, "", initial) "z"'); +test_invalid_value('content', 'counter(foo, inherit) "z"'); +test_invalid_value('content', 'counters(foo, "", inherit) "z"'); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/css-lists/parsing/counter-increment-invalid.html b/testing/web-platform/tests/css/css-lists/parsing/counter-increment-invalid.html new file mode 100644 index 0000000000..b893d537ce --- /dev/null +++ b/testing/web-platform/tests/css/css-lists/parsing/counter-increment-invalid.html @@ -0,0 +1,29 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Lists: parsing counter-increment with invalid values</title> +<link rel="help" href="https://drafts.csswg.org/css-lists-3/#propdef-counter-increment"> +<meta name="assert" content="counter-increment supports only the grammar '[ <counter-name> <integer>? ]+ | none'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value('counter-increment', 'none chapter'); +test_invalid_value('counter-increment', 'reversed(none)'); +test_invalid_value('counter-increment', 'reversed(chapter)'); +test_invalid_value('counter-increment', '3'); +test_invalid_value('counter-increment', '99 imagenum'); +test_invalid_value('counter-increment', 'section -1, imagenum 99'); +test_invalid_value('counter-increment', 'section 3.14'); +test_invalid_value('counter-increment', 'inherit 1'); +test_invalid_value('counter-increment', 'initial 1'); +test_invalid_value('counter-increment', 'unset 1'); +test_invalid_value('counter-increment', 'default 1'); +test_invalid_value('counter-increment', 'revert 1'); +test_invalid_value('counter-increment', 'revert-layer 1'); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/css-lists/parsing/counter-increment-valid.html b/testing/web-platform/tests/css/css-lists/parsing/counter-increment-valid.html new file mode 100644 index 0000000000..277269000a --- /dev/null +++ b/testing/web-platform/tests/css/css-lists/parsing/counter-increment-valid.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Lists: parsing counter-increment with valid values</title> +<link rel="help" href="https://drafts.csswg.org/css-lists-3/#propdef-counter-increment"> +<meta name="assert" content="counter-increment supports the full grammar '[ <counter-name> <integer>? ]+ | none'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value('counter-increment', 'none'); +test_valid_value('counter-increment', 'chapter', 'chapter 1'); +test_valid_value('counter-increment', 'section -1'); +test_valid_value('counter-increment', 'first -1 second third 99', 'first -1 second 1 third 99'); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/css-lists/parsing/counter-reset-invalid.html b/testing/web-platform/tests/css/css-lists/parsing/counter-reset-invalid.html new file mode 100644 index 0000000000..18e406bd17 --- /dev/null +++ b/testing/web-platform/tests/css/css-lists/parsing/counter-reset-invalid.html @@ -0,0 +1,31 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Lists: parsing counter-reset with invalid values</title> +<link rel="help" href="https://drafts.csswg.org/css-lists-3/#propdef-counter-reset"> +<meta name="assert" content="counter-reset supports only the grammar '[ <counter-name> <integer>? | <reversed-counter-name> <integer>? ]+ | none'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value('counter-reset', 'none chapter'); +test_invalid_value('counter-reset', 'reversed(none)'); +test_invalid_value('counter-reset', 'reversed(chapter) none'); +test_invalid_value('counter-reset', '3'); +test_invalid_value('counter-reset', 'reversed(3)'); +test_invalid_value('counter-reset', '99 imagenum'); +test_invalid_value('counter-reset', '99 reversed(imagenum)'); +test_invalid_value('counter-reset', 'section -1, imagenum 99'); +test_invalid_value('counter-reset', 'section 3.14'); +test_invalid_value('counter-reset', 'inherit 0'); +test_invalid_value('counter-reset', 'initial 0'); +test_invalid_value('counter-reset', 'unset 0'); +test_invalid_value('counter-reset', 'default 0'); +test_invalid_value('counter-reset', 'revert 0'); +test_invalid_value('counter-reset', 'revert-layer 0'); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/css-lists/parsing/counter-reset-valid.html b/testing/web-platform/tests/css/css-lists/parsing/counter-reset-valid.html new file mode 100644 index 0000000000..2e6b37d0fc --- /dev/null +++ b/testing/web-platform/tests/css/css-lists/parsing/counter-reset-valid.html @@ -0,0 +1,26 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Lists: parsing counter-reset with valid values</title> +<link rel="help" href="https://drafts.csswg.org/css-lists-3/#propdef-counter-reset"> +<meta name="assert" content="counter-reset supports the full grammar '[ <counter-name> <integer>? | <reversed-counter-name> <integer>? ]+ | none'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value('counter-reset', 'none'); +test_valid_value('counter-reset', 'chapter', 'chapter 0'); +test_valid_value('counter-reset', 'chapter chapter 9', 'chapter 0 chapter 9'); +test_valid_value('counter-reset', 'reversed(chapter)'); +test_valid_value('counter-reset', 'chapter reversed(chapter)', 'chapter 0 reversed(chapter)'); +test_valid_value('counter-reset', 'reversed(chapter) 9 chapter', 'reversed(chapter) 9 chapter 0'); +test_valid_value('counter-reset', 'section -1'); +test_valid_value('counter-reset', 'reversed(section) -1'); +test_valid_value('counter-reset', 'first -1 second third 99', 'first -1 second 0 third 99'); +test_valid_value('counter-reset', 'reversed(first) -1 reversed(second) third 99', 'reversed(first) -1 reversed(second) third 99'); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/css-lists/parsing/counter-set-computed.html b/testing/web-platform/tests/css/css-lists/parsing/counter-set-computed.html new file mode 100644 index 0000000000..d0a92896ed --- /dev/null +++ b/testing/web-platform/tests/css/css-lists/parsing/counter-set-computed.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Lists: getComputedStyle().counterSet</title> +<link rel="help" href="https://drafts.csswg.org/css-lists-3/#propdef-counter-set"> +<meta name="assert" content="tests that counter-set grammar is supported."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/computed-testcommon.js"></script> +</head> +<body> +<div id="target"></div> +<script> +test_computed_value('counter-set', 'none'); +test_computed_value('counter-set', 'myCounter', 'myCounter 0'); +test_computed_value('counter-set', 'myCounter 5'); +test_computed_value('counter-set', 'myCounter 7 otherCounter 8'); +test_computed_value('counter-set', 'myCounter otherCounter 8', 'myCounter 0 otherCounter 8'); +test_computed_value('counter-set', 'myCounter 7 otherCounter', 'myCounter 7 otherCounter 0'); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/css-lists/parsing/counter-set-invalid.html b/testing/web-platform/tests/css/css-lists/parsing/counter-set-invalid.html new file mode 100644 index 0000000000..7b2f500fa4 --- /dev/null +++ b/testing/web-platform/tests/css/css-lists/parsing/counter-set-invalid.html @@ -0,0 +1,29 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Lists: parsing counter-set with invalid values</title> +<link rel="help" href="https://drafts.csswg.org/css-lists-3/#propdef-counter-set"> +<meta name="assert" content="counter-set supports only the grammar '[ <counter-name> <integer>? ]+ | none'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value('counter-set', 'none chapter'); +test_invalid_value('counter-set', 'reversed(none)'); +test_invalid_value('counter-set', 'reversed(chapter)'); +test_invalid_value('counter-set', '3'); +test_invalid_value('counter-set', '99 imagenum'); +test_invalid_value('counter-set', 'section -1, imagenum 99'); +test_invalid_value('counter-set', 'section 3.14'); +test_invalid_value('counter-set', 'inherit 2'); +test_invalid_value('counter-set', 'initial 2'); +test_invalid_value('counter-set', 'unset 2'); +test_invalid_value('counter-set', 'default 2'); +test_invalid_value('counter-set', 'revert 2'); +test_invalid_value('counter-set', 'revert-layer 2'); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/css-lists/parsing/counter-set-valid.html b/testing/web-platform/tests/css/css-lists/parsing/counter-set-valid.html new file mode 100644 index 0000000000..3a4a16af92 --- /dev/null +++ b/testing/web-platform/tests/css/css-lists/parsing/counter-set-valid.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Lists: parsing counter-set with valid values</title> +<link rel="help" href="https://drafts.csswg.org/css-lists-3/#propdef-counter-set"> +<meta name="assert" content="counter-set supports the full grammar '[ <counter-name> <integer>? ]+ | none'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value('counter-set', 'none'); +test_valid_value('counter-set', 'chapter', 'chapter 0'); +test_valid_value('counter-set', 'section -1'); +test_valid_value('counter-set', 'first -1 second third 99', 'first -1 second 0 third 99'); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/css-lists/parsing/list-style-computed.sub.html b/testing/web-platform/tests/css/css-lists/parsing/list-style-computed.sub.html new file mode 100644 index 0000000000..f86915831e --- /dev/null +++ b/testing/web-platform/tests/css/css-lists/parsing/list-style-computed.sub.html @@ -0,0 +1,24 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Lists: getComputedStyle().listStyle</title> +<link rel="help" href="https://drafts.csswg.org/css-lists-3/#propdef-list-style"> +<meta name="assert" content="list-style computed value is as specified."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/computed-testcommon.js"></script> +</head> +<body> +<div id="target"></div> +<script> +test_computed_value('list-style', 'outside none none', 'none'); + +test_computed_value('list-style', 'inside none disc', 'inside'); +test_computed_value('list-style', 'outside url("https://{{host}}/") disc', 'url("https://{{host}}/")'); +test_computed_value('list-style', 'outside none square', 'square'); + +test_computed_value('list-style', 'inside url("https://{{host}}/") square'); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/css-lists/parsing/list-style-image-computed.sub.html b/testing/web-platform/tests/css/css-lists/parsing/list-style-image-computed.sub.html new file mode 100644 index 0000000000..a39b0f0912 --- /dev/null +++ b/testing/web-platform/tests/css/css-lists/parsing/list-style-image-computed.sub.html @@ -0,0 +1,32 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Lists: getComputedStyle().listStyleImage</title> +<link rel="help" href="https://drafts.csswg.org/css-lists-3/#propdef-list-style-image"> +<meta name="assert" content="list-style-image computed value is as specified."> +<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; + } +</style> +</head> +<body> +<div id="target"></div> +<script> +test_computed_value('list-style-image', 'none'); + +test_computed_value('list-style-image', 'url("https://{{host}}/")'); + +test_computed_value('list-style-image', 'linear-gradient(to left bottom, red , blue )', 'linear-gradient(to left bottom, rgb(255, 0, 0), rgb(0, 0, 255))'); + +test_computed_value('list-style-image', 'radial-gradient(10px at 20px 30px, rgb(255, 0, 0), rgb(0, 0, 255))'); +test_computed_value('list-style-image', 'radial-gradient(circle calc(-0.5em + 10px) at calc(-1em + 10px) calc(-2em + 10px), rgb(255, 0, 0), rgb(0, 0, 255))', 'radial-gradient(0px at -30px -70px, rgb(255, 0, 0), rgb(0, 0, 255))'); +test_computed_value('list-style-image', 'radial-gradient(ellipse calc(-0.5em + 10px) calc(0.5em + 10px) at 20px 30px, rgb(255, 0, 0), rgb(0, 0, 255))', 'radial-gradient(0px 30px at 20px 30px, rgb(255, 0, 0), rgb(0, 0, 255))'); +test_computed_value('list-style-image', 'radial-gradient(ellipse calc(0.5em + 10px) calc(-0.5em + 10px) at 20px 30px, rgb(255, 0, 0), rgb(0, 0, 255))', 'radial-gradient(30px 0px at 20px 30px, rgb(255, 0, 0), rgb(0, 0, 255))'); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/css-lists/parsing/list-style-image-invalid.html b/testing/web-platform/tests/css/css-lists/parsing/list-style-image-invalid.html new file mode 100644 index 0000000000..ea8bb8ca96 --- /dev/null +++ b/testing/web-platform/tests/css/css-lists/parsing/list-style-image-invalid.html @@ -0,0 +1,18 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Lists: parsing list-style-image with invalid values</title> +<link rel="help" href="https://drafts.csswg.org/css-lists-3/#propdef-list-style-image"> +<meta name="assert" content="list-style-image supports only the grammar '<image> | none'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value('list-style-image', 'auto'); +test_invalid_value('list-style-image', 'url("https://example.com/") none'); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/css-lists/parsing/list-style-image-valid.html b/testing/web-platform/tests/css/css-lists/parsing/list-style-image-valid.html new file mode 100644 index 0000000000..7b7d43e4bf --- /dev/null +++ b/testing/web-platform/tests/css/css-lists/parsing/list-style-image-valid.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Lists: parsing list-style-image with valid values</title> +<link rel="help" href="https://drafts.csswg.org/css-lists-3/#propdef-list-style-image"> +<meta name="assert" content="list-style-image supports the full grammar '<image> | none'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value('list-style-image', 'none'); + +test_valid_value('list-style-image', 'url("https://example.com/")'); + +test_valid_value('list-style-image', 'linear-gradient(to left bottom, red, blue)'); + +// TODO: Add cross-fade tests when browsers add support. +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/css-lists/parsing/list-style-invalid.html b/testing/web-platform/tests/css/css-lists/parsing/list-style-invalid.html new file mode 100644 index 0000000000..0dda1630ad --- /dev/null +++ b/testing/web-platform/tests/css/css-lists/parsing/list-style-invalid.html @@ -0,0 +1,18 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Lists: parsing list-style with invalid values</title> +<link rel="help" href="https://drafts.csswg.org/css-lists-3/#propdef-list-style"> +<meta name="assert" content="list-style supports only the grammar '<'list-style-position'> || <'list-style-image'> || <'list-style-type'>'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value('list-style', 'inside disc outside'); +test_invalid_value('list-style', 'square circle'); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/css-lists/parsing/list-style-position-computed.html b/testing/web-platform/tests/css/css-lists/parsing/list-style-position-computed.html new file mode 100644 index 0000000000..07d9161fc0 --- /dev/null +++ b/testing/web-platform/tests/css/css-lists/parsing/list-style-position-computed.html @@ -0,0 +1,19 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Lists: getComputedStyle().listStylePosition</title> +<link rel="help" href="https://drafts.csswg.org/css-lists-3/#propdef-list-style-position"> +<meta name="assert" content="list-style-position computed value is as specified."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/computed-testcommon.js"></script> +</head> +<body> +<div id="target"></div> +<script> +test_computed_value('list-style-position', 'inside'); +test_computed_value('list-style-position', 'outside'); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/css-lists/parsing/list-style-position-invalid.html b/testing/web-platform/tests/css/css-lists/parsing/list-style-position-invalid.html new file mode 100644 index 0000000000..3cf596135a --- /dev/null +++ b/testing/web-platform/tests/css/css-lists/parsing/list-style-position-invalid.html @@ -0,0 +1,18 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Lists: parsing list-style-position with invalid values</title> +<link rel="help" href="https://drafts.csswg.org/css-lists-3/#propdef-list-style-position"> +<meta name="assert" content="list-style-position supports only the grammar 'inside | outside'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value('list-style-position', 'auto'); +test_invalid_value('list-style-position', 'inside outside'); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/css-lists/parsing/list-style-position-valid.html b/testing/web-platform/tests/css/css-lists/parsing/list-style-position-valid.html new file mode 100644 index 0000000000..ff0c8366bb --- /dev/null +++ b/testing/web-platform/tests/css/css-lists/parsing/list-style-position-valid.html @@ -0,0 +1,18 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Lists: parsing list-style-position with valid values</title> +<link rel="help" href="https://drafts.csswg.org/css-lists-3/#propdef-list-style-position"> +<meta name="assert" content="list-style-position supports the full grammar 'inside | outside'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value('list-style-position', 'inside'); +test_valid_value('list-style-position', 'outside'); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/css-lists/parsing/list-style-shorthand.sub.html b/testing/web-platform/tests/css/css-lists/parsing/list-style-shorthand.sub.html new file mode 100644 index 0000000000..140df208aa --- /dev/null +++ b/testing/web-platform/tests/css/css-lists/parsing/list-style-shorthand.sub.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Lists: list-style sets longhands</title> +<link rel="help" href="https://drafts.csswg.org/css-lists-3/#propdef-list-style"> +<meta name="assert" content="list-style supports the full grammar '<'list-style-position'> || <'list-style-image'> || <'list-style-type'>'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/shorthand-testcommon.js"></script> +</head> +<body> +<script> +test_shorthand_value('list-style', 'square url("https://{{host}}/") inside', { + 'list-style-position': 'inside', + 'list-style-image': 'url("https://{{host}}/")', + 'list-style-type': 'square' +}); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/css-lists/parsing/list-style-type-computed.html b/testing/web-platform/tests/css/css-lists/parsing/list-style-type-computed.html new file mode 100644 index 0000000000..1f25e52001 --- /dev/null +++ b/testing/web-platform/tests/css/css-lists/parsing/list-style-type-computed.html @@ -0,0 +1,52 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Lists: getComputedStyle().listStyleType</title> +<link rel="help" href="https://drafts.csswg.org/css-lists-3/#propdef-list-style-type"> +<meta name="assert" content="list-style-type computed value is as specified."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/computed-testcommon.js"></script> +</head> +<body> +<div id="target"></div> +<script> +test_computed_value('list-style-type', 'none'); + +test_computed_value('list-style-type', 'disc'); +test_computed_value('list-style-type', 'circle'); +test_computed_value('list-style-type', 'square'); +test_computed_value('list-style-type', 'disclosure-open'); +test_computed_value('list-style-type', 'disclosure-closed'); +test_computed_value('list-style-type', 'decimal'); +test_computed_value('list-style-type', 'decimal-leading-zero'); +test_computed_value('list-style-type', 'lower-roman'); +test_computed_value('list-style-type', 'upper-roman'); +test_computed_value('list-style-type', 'lower-greek'); +test_computed_value('list-style-type', 'lower-latin'); +test_computed_value('list-style-type', 'upper-latin'); +test_computed_value('list-style-type', 'armenian'); +test_computed_value('list-style-type', 'georgian'); +test_computed_value('list-style-type', 'lower-alpha'); +test_computed_value('list-style-type', 'upper-alpha'); + +// <string> +test_computed_value('list-style-type', '"marker string"'); +test_computed_value('list-style-type', '"Note: "'); + +// <counter-style> = <counter-style-name> | symbols(); +test_computed_value('list-style-type', 'counter-Style-Name'); +test_computed_value('list-style-type', 'CounterStyleName'); + +// symbols() = symbols( <symbols-type>? [ <string> | <image> ]+ ); +// <symbols-type> = cyclic | numeric | alphabetic | symbolic | fixed; +test_computed_value('list-style-type', 'symbols(cyclic "string")'); +test_computed_value('list-style-type', 'symbols(cyclic "○" "●")'); +test_computed_value('list-style-type', 'symbols(fixed "1")'); +test_computed_value('list-style-type', 'symbols("string")'); +test_computed_value('list-style-type', 'symbols(alphabetic "first" "second")'); +test_computed_value('list-style-type', 'symbols(numeric "first" "second")'); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/css-lists/parsing/list-style-type-invalid.html b/testing/web-platform/tests/css/css-lists/parsing/list-style-type-invalid.html new file mode 100644 index 0000000000..c49f61ca70 --- /dev/null +++ b/testing/web-platform/tests/css/css-lists/parsing/list-style-type-invalid.html @@ -0,0 +1,28 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Lists: parsing list-style-type with invalid values</title> +<link rel="help" href="https://drafts.csswg.org/css-lists-3/#propdef-list-style-type"> +<meta name="assert" content="list-style-type supports only the grammar '<counter-style> | <string> | none'."> +<meta name="assert" content="If the system is alphabetic or numeric, there must be at least two <string>s or <image>s, or else the function is invalid."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value('list-style-type', '"marker string" none'); +test_invalid_value('list-style-type', 'counter-Style-Name "marker string"'); +test_invalid_value('list-style-type', 'symbols(cyclic)'); +test_invalid_value('list-style-type', 'symbols(numeric "n")'); +test_invalid_value('list-style-type', 'symbols(alphabetic "a")'); +test_invalid_value('list-style-type', 'symbols("s" symbolic)'); +test_invalid_value('list-style-type', 'symbols(fixed url("https://example.com"))'); + +// Example in an early spec. +test_invalid_value('list-style-type', "symbols(repeating '○' '●')"); + +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/css-lists/parsing/list-style-type-valid.html b/testing/web-platform/tests/css/css-lists/parsing/list-style-type-valid.html new file mode 100644 index 0000000000..dde0bee8dd --- /dev/null +++ b/testing/web-platform/tests/css/css-lists/parsing/list-style-type-valid.html @@ -0,0 +1,52 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Lists: parsing list-style-type with valid values</title> +<link rel="help" href="https://drafts.csswg.org/css-lists-3/#propdef-list-style-type"> +<link rel="help" href="https://www.w3.org/TR/CSS2/generate.html#propdef-list-style-type"> +<meta name="assert" content="list-style-type supports the full grammar '<counter-style> | <string> | none'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value('list-style-type', 'none'); + +test_valid_value('list-style-type', 'disc'); +test_valid_value('list-style-type', 'circle'); +test_valid_value('list-style-type', 'square'); +test_valid_value('list-style-type', 'disclosure-open'); +test_valid_value('list-style-type', 'disclosure-closed'); +test_valid_value('list-style-type', 'decimal'); +test_valid_value('list-style-type', 'decimal-leading-zero'); +test_valid_value('list-style-type', 'lower-roman'); +test_valid_value('list-style-type', 'upper-roman'); +test_valid_value('list-style-type', 'lower-greek'); +test_valid_value('list-style-type', 'lower-latin'); +test_valid_value('list-style-type', 'upper-latin'); +test_valid_value('list-style-type', 'armenian'); +test_valid_value('list-style-type', 'georgian'); +test_valid_value('list-style-type', 'lower-alpha'); +test_valid_value('list-style-type', 'upper-alpha'); + +// <string> +test_valid_value('list-style-type', '"marker string"'); +test_valid_value('list-style-type', '"Note: "'); + +// <counter-style> = <counter-style-name> | symbols(); +test_valid_value('list-style-type', 'counter-Style-Name'); +test_valid_value('list-style-type', 'CounterStyleName'); + +// symbols() = symbols( <symbols-type>? [ <string> | <image> ]+ ); +// <symbols-type> = cyclic | numeric | alphabetic | symbolic | fixed; +test_valid_value('list-style-type', 'symbols(cyclic "string")'); +test_valid_value('list-style-type', 'symbols(cyclic "○" "●")'); +test_valid_value('list-style-type', 'symbols(fixed "1")'); +test_valid_value('list-style-type', 'symbols(symbolic "string")', 'symbols("string")'); +test_valid_value('list-style-type', 'symbols(alphabetic "first" "second")'); +test_valid_value('list-style-type', 'symbols(numeric "first" "second")'); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/css-lists/parsing/list-style-valid.html b/testing/web-platform/tests/css/css-lists/parsing/list-style-valid.html new file mode 100644 index 0000000000..55124521f8 --- /dev/null +++ b/testing/web-platform/tests/css/css-lists/parsing/list-style-valid.html @@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Lists: parsing list-style with valid values</title> +<link rel="help" href="https://drafts.csswg.org/css-lists-3/#propdef-list-style"> +<meta name="assert" content="list-style supports the full grammar '<'list-style-position'> || <'list-style-image'> || <'list-style-type'>'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value('list-style', 'none'); +test_valid_value('list-style', 'disc outside none', 'outside'); + +test_valid_value('list-style', 'inside'); +test_valid_value('list-style', 'inside disc', 'inside'); +test_valid_value('list-style', 'inside none'); +test_valid_value('list-style', 'inside none none', 'inside none'); +test_valid_value('list-style', 'none inside none', 'inside none'); +test_valid_value('list-style', 'none none inside', 'inside none'); +test_valid_value('list-style', 'none inside', 'inside none'); +test_valid_value('list-style', 'url("https://example.com/")'); +test_valid_value('list-style', 'none url("https://example.com/")', 'url("https://example.com/") none'); +test_valid_value('list-style', 'url("https://example.com/") disc', 'url("https://example.com/")'); +test_valid_value('list-style', 'url("https://example.com/") disc outside', 'url("https://example.com/")'); +test_valid_value('list-style', 'square'); + +test_valid_value('list-style', 'square url("https://example.com/") inside', 'inside url("https://example.com/") square'); +test_valid_value('list-style', 'square linear-gradient(red,blue) inside', 'inside linear-gradient(red, blue) square'); +test_valid_value('list-style', 'disc radial-gradient(circle, #006, #00a 90%, #0000af 100%,white 100%) inside', 'inside radial-gradient(circle, rgb(0, 0, 102), rgb(0, 0, 170) 90%, rgb(0, 0, 175) 100%, white 100%)'); +</script> +</body> +</html> |