<!DOCTYPE html>
<title>
  Snap to an area where the element's scroll-margin is visible but not the
  element itself (using both axes snap type)
</title>
<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#snap-scope"/>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
div {
  position: absolute;
  margin: 0px;
}

#scroller {
  height: 600px;
  width: 600px;
  overflow: scroll;
  scroll-snap-type: both mandatory;
}

#space {
  width: 2000px;
  height: 2000px;
}

.snap {
  width: 200px;
  height: 200px;
  background-color: blue;
  scroll-snap-align: start;
}

#left-top {
  left: 0px;
  top: 0px;
}

#left-bottom {
  left: 0px;
  top: 800px;
  /* 800px scroll-margin makes the snap area span to the right end of the
  right-top area */
  scroll-margin-right: 800px;
}

#right-top {
  left: 800px;
  top: 0px;
  /* 800px scroll-margin makes the snap area span to the bottom end of the
  left-bottom area */
  scroll-margin-bottom: 800px;
}

</style>
<div id="scroller">
  <div id="space"></div>
  <div id="left-top" class="snap"></div>
  <div id="left-bottom" class="snap"></div>
  <div id="right-top" class="snap"></div>
</div>
<script>
test(() => {
  const scroller = document.getElementById("scroller");
  scroller.scrollTo(0, 0);
  assert_equals(scroller.scrollLeft, 0);
  assert_equals(scroller.scrollTop, 0);
  scroller.scrollTo(500, 600);
  assert_equals(scroller.scrollLeft, 800);
  assert_equals(scroller.scrollTop, 800);
  scroller.scrollTo(600, 500);
  assert_equals(scroller.scrollLeft, 800);
  assert_equals(scroller.scrollTop, 800);
}, 'Snap to area such that only the scroll margin from both axes\' areas are \
visible');
</script>
