91 lines
2.5 KiB
HTML
91 lines
2.5 KiB
HTML
<!DOCTYPE html>
|
|
|
|
<script src="../resources/testharness.js"></script>
|
|
<script src="../resources/testharnessreport.js"></script>
|
|
|
|
<style>
|
|
div {
|
|
background-color: red;
|
|
color: text;
|
|
}
|
|
|
|
@media (prefers-color-scheme: light) {
|
|
#test1 {
|
|
background-color: lime;
|
|
}
|
|
}
|
|
|
|
@media (prefers-color-scheme: dark) {
|
|
#test1 {
|
|
background-color: blue;
|
|
}
|
|
}
|
|
|
|
@media not (prefers-color-scheme) {
|
|
/* This is valid, but should not apply for us since there is no option for no user preference. */
|
|
#test1 {
|
|
background-color: cyan;
|
|
}
|
|
}
|
|
|
|
@media (prefers-color-scheme: foo) {
|
|
/* This is invalid and should not apply. */
|
|
#test1 {
|
|
background-color: yellow;
|
|
}
|
|
}
|
|
|
|
@media (prefers-color-scheme) {
|
|
/* This is valid and should always apply for us, since there is always a user preference currently. */
|
|
#test2 {
|
|
background-color: lime;
|
|
}
|
|
}
|
|
</style>
|
|
|
|
<div id="test1"></div>
|
|
<div id="test2"></div>
|
|
|
|
<script>
|
|
function test_prop(id, prop, expected) {
|
|
assert_equals(window.getComputedStyle(document.getElementById(id)).getPropertyValue(prop).trim(), expected);
|
|
}
|
|
|
|
test(function() {
|
|
// Styled background-color in media query should be lime green.
|
|
test_prop("test1", "background-color", "rgb(0, 255, 0)");
|
|
|
|
// The semantic text color should be black.
|
|
test_prop("test1", "color", "rgb(0, 0, 0)");
|
|
}, "Element colors are correct in light color scheme");
|
|
|
|
test(function() {
|
|
// Styled background-color in media query should be lime green.
|
|
test_prop("test2", "background-color", "rgb(0, 255, 0)");
|
|
|
|
// The semantic text color should be black.
|
|
test_prop("test2", "color", "rgb(0, 0, 0)");
|
|
}, "Element colors are correct in light color scheme with boolean context query");
|
|
|
|
test(function() {
|
|
if (window.internals)
|
|
internals.settings.setUseDarkAppearance(true);
|
|
}, "Dark color scheme enabled");
|
|
|
|
test(function() {
|
|
// Styled background-color in media query should be blue.
|
|
test_prop("test1", "background-color", "rgb(0, 0, 255)");
|
|
|
|
// The semantic text color should be black, and not change.
|
|
test_prop("test1", "color", "rgb(0, 0, 0)");
|
|
}, "Element colors are correct in dark color scheme");
|
|
|
|
test(function() {
|
|
// Styled background-color in media query should be lime green.
|
|
test_prop("test2", "background-color", "rgb(0, 255, 0)");
|
|
|
|
// The semantic text color should be black.
|
|
test_prop("test2", "color", "rgb(0, 0, 0)");
|
|
}, "Element colors are correct in dark color scheme with boolean context query");
|
|
</script>
|