<!DOCTYPE html><!-- webkit-test-runner [ experimental:WebAnimationsCSSIntegrationEnabled=false ] -->

<html>
<head>
  <style type="text/css" media="screen">

    .container {
      width: 300px;
      -webkit-animation: spin 18s infinite linear;
    }
    
    video {
      -webkit-box-reflect: below;
      background-color: red;
    }

    @-webkit-keyframes spin {
      from { -webkit-transform: rotate(0); }
      to   { -webkit-transform: rotate(0); }
    }

  </style>
  <script src="../../../compositing/resources/media-testing.js"></script>
  <script src="../../../media/media-file.js"></script>
  <script type="text/javascript" charset="utf-8">
    function testDone()
    {
      if (window.testRunner)
        testRunner.notifyDone();
    }

    function doTest()
    {
      var video = document.getElementsByTagName('video')[0];
      setupVideo(video, '../../../compositing/resources/video', null, testDone);
    }
  </script>
</head>
<body onload="doTest()">
  <p>You should see a reflected video below, rather than the red video background.</p>
  <div class="container">
    <video></video>
  </div>
</body>
</html>
