mirror of
https://github.com/servo/servo.git
synced 2025-08-15 02:15:33 +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
|
@ -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