File: preferences-reducedData.tentative.https.html

package info (click to toggle)
firefox 145.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,653,344 kB
  • sloc: cpp: 7,594,932; javascript: 6,459,612; ansic: 3,752,905; python: 1,403,433; xml: 629,811; asm: 438,677; java: 186,421; sh: 67,287; makefile: 19,169; objc: 13,086; perl: 12,982; yacc: 4,583; cs: 3,846; pascal: 3,448; lex: 1,720; ruby: 1,003; exp: 762; php: 436; lisp: 258; awk: 247; sql: 66; sed: 54; csh: 10
file content (115 lines) | stat: -rw-r--r-- 6,903 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>WebPreferences Test: reducedData attribute tests</title>
    <link rel="author" title="Luke Warlow" href="mailto:lwarlow@igalia.com" />
    <link rel="help" href="https://drafts.csswg.org/mediaqueries-5/#auto-pref%E2%91%A0" />
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <script src=./resources/preferences-helper.js></script>
  </head>
  <body>
    <script>
      test(() => {
        assert_true('preferences' in navigator, 'navigator.preferences defined');
        assert_true('reducedData' in navigator.preferences, 'navigator.preferences.reducedData defined');
      }, "navigator.preferences.reducedData supported");
      test(() => {
        assert_true('override' in navigator.preferences.reducedData, 'navigator.preferences.reducedData.override defined');
        assert_equals(navigator.preferences.reducedData.override, null);
      }, "navigator.preferences.reducedData.override supported");
      test(() => {
        assert_true('value' in navigator.preferences.reducedData, 'navigator.preferences.reducedData.value defined');
        assert_equals(navigator.preferences.reducedData.value, 'no-preference');
      }, "navigator.preferences.reducedData.value supported");
      test(() => {
        assert_true('validValues' in navigator.preferences.reducedData, 'navigator.preferences.reducedData.validValues defined');
        assert_true(navigator.preferences.reducedData.validValues.includes('reduce'), 'navigator.preferences.reducedData.validValues includes "reduce"');
        assert_true(navigator.preferences.reducedData.validValues.includes('no-preference'), 'navigator.preferences.reducedData.validValues includes "no-preference"');
      }, "navigator.preferences.reducedData.validValues supported");
      promise_test((t) => {
        assert_true('requestOverride' in navigator.preferences.reducedData, 'navigator.preferences.reducedData.requestOverride() defined');
        return navigator.preferences.reducedData.requestOverride('this-is-an-invalid-value')
          .then(() => {
            assert_not_reached('requestOverride with invalid value should not resolve');
          })
          .catch((e) => {
            assert_true(e instanceof DOMException);
            assert_equals(navigator.preferences.reducedData.override, null);
            t.done();
          });
      }, "navigator.preferences.reducedData.requestOverride() with invalid value throws");
      promise_test(async (t) => {
        assert_true('clearOverride' in navigator.preferences.reducedData, 'navigator.preferences.reducedData.clearOverride() defined');
        await navigator.preferences.reducedData.requestOverride('reduce');
        assert_equals(navigator.preferences.reducedData.override, 'reduce');
        navigator.preferences.reducedData.clearOverride();
        assert_equals(navigator.preferences.reducedData.override, null);
        t.done();
      }, "navigator.preferences.reducedData.clearOverride() supported");
      promise_test(async (t) => {
        await navigator.preferences.reducedData.requestOverride('reduce');
        assert_equals(navigator.preferences.reducedData.override, 'reduce');
        await navigator.preferences.reducedData.requestOverride(null);
        assert_equals(navigator.preferences.reducedData.override, null);
        t.done();
      }, "navigator.preferences.reducedData.requestOverride(null) works like clearOverride()");
      promise_test(async (t) => {
        await navigator.preferences.reducedData.requestOverride('reduce');
        assert_equals(navigator.preferences.reducedData.override, 'reduce');
        await navigator.preferences.reducedData.requestOverride('');
        assert_equals(navigator.preferences.reducedData.override, null);
        t.done();
      }, "navigator.preferences.reducedData.requestOverride('') works like clearOverride()");
      promise_test(async (t) => {
        await navigator.preferences.reducedData.requestOverride('no-preference');
        assert_true(window.matchMedia('(prefers-reduced-data: no-preference)').matches, '(prefers-reduced-data: no-preference) matches');
        assert_equals(navigator.preferences.reducedData.value, 'no-preference');
        await navigator.preferences.reducedData.requestOverride('reduce');
        assert_true(window.matchMedia('(prefers-reduced-data: reduce)').matches, '(prefers-reduced-data: reduce) matches');
        assert_equals(navigator.preferences.reducedData.value, 'reduce');
        navigator.preferences.reducedData.clearOverride();
        assert_true(window.matchMedia('(prefers-reduced-data: no-preference)').matches);
        assert_equals(navigator.preferences.reducedData.value, 'no-preference');
        t.done();
      }, "navigator.preferences.reducedData.requestOverride() updates (prefers-reduced-data)");
      async_test((t) => {
        t.add_cleanup(() => {
          navigator.preferences.reducedData.clearOverride();
          navigator.preferences.reducedData.onchange = null;
        });
        navigator.preferences.reducedData.onchange = t.step_func_done();
        navigator.preferences.reducedData.requestOverride('reduce');
      }, "navigator.preferences.reducedData fires change event when requesting override");
      async_test((t) => {
        t.add_cleanup(() => {
          navigator.preferences.reducedData.clearOverride();
          navigator.preferences.reducedData.onchange = null;
        });
        navigator.preferences.reducedData.onchange = t.step_func_done();
        navigator.preferences.reducedData.requestOverride('no-preference');
      }, "navigator.preferences.reducedData fires change event when requesting override (without value change)");
      promise_test(async (t) => {
        t.add_cleanup(() => {
          navigator.preferences.reducedData.clearOverride();
          navigator.preferences.reducedData.onchange = null;
        });
        await navigator.preferences.reducedData.requestOverride('reduce');
        const eventPromise = changeEventPromise("reducedData", t);
        await navigator.preferences.reducedData.clearOverride();
        await eventPromise;
      }, "navigator.preferences.reducedData fires change event when clearing override");
      promise_test(async (t) => {
        t.add_cleanup(() => {
          navigator.preferences.reducedData.clearOverride();
          navigator.preferences.reducedData.onchange = null;
        });
        await navigator.preferences.reducedData.requestOverride('no-preference');
        const eventPromise = changeEventPromise("reducedData", t);
        await navigator.preferences.reducedData.clearOverride();
        await eventPromise;
      }, "navigator.preferences.reducedData fires change event when clearing override (without value change)");
    </script>
  </body>
</html>