<!DOCTYPE html>
<html>
 <head>
  <title>CSSOM View - getBoxQuads() returns proper border and margin boxes for block and flex</title>
  <link rel="help" href="https://drafts.csswg.org/cssom-view/#the-geometryutils-interface">
  <script src="/resources/testharness.js"></script>
  <script src="/resources/testharnessreport.js"></script>

  <style>
    .container {
      width: 100px;
      height: 50px;
      background-color: gray;
    }
    span {
      display: block;
      background: gold;
      height: 4px;
      width: 14px;
      margin: auto;
      padding: 0px;
      border: 3px solid blue;
    }
  </style>
 </head>
 <body>
  <div class="container">
  <span id="block-block"></span>
  </div>

  <div class="container" style="display:flex">
  <span id="flex-block"></span>
  </div>

  <script>
    test(function() {
      let bb = document.getElementById("block-block");
      assert_equals(bb.getBoxQuads({box: "border"})[0].getBounds().width,  20, "Block layout border box is expected width.");
      assert_equals(bb.getBoxQuads({box: "margin"})[0].getBounds().width, 100, "Block layout margin box is expected width.");

      // For containers that expand items to fill block-axis space, measure the box heights also.
      let fb = document.getElementById("flex-block");
      assert_equals(fb.getBoxQuads({box: "border"})[0].getBounds().width,  20, "Flex layout border box is expected width.");
      assert_equals(fb.getBoxQuads({box: "margin"})[0].getBounds().width, 100, "Flex layout margin box is expected width.");

      assert_equals(fb.getBoxQuads({box: "border"})[0].getBounds().height, 10, "Flex layout border box is expected height.");
      assert_equals(fb.getBoxQuads({box: "margin"})[0].getBounds().height, 50, "Flex layout margin box is expected height.");
    });
  </script>
 </body>
</html>
