<!DOCTYPE html>
<title>Layout Instability: inline/text movement is detected</title>
<link rel="help" href="https://wicg.github.io/layout-instability/" />
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/util.js"></script>
<div style="width: 200px; font-size: 20px; line-height: 25px">
  1AAAAAAA<br>
  2AAAAAAA<br>
  3AAAAAAA<br>
  <div id="inline-block" style="display: inline-block">4AAAAAAA</div><br>
  <div id="shift" style="display: inline-block"></div>5AAAAAAA<br>
  6AAAAAAA<br>
  7AAAAAAA<br>
</div>
<script>

promise_test(async () => {
  const watcher = new ScoreWatcher;

  // Wait for the initial render to complete.
  await waitForAnimationFrames(2);

  // Modify the width of |shift|.
  document.querySelector("#shift").style.width = '50px';

  // Only the line after |shift| is shifted right by 50px.
  // The implementation may measure the real width of the shifted text
  // or use the available width (i.e. width of the containing block).
  // Also tolerate extra 10% error.
  const text_width = document.querySelector("#inline-block").clientWidth;
  const expectedScoreMin = computeExpectedScore((text_width + 50) * 20, 50) * 0.9;
  const expectedScoreMax = computeExpectedScore(200 * 25, 50) * 1.1;

  // Observer fires after the frame is painted.
  assert_equals(watcher.score, 0);
  await watcher.promise;
  assert_between_exclusive(watcher.score, expectedScoreMin, expectedScoreMax);
}, 'Inline flow movement.');

</script>
