mirror of
https://github.com/servo/servo.git
synced 2025-08-14 09:55:35 +01:00
Update web-platform-tests to revision 0f31ab1b094596062154092307bb9ff8e6122533
This commit is contained in:
parent
96ad6710b1
commit
372e03fe64
32 changed files with 992 additions and 222 deletions
|
@ -0,0 +1,42 @@
|
|||
<!DOCTYPE html>
|
||||
<script src='/resources/testharness.js'></script>
|
||||
<script src='/resources/testharnessreport.js'></script>
|
||||
<script src='/resources/check-layout-th.js'></script>
|
||||
<link rel="author" title="David Grogan" href="dgrogan@chromium.org">
|
||||
<link rel="help" href="https://www.w3.org/TR/css-flexbox-1/#valdef-flex-basis-auto">
|
||||
<meta name="flags" content="" />
|
||||
<meta name="assert" content="flex-basis:auto on orthogonal item in horizontal column flexbox is calculated correctly" />
|
||||
|
||||
<style>
|
||||
x-word-h {
|
||||
display: inline-block;
|
||||
height: 10px;
|
||||
width: 20px;
|
||||
background: blue;
|
||||
}
|
||||
|
||||
x-word-v {
|
||||
display: inline-block;
|
||||
height: 20px;
|
||||
width: 10px;
|
||||
background: blue;
|
||||
}
|
||||
|
||||
* {
|
||||
/* This is for easier manual calculations, not necessary to demonstrate behavior. */
|
||||
line-height: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id=flexbox style="width:150px; background:green; height:400px; display:flex; flex-direction:column">
|
||||
<div style="writing-mode: vertical-rl;background:orange; flex:1 1 auto" data-expected-height=225>
|
||||
<x-word-v></x-word-v><x-word-v></x-word-v><x-word-v></x-word-v>
|
||||
</div>
|
||||
<div style="background:lightblue; flex: 1 1 auto">
|
||||
<x-word-h></x-word-h><x-word-h></x-word-h><x-word-h></x-word-h>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
checkLayout('#flexbox');
|
||||
</script>
|
|
@ -2,48 +2,36 @@
|
|||
<link rel="help" href="https://drafts.csswg.org/mediaqueries-5/#prefers-color-scheme" />
|
||||
<script type="text/javascript" src="/resources/testharness.js"></script>
|
||||
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
|
||||
<style id="testStyle"> </style>
|
||||
|
||||
<script type="text/javascript" src="resources/matchmedia-utils.js"></script>
|
||||
<script>
|
||||
var sheet = testStyle.sheet;
|
||||
query_should_be_css_parseable("(prefers-color-scheme)");
|
||||
query_should_be_css_parseable("(prefers-color-scheme: no-preference)");
|
||||
query_should_be_css_parseable("(prefers-color-scheme: light)");
|
||||
query_should_be_css_parseable("(prefers-color-scheme: dark)");
|
||||
|
||||
function query_is_parseable(query) {
|
||||
try {
|
||||
sheet.insertRule("@media " + query + "{}", 0);
|
||||
return sheet.cssRules.length == 1 &&
|
||||
sheet.cssRules[0].media.mediaText != "not all";
|
||||
} finally {
|
||||
while (sheet.cssRules.length)
|
||||
sheet.deleteRule(0);
|
||||
}
|
||||
}
|
||||
query_should_not_be_css_parseable("(prefers-color-scheme: 0)");
|
||||
query_should_not_be_css_parseable("(prefers-color-scheme: none)");
|
||||
query_should_not_be_css_parseable("(prefers-color-scheme: 10px)");
|
||||
query_should_not_be_css_parseable("(prefers-color-scheme: dark 0)");
|
||||
query_should_not_be_css_parseable("(prefers-color-scheme: dark light)");
|
||||
query_should_not_be_css_parseable("(prefers-color-scheme: light/dark)");
|
||||
|
||||
function query_should_be_parseable(query) {
|
||||
test(() => {
|
||||
assert_true(query_is_parseable(query));
|
||||
}, "Should be parseable: '" + query + "'");
|
||||
}
|
||||
query_should_be_js_parseable("(prefers-color-scheme)");
|
||||
query_should_be_js_parseable("(prefers-color-scheme: no-preference)");
|
||||
query_should_be_js_parseable("(prefers-color-scheme: light)");
|
||||
query_should_be_js_parseable("(prefers-color-scheme: dark)");
|
||||
|
||||
function query_should_not_be_parseable(query) {
|
||||
test(() => {
|
||||
assert_false(query_is_parseable(query));
|
||||
}, "Should not be parseable: '" + query + "'");
|
||||
}
|
||||
query_should_not_be_js_parseable("(prefers-color-scheme: 0)");
|
||||
query_should_not_be_js_parseable("(prefers-color-scheme: none)");
|
||||
query_should_not_be_js_parseable("(prefers-color-scheme: 10px)");
|
||||
query_should_not_be_js_parseable("(prefers-color-scheme: dark 0)");
|
||||
query_should_not_be_js_parseable("(prefers-color-scheme: dark light)");
|
||||
query_should_not_be_js_parseable("(prefers-color-scheme: light/dark)");
|
||||
|
||||
query_should_be_parseable("(prefers-color-scheme)");
|
||||
query_should_be_parseable("(prefers-color-scheme: no-preference)");
|
||||
query_should_be_parseable("(prefers-color-scheme: light)");
|
||||
query_should_be_parseable("(prefers-color-scheme: dark)");
|
||||
|
||||
query_should_not_be_parseable("(prefers-color-scheme: 0)");
|
||||
query_should_not_be_parseable("(prefers-color-scheme: none)");
|
||||
query_should_not_be_parseable("(prefers-color-scheme: 10px)");
|
||||
query_should_not_be_parseable("(prefers-color-scheme: dark 0)");
|
||||
query_should_not_be_parseable("(prefers-color-scheme: dark light)");
|
||||
query_should_not_be_parseable("(prefers-color-scheme: light/dark)");
|
||||
|
||||
test(() => {
|
||||
let booleanContext = window.matchMedia("(prefers-color-scheme)");
|
||||
let noPreference = window.matchMedia("(prefers-color-scheme: no-preference)");
|
||||
assert_equals(booleanContext.matches, !noPreference.matches);
|
||||
}, "Check that no-preference evaluates to false in the boolean context");
|
||||
test(() => {
|
||||
let booleanContext = window.matchMedia("(prefers-color-scheme)");
|
||||
let noPreference = window.matchMedia("(prefers-color-scheme: no-preference)");
|
||||
assert_equals(booleanContext.matches, !noPreference.matches);
|
||||
}, "Check that no-preference evaluates to false in the boolean context");
|
||||
</script>
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://drafts.csswg.org/mediaqueries-5/#prefers-reduced-motion" />
|
||||
<script type="text/javascript" src="/resources/testharness.js"></script>
|
||||
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
|
||||
|
||||
<script type="text/javascript" src="resources/matchmedia-utils.js"></script>
|
||||
<script>
|
||||
query_should_be_css_parseable("(prefers-reduced-motion)");
|
||||
query_should_be_css_parseable("(prefers-reduced-motion: no-preference)");
|
||||
query_should_be_css_parseable("(prefers-reduced-motion: reduce)");
|
||||
|
||||
query_should_not_be_css_parseable("(prefers-reduced-motion: 0)");
|
||||
query_should_not_be_css_parseable("(prefers-reduced-motion: none)");
|
||||
query_should_not_be_css_parseable("(prefers-reduced-motion: 10px)");
|
||||
query_should_not_be_css_parseable("(prefers-reduced-motion: no-preference reduce)");
|
||||
query_should_not_be_css_parseable("(prefers-reduced-motion: reduced)");
|
||||
query_should_not_be_css_parseable("(prefers-reduced-motion: no-preference/reduce)");
|
||||
|
||||
query_should_be_js_parseable("(prefers-reduced-motion)");
|
||||
query_should_be_js_parseable("(prefers-reduced-motion: no-preference)");
|
||||
query_should_be_js_parseable("(prefers-reduced-motion: reduce)");
|
||||
|
||||
query_should_not_be_js_parseable("(prefers-reduced-motion: 0)");
|
||||
query_should_not_be_js_parseable("(prefers-reduced-motion: none)");
|
||||
query_should_not_be_js_parseable("(prefers-reduced-motion: 10px)");
|
||||
query_should_not_be_js_parseable("(prefers-reduced-motion: no-preference reduce)");
|
||||
query_should_not_be_js_parseable("(prefers-reduced-motion: reduced)");
|
||||
query_should_not_be_js_parseable("(prefers-reduced-motion: no-preference/reduce)");
|
||||
|
||||
test(() => {
|
||||
// What this is saying is that 'no-preference' is not the default, so
|
||||
// irregardless of the current OS settings, (prefers-reduced-motion).matches
|
||||
// should not be equivalent to (prefers-reduced-motion: no-preference).matches.
|
||||
let booleanContext = window.matchMedia("(prefers-reduced-motion)");
|
||||
let noPreference = window.matchMedia("(prefers-reduced-motion: no-preference)");
|
||||
assert_equals(booleanContext.matches, !noPreference.matches);
|
||||
}, "Check that no-preference evaluates to false in the boolean context");
|
||||
</script>
|
|
@ -0,0 +1,49 @@
|
|||
'use strict';
|
||||
|
||||
function query_is_css_parseable(query) {
|
||||
const style = document.createElement('style');
|
||||
style.type = 'text/css';
|
||||
document.head.appendChild(style);
|
||||
|
||||
const sheet = style.sheet;
|
||||
try {
|
||||
sheet.insertRule("@media " + query + "{}", 0);
|
||||
return sheet.cssRules.length == 1 &&
|
||||
sheet.cssRules[0].media.mediaText != "not all";
|
||||
} finally {
|
||||
while (sheet.cssRules.length)
|
||||
sheet.deleteRule(0);
|
||||
style.remove();
|
||||
}
|
||||
}
|
||||
|
||||
function query_should_be_css_parseable(query) {
|
||||
test(() => {
|
||||
assert_true(query_is_css_parseable(query));
|
||||
}, "Should be parseable in a CSS stylesheet: '" + query + "'");
|
||||
}
|
||||
|
||||
function query_should_not_be_css_parseable(query) {
|
||||
test(() => {
|
||||
assert_false(query_is_css_parseable(query));
|
||||
}, "Should not be parseable in a CSS stylesheet: '" + query + "'");
|
||||
}
|
||||
|
||||
function query_is_js_parseable(query) {
|
||||
// We cannot rely on whether a given feature is on or off, so only check the
|
||||
// 'media' member of the result.
|
||||
const match = window.matchMedia(query);
|
||||
return match.media == query;
|
||||
}
|
||||
|
||||
function query_should_be_js_parseable(query) {
|
||||
test(() => {
|
||||
assert_true(query_is_js_parseable(query));
|
||||
}, "Should be parseable in JS: '" + query + "'");
|
||||
}
|
||||
|
||||
function query_should_not_be_js_parseable(query) {
|
||||
test(() => {
|
||||
assert_false(query_is_js_parseable(query));
|
||||
}, "Should not be parseable in JS: '" + query + "'");
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue