tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

preferences-reducedData.tentative.https.html (6903B)


      1 <!DOCTYPE html>
      2 <html>
      3  <head>
      4    <meta charset="utf-8" />
      5    <title>WebPreferences Test: reducedData attribute tests</title>
      6    <link rel="author" title="Luke Warlow" href="mailto:lwarlow@igalia.com" />
      7    <link rel="help" href="https://drafts.csswg.org/mediaqueries-5/#auto-pref%E2%91%A0" />
      8    <script src="/resources/testharness.js"></script>
      9    <script src="/resources/testharnessreport.js"></script>
     10    <script src=./resources/preferences-helper.js></script>
     11  </head>
     12  <body>
     13    <script>
     14      test(() => {
     15        assert_true('preferences' in navigator, 'navigator.preferences defined');
     16        assert_true('reducedData' in navigator.preferences, 'navigator.preferences.reducedData defined');
     17      }, "navigator.preferences.reducedData supported");
     18      test(() => {
     19        assert_true('override' in navigator.preferences.reducedData, 'navigator.preferences.reducedData.override defined');
     20        assert_equals(navigator.preferences.reducedData.override, null);
     21      }, "navigator.preferences.reducedData.override supported");
     22      test(() => {
     23        assert_true('value' in navigator.preferences.reducedData, 'navigator.preferences.reducedData.value defined');
     24        assert_equals(navigator.preferences.reducedData.value, 'no-preference');
     25      }, "navigator.preferences.reducedData.value supported");
     26      test(() => {
     27        assert_true('validValues' in navigator.preferences.reducedData, 'navigator.preferences.reducedData.validValues defined');
     28        assert_true(navigator.preferences.reducedData.validValues.includes('reduce'), 'navigator.preferences.reducedData.validValues includes "reduce"');
     29        assert_true(navigator.preferences.reducedData.validValues.includes('no-preference'), 'navigator.preferences.reducedData.validValues includes "no-preference"');
     30      }, "navigator.preferences.reducedData.validValues supported");
     31      promise_test((t) => {
     32        assert_true('requestOverride' in navigator.preferences.reducedData, 'navigator.preferences.reducedData.requestOverride() defined');
     33        return navigator.preferences.reducedData.requestOverride('this-is-an-invalid-value')
     34          .then(() => {
     35            assert_not_reached('requestOverride with invalid value should not resolve');
     36          })
     37          .catch((e) => {
     38            assert_true(e instanceof DOMException);
     39            assert_equals(navigator.preferences.reducedData.override, null);
     40            t.done();
     41          });
     42      }, "navigator.preferences.reducedData.requestOverride() with invalid value throws");
     43      promise_test(async (t) => {
     44        assert_true('clearOverride' in navigator.preferences.reducedData, 'navigator.preferences.reducedData.clearOverride() defined');
     45        await navigator.preferences.reducedData.requestOverride('reduce');
     46        assert_equals(navigator.preferences.reducedData.override, 'reduce');
     47        navigator.preferences.reducedData.clearOverride();
     48        assert_equals(navigator.preferences.reducedData.override, null);
     49        t.done();
     50      }, "navigator.preferences.reducedData.clearOverride() supported");
     51      promise_test(async (t) => {
     52        await navigator.preferences.reducedData.requestOverride('reduce');
     53        assert_equals(navigator.preferences.reducedData.override, 'reduce');
     54        await navigator.preferences.reducedData.requestOverride(null);
     55        assert_equals(navigator.preferences.reducedData.override, null);
     56        t.done();
     57      }, "navigator.preferences.reducedData.requestOverride(null) works like clearOverride()");
     58      promise_test(async (t) => {
     59        await navigator.preferences.reducedData.requestOverride('reduce');
     60        assert_equals(navigator.preferences.reducedData.override, 'reduce');
     61        await navigator.preferences.reducedData.requestOverride('');
     62        assert_equals(navigator.preferences.reducedData.override, null);
     63        t.done();
     64      }, "navigator.preferences.reducedData.requestOverride('') works like clearOverride()");
     65      promise_test(async (t) => {
     66        await navigator.preferences.reducedData.requestOverride('no-preference');
     67        assert_true(window.matchMedia('(prefers-reduced-data: no-preference)').matches, '(prefers-reduced-data: no-preference) matches');
     68        assert_equals(navigator.preferences.reducedData.value, 'no-preference');
     69        await navigator.preferences.reducedData.requestOverride('reduce');
     70        assert_true(window.matchMedia('(prefers-reduced-data: reduce)').matches, '(prefers-reduced-data: reduce) matches');
     71        assert_equals(navigator.preferences.reducedData.value, 'reduce');
     72        navigator.preferences.reducedData.clearOverride();
     73        assert_true(window.matchMedia('(prefers-reduced-data: no-preference)').matches);
     74        assert_equals(navigator.preferences.reducedData.value, 'no-preference');
     75        t.done();
     76      }, "navigator.preferences.reducedData.requestOverride() updates (prefers-reduced-data)");
     77      async_test((t) => {
     78        t.add_cleanup(() => {
     79          navigator.preferences.reducedData.clearOverride();
     80          navigator.preferences.reducedData.onchange = null;
     81        });
     82        navigator.preferences.reducedData.onchange = t.step_func_done();
     83        navigator.preferences.reducedData.requestOverride('reduce');
     84      }, "navigator.preferences.reducedData fires change event when requesting override");
     85      async_test((t) => {
     86        t.add_cleanup(() => {
     87          navigator.preferences.reducedData.clearOverride();
     88          navigator.preferences.reducedData.onchange = null;
     89        });
     90        navigator.preferences.reducedData.onchange = t.step_func_done();
     91        navigator.preferences.reducedData.requestOverride('no-preference');
     92      }, "navigator.preferences.reducedData fires change event when requesting override (without value change)");
     93      promise_test(async (t) => {
     94        t.add_cleanup(() => {
     95          navigator.preferences.reducedData.clearOverride();
     96          navigator.preferences.reducedData.onchange = null;
     97        });
     98        await navigator.preferences.reducedData.requestOverride('reduce');
     99        const eventPromise = changeEventPromise("reducedData", t);
    100        await navigator.preferences.reducedData.clearOverride();
    101        await eventPromise;
    102      }, "navigator.preferences.reducedData fires change event when clearing override");
    103      promise_test(async (t) => {
    104        t.add_cleanup(() => {
    105          navigator.preferences.reducedData.clearOverride();
    106          navigator.preferences.reducedData.onchange = null;
    107        });
    108        await navigator.preferences.reducedData.requestOverride('no-preference');
    109        const eventPromise = changeEventPromise("reducedData", t);
    110        await navigator.preferences.reducedData.clearOverride();
    111        await eventPromise;
    112      }, "navigator.preferences.reducedData fires change event when clearing override (without value change)");
    113    </script>
    114  </body>
    115 </html>