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

<head>
  <meta charset="utf-8">
  <title> CSS Scroll Snap 2 Test: scroll-start-target interaction with 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>
</head>

<body>
  <iframe id="frame" src="scroll-start-target-with-fragment-navigation-inner-frame.html#fragment_target"
    onload="runTest()"></iframe>
  <script>
    function runTest() {
      test((t) => {
        let scroller = frame.contentDocument.scrollingElement;
        // fragment_target is at the bottom of the frame so the frame should be
        // fully scrolled down to bring it into view (despite middle_box being
        // the scroll-start-target).
        let expected_scroll_top = scroller.scrollHeight - scroller.clientHeight;
        // The scroll-start-target is just below top_box which has a height of
        // 60vh.
        const scroll_start_target_top = 0.6 * frame.contentWindow.innerHeight;

        assert_equals(frame.contentWindow.location.hash, "#fragment_target");
        assert_not_equals(scroll_start_target_top, expected_scroll_top);
        assert_equals(frame.contentDocument.scrollingElement.scrollTop,
          expected_scroll_top);
      }, "scroll-start-target does not override hash fragment navigation");
    }
  </script>
</body>