mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Update web-platform-tests to revision b'b728032f59a396243864b0f8584e7211e3632005'
This commit is contained in:
parent
ace9b32b1c
commit
df68c4e5d1
15632 changed files with 514865 additions and 155000 deletions
|
@ -4,7 +4,7 @@
|
|||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="support/cq-testcommon.js"></script>
|
||||
<div style="container:size; width:100px; height:100px">
|
||||
<div style="container-name:name;container-type:size; width:100px; height:100px">
|
||||
<main id=main></main>
|
||||
</div>
|
||||
<script>
|
||||
|
@ -22,122 +22,185 @@
|
|||
return style;
|
||||
}
|
||||
|
||||
function test_query_invalid(query) {
|
||||
function test_rule_valid(query) {
|
||||
test(t => {
|
||||
t.add_cleanup(cleanup_main);
|
||||
let style = set_style(`@container ${query} {}`);
|
||||
assert_equals(style.sheet.rules.length, 0);
|
||||
assert_equals(style.sheet.rules.length, 1);
|
||||
}, query);
|
||||
}
|
||||
|
||||
// Tests that 1) the query parses, and 2) is either "unknown" or not, as
|
||||
function test_condition_invalid(condition) {
|
||||
test(t => {
|
||||
t.add_cleanup(cleanup_main);
|
||||
let style = set_style(`@container name ${condition} {}`);
|
||||
assert_equals(style.sheet.rules.length, 0);
|
||||
}, condition);
|
||||
}
|
||||
|
||||
// Tests that 1) the condition parses, and 2) is either "unknown" or not, as
|
||||
// specified.
|
||||
function test_query_valid(query, unknown) {
|
||||
function test_condition_valid(condition, unknown) {
|
||||
test(t => {
|
||||
t.add_cleanup(cleanup_main);
|
||||
let style = set_style(`
|
||||
@container ${query} {}
|
||||
@container (${query} or (not ${query})) { main { --match:true; } }
|
||||
@container name ${condition} {}
|
||||
@container name (${condition}) or (not (${condition})) { main { --match:true; } }
|
||||
`);
|
||||
assert_equals(style.sheet.rules.length, 2);
|
||||
const expected = unknown ? '' : 'true';
|
||||
assert_equals(getComputedStyle(main).getPropertyValue('--match'), expected);
|
||||
}, query);
|
||||
}, condition);
|
||||
}
|
||||
|
||||
function test_query_known(query) {
|
||||
test_query_valid(query, false /* unknown */);
|
||||
function test_condition_known(condition) {
|
||||
test_condition_valid(condition, false /* unknown */);
|
||||
}
|
||||
|
||||
function test_query_unknown(query) {
|
||||
test_query_valid(query, true /* unknown */);
|
||||
function test_condition_unknown(condition) {
|
||||
test_condition_valid(condition, true /* unknown */);
|
||||
}
|
||||
|
||||
function test_container_selector_invalid(container_selector) {
|
||||
function test_container_name_invalid(container_name) {
|
||||
test(t => {
|
||||
t.add_cleanup(cleanup_main);
|
||||
let style = set_style(`@container ${container_selector} (width) {}`);
|
||||
let style = set_style(`@container ${container_name} not (width) {}`);
|
||||
assert_equals(style.sheet.rules.length, 0);
|
||||
}, `Container selector: ${container_selector}`);
|
||||
}, `Container name: ${container_name}`);
|
||||
}
|
||||
|
||||
function test_container_selector_valid(container_selector) {
|
||||
function test_container_name_valid(container_name) {
|
||||
test(t => {
|
||||
t.add_cleanup(cleanup_main);
|
||||
let style = set_style(`@container ${container_selector} (width) {}`);
|
||||
let style = set_style(`@container ${container_name} not (width) {}`);
|
||||
assert_equals(style.sheet.rules.length, 1);
|
||||
}, `Container selector: ${container_selector}`);
|
||||
}, `Container name: ${container_name}`);
|
||||
}
|
||||
|
||||
test_query_known('size(width)');
|
||||
test_query_known('size(min-width: 0px)');
|
||||
test_query_known('size(max-width: 0px)');
|
||||
test_query_known('size(height)');
|
||||
test_query_known('size(min-height: 0px)');
|
||||
test_query_known('size(max-height: 0px)');
|
||||
test_query_known('size(aspect-ratio)');
|
||||
test_query_known('size(min-aspect-ratio: 1/2)');
|
||||
test_query_known('size(max-aspect-ratio: 1/2)');
|
||||
test_query_known('size(orientation: portrait)');
|
||||
test_query_known('size(inline-size)');
|
||||
test_query_known('size(min-inline-size: 0px)');
|
||||
test_query_known('size(max-inline-size: 0px)');
|
||||
test_query_known('size(block-size)');
|
||||
test_query_known('size(min-block-size: 0px)');
|
||||
test_query_known('size(max-block-size: 0px)');
|
||||
test_condition_known('(width)');
|
||||
test_condition_known('(min-width: 0px)');
|
||||
test_condition_known('(max-width: 0px)');
|
||||
test_condition_known('(height)');
|
||||
test_condition_known('(min-height: 0px)');
|
||||
test_condition_known('(max-height: 0px)');
|
||||
test_condition_known('(aspect-ratio)');
|
||||
test_condition_known('(min-aspect-ratio: 1/2)');
|
||||
test_condition_known('(max-aspect-ratio: 1/2)');
|
||||
test_condition_known('(orientation: portrait)');
|
||||
test_condition_known('(inline-size)');
|
||||
test_condition_known('(min-inline-size: 0px)');
|
||||
test_condition_known('(max-inline-size: 0px)');
|
||||
test_condition_known('(block-size)');
|
||||
test_condition_known('(min-block-size: 0px)');
|
||||
test_condition_known('(max-block-size: 0px)');
|
||||
|
||||
test_query_known('size(width: 100px)');
|
||||
test_query_known('size((width: 100px))');
|
||||
test_query_known('size(not (width: 100px))');
|
||||
test_query_known('size((width: 100px) and (height: 100px))');
|
||||
test_query_known('size((width: 50px) or (height: 100px))');
|
||||
test_query_known('size(width < 100px)');
|
||||
test_query_known('size(100px < width)');
|
||||
test_query_known('size(100px < width < 200px)');
|
||||
test_condition_known('(width: 100px)');
|
||||
test_condition_known('((width: 100px))');
|
||||
test_condition_known('(not (width: 100px))');
|
||||
test_condition_known('((width: 100px) and (height: 100px))');
|
||||
test_condition_known('(((width: 40px) or (width: 50px)) and (height: 100px))');
|
||||
test_condition_known('((width: 100px) and ((height: 40px) or (height: 50px)))');
|
||||
test_condition_known('(((width: 40px) and (height: 50px)) or (height: 100px))');
|
||||
test_condition_known('((width: 50px) or ((width: 40px) and (height: 50px)))');
|
||||
test_condition_known('((width: 100px) and (not (height: 100px)))');
|
||||
test_condition_known('(width < 100px)');
|
||||
test_condition_known('(width <= 100px)');
|
||||
test_condition_known('(width = 100px)');
|
||||
test_condition_known('(width > 100px)');
|
||||
test_condition_known('(width >= 100px)');
|
||||
test_condition_known('(100px < width)');
|
||||
test_condition_known('(100px <= width)');
|
||||
test_condition_known('(100px = width)');
|
||||
test_condition_known('(100px > width)');
|
||||
test_condition_known('(100px >= width)');
|
||||
test_condition_known('(100px < width < 200px)');
|
||||
test_condition_known('(100px < width <= 200px)');
|
||||
test_condition_known('(100px <= width < 200px)');
|
||||
test_condition_known('(100px > width > 200px)');
|
||||
test_condition_known('(100px > width >= 200px)');
|
||||
test_condition_known('(100px >= width > 200px)');
|
||||
|
||||
test_query_unknown('foo(width)');
|
||||
test_query_unknown('size(asdf)');
|
||||
test_query_unknown('size(resolution > 100dpi)');
|
||||
test_query_unknown('size(resolution: 150dpi)');
|
||||
test_query_unknown('size(color)');
|
||||
test_query_unknown('size(min-color: 1)');
|
||||
test_query_unknown('size(color-index >= 1)');
|
||||
test_query_unknown('(color-index >= 1)');
|
||||
test_query_unknown('size(grid)');
|
||||
test_query_unknown('(grid)');
|
||||
test_condition_known('(width: calc(10px))');
|
||||
test_condition_known('(width: calc(10em))');
|
||||
test_condition_known('(width: calc(10px + 10em))');
|
||||
test_condition_known('(width < calc(10px + 10em))');
|
||||
test_condition_known('(width < max(10px, 10em))');
|
||||
test_condition_known('(calc(10px + 10em) < width)');
|
||||
test_condition_known('(calc(10px + 10em) < width < max(30px, 30em))');
|
||||
test_condition_known('(width: 100px) and (height: 100px)');
|
||||
test_condition_known('(width: 100px) or (height: 100px)');
|
||||
test_condition_known('not (width: 100px)');
|
||||
|
||||
test_query_invalid('screen');
|
||||
test_query_invalid('print');
|
||||
test_query_invalid('not print');
|
||||
test_query_invalid('only print');
|
||||
test_query_invalid('screen and (width: 100px)');
|
||||
test_query_invalid('screen or (width: 100px)');
|
||||
test_query_invalid('not screen and (width: 100px)');
|
||||
test_query_invalid('not screen or (width: 100px)');
|
||||
test_query_invalid('(width: 100px), (height: 100px)');
|
||||
test_condition_unknown('foo(width)');
|
||||
test_condition_unknown('size(width)');
|
||||
test_condition_unknown('(asdf)');
|
||||
test_condition_unknown('(resolution > 100dpi)');
|
||||
test_condition_unknown('(resolution: 150dpi)');
|
||||
test_condition_unknown('(color)');
|
||||
test_condition_unknown('(min-color: 1)');
|
||||
test_condition_unknown('(color-index >= 1)');
|
||||
test_condition_unknown('size(grid)');
|
||||
test_condition_unknown('(grid)');
|
||||
test_condition_unknown('(width == 100px)');
|
||||
test_condition_unknown('(100px == width)');
|
||||
test_condition_unknown('(100px = width = 200px)');
|
||||
test_condition_unknown('(100px < width > 200px)');
|
||||
test_condition_unknown('(100px <= width >= 200px)');
|
||||
test_condition_unknown('(100px <= width > 200px)');
|
||||
test_condition_unknown('(100px < width >= 200px)');
|
||||
test_condition_unknown('(100px : width : 200px)');
|
||||
|
||||
test_container_selector_valid(' foo');
|
||||
test_container_selector_valid(' foo ');
|
||||
test_container_selector_valid('name(foo)');
|
||||
test_container_selector_valid('name( foo )');
|
||||
test_container_selector_valid('type(size)');
|
||||
test_container_selector_valid('type( size )');
|
||||
test_container_selector_valid('type(inline-size)');
|
||||
test_container_selector_valid('type(block-size)');
|
||||
test_container_selector_valid('name(bar) type(block-size)');
|
||||
test_container_selector_valid('type(block-size) name(bar)');
|
||||
test_condition_invalid('screen');
|
||||
test_condition_invalid('print');
|
||||
test_condition_invalid('not print');
|
||||
test_condition_invalid('only print');
|
||||
test_condition_invalid('screen and (width: 100px)');
|
||||
test_condition_invalid('screen or (width: 100px)');
|
||||
test_condition_invalid('not screen and (width: 100px)');
|
||||
test_condition_invalid('not screen or (width: 100px)');
|
||||
test_condition_invalid('(width: 100px), (height: 100px)');
|
||||
test_condition_invalid('foo (width: 100px)');
|
||||
|
||||
test_container_selector_invalid('foo foo');
|
||||
test_container_selector_invalid('1px');
|
||||
test_container_selector_invalid('50gil');
|
||||
test_container_selector_invalid('name(1px)');
|
||||
test_container_selector_invalid('type(1px)');
|
||||
test_container_selector_invalid('type(red)');
|
||||
test_container_selector_invalid('type(size) type(size)');
|
||||
test_container_selector_invalid('type(inline-size) type(block-size)');
|
||||
test_container_selector_invalid('name(foo) name(bar)');
|
||||
test_container_selector_invalid('type(inline-size) name(foo) type(block-size)');
|
||||
test_container_selector_invalid('name(foo) type(size) name(bar)');
|
||||
test_container_selector_invalid('name(type(size))');
|
||||
test_container_selector_invalid('type(name(bar))');
|
||||
test_rule_valid('name not (width <= 500px)');
|
||||
test_rule_valid('not (width <= 500px)');
|
||||
|
||||
test_container_name_valid('foo');
|
||||
test_container_name_valid(' foo');
|
||||
test_container_name_valid(' foo ');
|
||||
test_container_name_valid('normal');
|
||||
test_container_name_valid('Normal');
|
||||
test_container_name_valid('auto');
|
||||
test_container_name_valid('Auto');
|
||||
|
||||
test_container_name_invalid('foo foo');
|
||||
test_container_name_invalid('1px');
|
||||
test_container_name_invalid('50gil');
|
||||
test_container_name_invalid('name(foo)');
|
||||
test_container_name_invalid('type(inline-size)');
|
||||
test_container_name_invalid('"foo"');
|
||||
test_container_name_invalid('"inherit"');
|
||||
test_container_name_invalid('inherit');
|
||||
test_container_name_invalid('INITIAL');
|
||||
test_container_name_invalid('Unset');
|
||||
test_container_name_invalid('deFAULT');
|
||||
test_container_name_invalid('none');
|
||||
test_container_name_invalid('None');
|
||||
test_container_name_invalid('and');
|
||||
test_container_name_invalid('or');
|
||||
test_container_name_invalid('not');
|
||||
test_container_name_invalid('And');
|
||||
test_container_name_invalid('oR');
|
||||
test_container_name_invalid('nOt');
|
||||
|
||||
test_condition_known('style(--my-prop: foo)');
|
||||
test_condition_known('style(--my-prop: foo - bar ())');
|
||||
test_condition_known('style(not ((--foo: calc(10px + 2em)) and ((--foo: url(x)))))');
|
||||
test_condition_known('style((--foo: bar) or (--bar: 10px))');
|
||||
test_condition_known('style(--my-prop:)');
|
||||
test_condition_known('style(--my-prop: )');
|
||||
test_condition_known('style(--foo: bar !important)');
|
||||
|
||||
test_condition_unknown('style(--foo: bar;)');
|
||||
test_condition_unknown('style(--foo)');
|
||||
test_condition_unknown('style(style(--foo: bar))');
|
||||
</script>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue