chromium/third_party/blink/web_tests/transitions/shorthand-border-transitions.html

<!DOCTYPE html>

<html>
<head>
  <style>
    #box {
      height: 100px;
      width: 100px;
      margin: 10px;
      background-color: gray;
      border: 0px solid rgb(0, 0, 0);
      -webkit-transition: border 1s linear;
    }
    
    #box.final {
      border: 20px dashed rgb(255, 0, 255);
    }

    #box1 {
      height: 100px;
      width: 100px;
      margin: 10px;
      background-color: gray;
      border: 0px solid rgb(0, 0, 0);
      -webkit-transition: border-width 1s linear;
    }
    
    #box1.final {
      border: 20px solid rgb(255, 0, 255);
    }

    #box2 {
      height: 100px;
      width: 100px;
      margin: 10px;
      background-color: gray;
      border: 0px solid rgb(0, 0, 0);
      -webkit-transition: border 1s linear;
    }
    
    #box2.final {
      border-width: 20px;
      border-bottom-width: 40px;
    }
  </style>
  <script src="../animations/resources/animation-test-helpers.js"></script>
  <script type="text/javascript">
    
    const expectedValues = [
      // [time, element-id, property, expected-value, tolerance]
      // color and width of each side should be animating
      [0.5, 'box', 'border-top-color', [128, 0, 128], 30],
      [0.5, 'box', 'border-right-color', [128, 0, 128], 30],
      [0.5, 'box', 'border-bottom-color', [128, 0, 128], 30],
      [0.5, 'box', 'border-left-color', [128, 0, 128], 30],
      [0.5, 'box', 'border-top-width', 10, 2],
      [0.5, 'box', 'border-right-width', 10, 2],
      [0.5, 'box', 'border-bottom-width', 10, 2],
      [0.5, 'box', 'border-left-width', 10, 2],

      // only border-width should be animating
      [0.5, 'box1', 'border-top-width', 10, 2],
      [0.5, 'box1', 'border-top-color', [255, 0, 255], 0],

      // border-width should be animating
      [0.5, 'box2', 'border-top-width', 10, 2],
      [0.5, 'box2', 'border-bottom-width', 20, 4],
    ];
    
    function setupTest()
    {
      var box = document.getElementById('box');
      box.className = 'final';

      var box1 = document.getElementById('box1');
      box1.className = 'final';

      var box2 = document.getElementById('box2');
      box2.className = 'final';
    }
    
    runTransitionTest(expectedValues, setupTest);
  </script>
</head>
<body>

<p>
  Tests transitions of the border shorthand properties.
</p>
<div id="box"></div>
<div id="box1"></div>
<div id="box2"></div>

<div id="result">
</div>
</body>
</html>