summaryrefslogtreecommitdiffstats
path: root/layout/base/tests/test_emulate_color_scheme.html
diff options
context:
space:
mode:
Diffstat (limited to 'layout/base/tests/test_emulate_color_scheme.html')
-rw-r--r--layout/base/tests/test_emulate_color_scheme.html40
1 files changed, 40 insertions, 0 deletions
diff --git a/layout/base/tests/test_emulate_color_scheme.html b/layout/base/tests/test_emulate_color_scheme.html
new file mode 100644
index 0000000000..dce7171584
--- /dev/null
+++ b/layout/base/tests/test_emulate_color_scheme.html
@@ -0,0 +1,40 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Emulation of color-scheme (bug 1570721)</title>
+<script src="/tests/SimpleTest/SimpleTest.js"></script>
+<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
+<style>
+@media (prefers-color-scheme: light) {
+ #test { color: rgb(0, 1, 0); }
+}
+@media (prefers-color-scheme: dark) {
+ #test { color: rgb(0, 2, 0); }
+}
+</style>
+<div id="test"></div>
+<script>
+function colorId() {
+ // Gets the middle number of the rgb(0, x, 0) color.
+ let color = getComputedStyle(document.getElementById("test")).color;
+ let id = parseInt(color.split(",")[1], 10);
+ ok(id == 1 || id == 2 || id == 3, "Bogus color?");
+ return id;
+}
+
+{
+ let bc = SpecialPowers.wrap(window).browsingContext.top;
+ ok('prefersColorSchemeOverride' in bc, "API should exist");
+ is(bc.prefersColorSchemeOverride, "none", "Override shouldn't be active.");
+
+ let originalColor = colorId();
+
+ bc.prefersColorSchemeOverride = "light";
+ is(colorId(), 1, "Light emulation works");
+
+ bc.prefersColorSchemeOverride = "dark";
+ is(colorId(), 2, "Dark emulation works");
+
+ bc.prefersColorSchemeOverride = "none";
+ is(colorId(), originalColor, "Clearing the override works");
+}
+</script>