<!DOCTYPE html>
<!--
 | Setting the border radius for a box with background-image and a border set.
 |   https://www.w3.org/TR/css3-background/#border-radius
 -->
<html>
<head>
  <style>
    div {
      border: 25px rgb(0, 100, 0) solid;
      border-radius: 60px;
      height: 200px;
      width: 250px;
    }
  </style>
  <script>
    if (window.testRunner) {
      window.testRunner.waitUntilDone();
    }

    var image = new Image();
    var image_name = 'cobalt.png';

    image.onload = function() {
      var cobalt = document.getElementById('image');
      cobalt.style.background = 'url(' + image_name + ')';

      if (window.testRunner) {
        window.testRunner.notifyDone();
      }
    }

    image.src = image_name;

  </script>
</head>
<body>
  <div id='image'></div>
</body>
</html>
