<!DOCTYPE html>
<html>

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

<body>
  <iframe id="frame" src="scroll-initial-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-initial-target).
        let expected_scroll_top = scroller.scrollHeight - scroller.clientHeight;
        // The scroll-initial-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-initial-target does not override hash fragment navigation");
    }
  </script>
</body>