<!DOCTYPE html>
<title>position:sticky elements should respect an overflow:hidden ancestor</title>
<link rel="help" href="https://www.w3.org/TR/css-position-3/#sticky-pos" />
<meta name="assert" content="This test checks that position:sticky elements adhere to an overflow:hidden ancestor" />

<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>

<script src="resources/sticky-util.js"></script>

<body></body>

<script>
test(() => {
  const outer_scroller = document.createElement('div');
  outer_scroller.style.width = '100px';
  outer_scroller.style.height = '100px';
  outer_scroller.style.overflow = 'scroll';

  const inner_scroller = document.createElement('div');
  inner_scroller.style.width = '80%';
  inner_scroller.style.height = '200px';
  inner_scroller.style.overflow = 'hidden';

  const sticky = document.createElement('div');
  sticky.style.width = '20px';
  sticky.style.height = '20px';
  sticky.style.position = 'sticky';
  sticky.style.top = '0';
  sticky.style.background = 'red';

  const spacer = document.createElement('div');
  spacer.style.height = '500px';

  inner_scroller.appendChild(sticky);
  inner_scroller.appendChild(spacer);
  outer_scroller.appendChild(inner_scroller);
  document.body.appendChild(outer_scroller);

  outer_scroller.scrollTop = 50;

  // The sticky should attach to the inner scroller, and so should not stick.
  assert_equals(sticky.offsetTop, inner_scroller.offsetTop);
}, 'A sticky element should attach to an overflow:hidden ancestor');

// This tests a specific bug in Firefox where the sticky element incorrectly
// started sticking when inside a table. See https://bugzilla.mozilla.org/show_bug.cgi?id=1488810
test(() => {
  const outer_scroller = document.createElement('div');
  outer_scroller.style.width = '100px';
  outer_scroller.style.height = '100px';
  outer_scroller.style.overflow = 'scroll';

  const table = document.createElement('div');
  table.style.display = 'table';

  const tr = document.createElement('div');
  tr.style.display = 'table-row';

  const inner_scroller = document.createElement('div');
  inner_scroller.style.display = 'table-cell';
  inner_scroller.style.overflow = 'hidden';

  const sticky = document.createElement('div');
  sticky.style.width = '20px';
  sticky.style.height = '20px';
  sticky.style.position = 'sticky';
  sticky.style.top = '0';
  sticky.style.background = 'red';

  const spacer = document.createElement('div');
  spacer.style.height = '500px';

  inner_scroller.appendChild(sticky);
  inner_scroller.appendChild(spacer);
  tr.append(inner_scroller);
  table.appendChild(tr);
  outer_scroller.appendChild(table);
  document.body.appendChild(outer_scroller);

  outer_scroller.scrollTop = 50;

  // The sticky should attach to the inner scroller, and so should not stick.
  assert_equals(sticky.offsetTop, inner_scroller.offsetTop);
}, 'A sticky element should attach to an overflow:hidden ancestor inside a table');
</script>
