<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Box Alignment Test: gap shorthand parsing</title>
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="https://www.w3.org/TR/css-align-3/#row-row-gap">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
  .gapPx { gap: 12px; }
  #gapPxTwo { gap: 12px 8px; }
  #gapPxPercent { gap: 12px 10%; }
  #gapEm { gap: 2em; font: 10px/1 Monospace; }
  #gapEmTwo { gap: 2em 4em; font: 10px/1 Monospace; }
  #gapVw { gap: 2vw; }
  #gapVwTwo { gap: 2vw 1vh; }
  #gapPercent { gap: 15%; }
  #gapPercentTwo { gap: 15% 10%; }
  #gapCalc { gap: calc(10px + 4px); }
  #gapCalcFixedPercent { gap: calc(5px + 10%); }
  #gapCalcTwo { gap: calc(10px + 4px) calc(20px - 8px); }
  .gapInitial { gap: initial; }
  .gapInherit { gap: inherit; }

  #invalidGapNegative { gap: -10px; }
  #invalidGapMaxContent { gap: max-content; }
  #invalidGapNone { gap: none; }
  #invalidGapAngle { gap: 3rad; }
  #invalidGapResolution { gap: 2dpi; }
  #invalidGapTime { gap: 200ms; }
  #invalidGapThree { gap: 10px 1px 5px; }
  #invalidGapSlash { gap: 10px / 5px; }
  #invalidGapOneWrong { gap: 10px -5px; }
</style>
<body>
  <div id="log"></div>

  <div id="default"></div>
  <div id="gapPx" class="gapPx"></div>
  <div id="gapPxTwo"></div>
  <div id="gapPxPercent"></div>
  <div id="gapEm"></div>
  <div id="gapEmTwo"></div>
  <div id="gapVw"></div>
  <div id="gapVwTwo"></div>
  <div id="gapPercent"></div>
  <div id="gapPercentTwo"></div>
  <div id="gapCalc"></div>
  <div id="gapCalcFixedPercent"></div>
  <div id="gapCalcTwo"></div>
  <div id="gapInitial" class="gapInitial"></div>
  <div class="gapPx">
    <div id="gapInitialPx" class="gapInitial"></div>
  </div>
  <div id="gapInherit" class="gapInherit"></div>
  <div class="gapPx">
    <div id="gapInheritPx" class="gapInherit"></div>
  </div>

  <div id="invalidGapNegative"></div>
  <div id="invalidGapMaxContent"></div>
  <div id="invalidGapNone"></div>
  <div id="invalidGapAngle"></div>
  <div id="invalidGapResolution"></div>
  <div id="invalidGapTime"></div>
  <div id="invalidGapThree"></div>
  <div id="invalidGapSlash"></div>
  <div id="invalidGapOneWrong"></div>

  <script>
    test(
      function(){
        var target = document.getElementById("default");
        assert_equals(getComputedStyle(target).rowGap, "normal");
        assert_equals(getComputedStyle(target).columnGap, "normal");
      }, "Default gap is 'normal'");
    test(
      function(){
        var target = document.getElementById("gapPx");
        assert_equals(getComputedStyle(target).rowGap, "12px");
        assert_equals(getComputedStyle(target).columnGap, "12px");
      }, "gap accepts pixels");
    test(
      function(){
        var target = document.getElementById("gapPxTwo");
        assert_equals(getComputedStyle(target).rowGap, "12px");
        assert_equals(getComputedStyle(target).columnGap, "8px");
      }, "gap accepts pixels 2");
    test(
      function(){
        var target = document.getElementById("gapPxPercent");
        assert_equals(getComputedStyle(target).rowGap, "12px");
        assert_equals(getComputedStyle(target).columnGap, "10%");
      }, "gap accepts pixels combined with percentage");
    test(
      function(){
        var target = document.getElementById("gapEm");
        assert_equals(getComputedStyle(target).rowGap, "20px");
        assert_equals(getComputedStyle(target).columnGap, "20px");
      }, "gap accepts em");
    test(
      function(){
        var target = document.getElementById("gapEmTwo");
        assert_equals(getComputedStyle(target).rowGap, "20px");
        assert_equals(getComputedStyle(target).columnGap, "40px");
      }, "gap accepts em 2");
    test(
      function(){
        var target = document.getElementById("gapVw");
        // The gap size would depend on the viewport width, so to make the test pass
        // in any window size we just check it's not "normal".
        assert_not_equals(getComputedStyle(target).rowGap, "normal");
        assert_not_equals(getComputedStyle(target).columnGap, "normal");
      }, "gap accepts vw");
    test(
      function(){
        var target = document.getElementById("gapVwTwo");
        // The gap size would depend on the viewport width, so to make the test pass
        // in any window size we just check it's not "normal".
        assert_not_equals(getComputedStyle(target).rowGap, "normal");
        assert_not_equals(getComputedStyle(target).columnGap, "normal");
      }, "gap accepts vw and vh");
    test(
      function(){
        var target = document.getElementById("gapPercent");
        assert_equals(getComputedStyle(target).rowGap, "15%");
        assert_equals(getComputedStyle(target).columnGap, "15%");
      }, "gap accepts percentage");
    test(
      function(){
        var target = document.getElementById("gapPercentTwo");
        assert_equals(getComputedStyle(target).rowGap, "15%");
        assert_equals(getComputedStyle(target).columnGap, "10%");
      }, "gap accepts percentage 2");
    test(
      function(){
        var target = document.getElementById("gapCalc");
        assert_equals(getComputedStyle(target).rowGap, "14px");
        assert_equals(getComputedStyle(target).columnGap, "14px");
      }, "gap accepts calc()");
    test(
      function(){
        var target = document.getElementById("gapCalcFixedPercent");
        assert_equals(getComputedStyle(target).rowGap, "calc(5px + 10%)");
        assert_equals(getComputedStyle(target).columnGap, "calc(5px + 10%)");
      }, "gap accepts calc() mixing fixed and percentage values");
    test(
      function(){
        var target = document.getElementById("gapCalcTwo");
        assert_equals(getComputedStyle(target).rowGap, "14px");
        assert_equals(getComputedStyle(target).columnGap, "12px");
      }, "gap accepts calc() 2");
    test(
      function(){
        var target = document.getElementById("gapInitial");
        assert_equals(getComputedStyle(target).rowGap, "normal");
        assert_equals(getComputedStyle(target).columnGap, "normal");
      }, "Initial gap is 'normal'");
    test(
      function(){
        var target = document.getElementById("gapInitialPx");
        assert_equals(getComputedStyle(target).rowGap, "normal");
        assert_equals(getComputedStyle(target).columnGap, "normal");
      }, "Initial gap is 'normal' 2");
    test(
      function(){
        var target = document.getElementById("gapInherit");
        assert_equals(getComputedStyle(target).rowGap, "normal");
        assert_equals(getComputedStyle(target).columnGap, "normal");
      }, "Initial inherited gap is 'normal'");
    test(
      function(){
        var target = document.getElementById("gapInheritPx");
        assert_equals(getComputedStyle(target).rowGap, "12px");
        assert_equals(getComputedStyle(target).columnGap, "12px");
      }, "gap is inheritable");

    test(
      function(){
        var target = document.getElementById("invalidGapNegative");
        assert_equals(getComputedStyle(target).rowGap, "normal");
        assert_equals(getComputedStyle(target).columnGap, "normal");
      }, "Negative gap is invalid");
    test(
      function(){
        var target = document.getElementById("invalidGapMaxContent");
        assert_equals(getComputedStyle(target).rowGap, "normal");
        assert_equals(getComputedStyle(target).columnGap, "normal");
      }, "'max-content' gap is invalid");
    test(
      function(){
        var target = document.getElementById("invalidGapNone");
        assert_equals(getComputedStyle(target).rowGap, "normal");
        assert_equals(getComputedStyle(target).columnGap, "normal");
      }, "'none' gap is invalid");
    test(
      function(){
        var target = document.getElementById("invalidGapAngle");
        assert_equals(getComputedStyle(target).rowGap, "normal");
        assert_equals(getComputedStyle(target).columnGap, "normal");
      }, "Angle gap is invalid");
    test(
      function(){
        var target = document.getElementById("invalidGapResolution");
        assert_equals(getComputedStyle(target).rowGap, "normal");
        assert_equals(getComputedStyle(target).columnGap, "normal");
      }, "Resolution gap is invalid");
    test(
      function(){
        var target = document.getElementById("invalidGapTime");
        assert_equals(getComputedStyle(target).rowGap, "normal");
        assert_equals(getComputedStyle(target).columnGap, "normal");
      }, "Time gap is invalid");
    test(
      function(){
        var target = document.getElementById("invalidGapThree");
        assert_equals(getComputedStyle(target).rowGap, "normal");
        assert_equals(getComputedStyle(target).columnGap, "normal");
      }, "gap with three values is invalid");
    test(
      function(){
        var target = document.getElementById("invalidGapSlash");
        assert_equals(getComputedStyle(target).rowGap, "normal");
        assert_equals(getComputedStyle(target).columnGap, "normal");
      }, "gap with slash is invalid");
    test(
      function(){
        var target = document.getElementById("invalidGapOneWrong");
        assert_equals(getComputedStyle(target).rowGap, "normal");
        assert_equals(getComputedStyle(target).columnGap, "normal");
      }, "gap with one wrong value is invalid");
  </script>
</body>


