tor-browser

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

preferences-contrast.tentative.https.html (7672B)


      1 <!DOCTYPE html>
      2 <html>
      3  <head>
      4    <meta charset="utf-8" />
      5    <title>WebPreferences Test: contrast 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('contrast' in navigator.preferences, 'navigator.preferences.contrast defined');
     17      }, "navigator.preferences.contrast supported");
     18      test(() => {
     19        assert_true('override' in navigator.preferences.contrast, 'navigator.preferences.contrast.override defined');
     20        assert_equals(navigator.preferences.contrast.override, null);
     21      }, "navigator.preferences.contrast.override supported");
     22      test(() => {
     23        assert_true('value' in navigator.preferences.contrast, 'navigator.preferences.contrast.value defined');
     24        assert_equals(navigator.preferences.contrast.value, 'no-preference');
     25      }, "navigator.preferences.contrast.value supported");
     26      test(() => {
     27        assert_true('validValues' in navigator.preferences.contrast, 'navigator.preferences.contrast.validValues defined');
     28        assert_true(navigator.preferences.contrast.validValues.includes('more'), 'navigator.preferences.contrast.validValues includes "more"');
     29        assert_true(navigator.preferences.contrast.validValues.includes('less'), 'navigator.preferences.contrast.validValues includes "less"');
     30        assert_true(navigator.preferences.contrast.validValues.includes('no-preference'), 'navigator.preferences.contrast.validValues includes "no-preference"');
     31        assert_false(navigator.preferences.contrast.validValues.includes('custom'), 'navigator.preferences.contrast.validValues excludes "custom"');
     32      }, "navigator.preferences.contrast.validValues supported");
     33      promise_test((t) => {
     34        assert_true('requestOverride' in navigator.preferences.contrast, 'navigator.preferences.contrast.requestOverride() defined');
     35        return navigator.preferences.contrast.requestOverride('this-is-an-invalid-value')
     36          .then(() => {
     37            assert_not_reached('requestOverride with invalid value should not resolve');
     38          })
     39          .catch((e) => {
     40            assert_true(e instanceof DOMException);
     41            assert_equals(navigator.preferences.contrast.override, null);
     42            t.done();
     43          });
     44      }, "navigator.preferences.contrast.requestOverride() with invalid value throws");
     45      promise_test((t) => {
     46        return navigator.preferences.contrast.requestOverride('custom')
     47          .then(() => {
     48            assert_not_reached('requestOverride with invalid value should not resolve');
     49          })
     50          .catch((e) => {
     51            assert_true(e instanceof DOMException);
     52            assert_equals(navigator.preferences.contrast.override, null);
     53            t.done();
     54          });
     55      }, "navigator.preferences.contrast.requestOverride('custom') throws");
     56      promise_test(async (t) => {
     57        assert_true('clearOverride' in navigator.preferences.contrast, 'navigator.preferences.contrast.clearOverride() defined');
     58        await navigator.preferences.contrast.requestOverride('more');
     59        assert_equals(navigator.preferences.contrast.override, 'more');
     60        navigator.preferences.contrast.clearOverride();
     61        assert_equals(navigator.preferences.contrast.override, null);
     62        t.done();
     63      }, "navigator.preferences.contrast.clearOverride() works");
     64      promise_test(async (t) => {
     65        await navigator.preferences.contrast.requestOverride('more');
     66        assert_equals(navigator.preferences.contrast.override, 'more');
     67        await navigator.preferences.contrast.requestOverride(null);
     68        assert_equals(navigator.preferences.contrast.override, null);
     69        t.done();
     70      }, "navigator.preferences.contrast.requestOverride(null) works like clearOverride()");
     71      promise_test(async (t) => {
     72        await navigator.preferences.contrast.requestOverride('more');
     73        assert_equals(navigator.preferences.contrast.override, 'more');
     74        await navigator.preferences.contrast.requestOverride('');
     75        assert_equals(navigator.preferences.contrast.override, null);
     76        t.done();
     77      }, "navigator.preferences.contrast.requestOverride('') works like clearOverride()");
     78      promise_test(async (t) => {
     79        await navigator.preferences.contrast.requestOverride('more');
     80        assert_true(window.matchMedia('(prefers-contrast: more)').matches, '(prefers-contrast: more) matches');
     81        assert_equals(navigator.preferences.contrast.value, 'more');
     82        await navigator.preferences.contrast.requestOverride('no-preference');
     83        assert_true(window.matchMedia('(prefers-contrast: no-preference)').matches, '(prefers-contrast: no-preference) matches');
     84        assert_equals(navigator.preferences.contrast.value, 'no-preference');
     85        await navigator.preferences.contrast.requestOverride('less');
     86        assert_true(window.matchMedia('(prefers-contrast: less)').matches, '(prefers-contrast: less) matches');
     87        assert_equals(navigator.preferences.contrast.value, 'less');
     88        navigator.preferences.contrast.clearOverride();
     89        assert_true(window.matchMedia('(prefers-contrast: no-preference)').matches);
     90        assert_equals(navigator.preferences.contrast.value, 'no-preference');
     91        t.done();
     92      }, "navigator.preferences.contrast.requestOverride() updates (prefers-contrast)");
     93      async_test((t) => {
     94        t.add_cleanup(() => {
     95          navigator.preferences.contrast.clearOverride();
     96          navigator.preferences.contrast.onchange = null;
     97        });
     98        navigator.preferences.contrast.onchange = t.step_func_done();
     99        navigator.preferences.contrast.requestOverride('less');
    100      }, "navigator.preferences.contrast fires change event when requesting override");
    101      async_test((t) => {
    102        t.add_cleanup(() => {
    103          navigator.preferences.contrast.clearOverride();
    104          navigator.preferences.contrast.onchange = null;
    105        });
    106        navigator.preferences.contrast.onchange = t.step_func_done();
    107        navigator.preferences.contrast.requestOverride('no-preference');
    108      }, "navigator.preferences.contrast fires change event when requesting override (without value change)");
    109      promise_test(async (t) => {
    110        t.add_cleanup(() => {
    111          navigator.preferences.contrast.clearOverride();
    112          navigator.preferences.contrast.onchange = null;
    113        });
    114        await navigator.preferences.contrast.requestOverride('less');
    115        const eventPromise = changeEventPromise("contrast", t);
    116        await navigator.preferences.contrast.clearOverride();
    117        await eventPromise;
    118      }, "navigator.preferences.contrast fires change event when clearing override");
    119      promise_test(async (t) => {
    120        t.add_cleanup(() => {
    121          navigator.preferences.contrast.clearOverride();
    122          navigator.preferences.contrast.onchange = null;
    123        });
    124        await navigator.preferences.contrast.requestOverride('no-preference');
    125        const eventPromise = changeEventPromise("contrast", t);
    126        await navigator.preferences.contrast.clearOverride();
    127        await eventPromise;
    128      }, "navigator.preferences.contrast fires change event when clearing override (without value change)");
    129    </script>
    130  </body>
    131 </html>