<!DOCTYPE html>
<html>
  <meta charset="utf-8">
  <title>CSS-Writing Modes Test: propagation of the writing-mode property from body to root</title>
  <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
  <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
  <link rel=help href="https://drafts.csswg.org/css-writing-modes-3/#principal-flow">
  <link rel="match" href="wm-propagation-body-dynamic-change-002-ref.html">
  <meta name=assert content="The writing mode of the newly inserted body must be propagated to the root.">

  <script>
  function runTest() {
    document.body.offsetHeight;

    var newBody = document.createElement("body");
    newBody.id = "new-body";
    var oldBody = document.getElementById("old-body");

    /* Insert a new <body> before the old one, which should become the primary <body>. */
    document.documentElement.insertBefore(newBody, oldBody);
  }
  </script>

  <style>
  #new-body {
    /* This writing-mode should propagate to the root element. */
    writing-mode: vertical-rl;
    margin: 0;
  }

  #old-body {
    writing-mode: horizontal-tb;
    inline-size: 100px;
  }

  div {
    background-color: blue;
    height: 100px;
    width: 100px;
  }
  </style>

  <body id="old-body" onload="runTest();">
    <div></div>
    <p>Test passes if you see a blue square in the upper-right corner of the page</p>
  </body>
</html>
