summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-text-fragment-navigation.tentative.html
blob: f83ea1a036aee2f8e26796df1c27193e9493b052 (plain)
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
<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title> CSS Scroll Snap 2 Test: scroll-start-target interaction with text-fragment navigation</title>
  <link rel="help" href="https://drafts.csswg.org/css-scroll-snap-2/#scroll-start-target">
  <script src="/resources/testharness.js"></script>
  <script src="/resources/testharnessreport.js"></script>
  <script src="/resources/testdriver.js"></script>
  <script src="/resources/testdriver-actions.js"></script>
  <script src="/resources/testdriver-vendor.js"></script>
  <script src="/common/utils.js"></script>
</head>

<body onload="runTest()">
  <script>
    function fetchResult(key, resolve, reject) {
      fetch(`/css/css-scroll-snap-2/scroll-start-target/stash.py?key=${key}`).then(response => {
        return response.text();
      }).then(text => {
        if (text) {
          try {
            let result = JSON.parse(text);
            resolve(result);
          } catch (e) {
            reject();
          }
        } else {
          fetchResult(key, resolve, reject);
        }
      });
    }

    function runTest() {
      promise_test(t => new Promise(async (resolve, reject) => {
        let key = token();

        test_driver.bless("Open a URL with a text fragment directive", () => {
          window.open(`scroll-start-target-with-text-fragment-navigation-target.html?key=${key}#:~:text=Target`, "_blank", "noopener");
        });

        fetchResult(key, resolve, reject);
      }).then(result => {
        assert_equals(result.scroll_position, "AT_TEXT_FRAGMENT");
      }), "scroll-start doesn't override text fragment navigation");
    }
  </script>
</body>