<!DOCTYPE>

<html lang="en">
<head>
  <title>Test mismatched backgrounds</title>
  <style type="text/css" media="screen">
    .box {
      height: 100px;
      width: 100px;
      margin: 10px;
      border: 1px solid black;
      background-repeat: no-repeat;
    }
    
    /* Mismatched layers */
    #box {
      background-image: url('repeat/resources/white.gif');
    }
    
    #box.final {
      background-image: url('repeat/resources/white.gif'), url('repeat/resources/white.gif');
    }

  </style>

  <script type="text/javascript" charset="utf-8">

    if (window.testRunner) {
      testRunner.dumpAsText();
      testRunner.waitUntilDone();
    }

    function runTest()
    {
      document.getElementById('box').className = 'box final';
      window.setTimeout(function() {
        document.getElementById('box').style.display = 'none';
        if (window.testRunner)
          testRunner.notifyDone();
      }, 0);
    }
  
    window.addEventListener('load', runTest, false);
  </script>
</head>
<body>

  <p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=28295">https://bugs.webkit.org/show_bug.cgi?id=28295</a>; should not assert.</p>
  <div id="box" class="box"></div>

</body>
</html>
