<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>WICD Core 1.0 #11 - scalable CSS background</title>
  <link rel="stylesheet" type="text/css" href="resources/main.css"/>
  <link rel="stylesheet" type="text/css" href="resources/test-scalable-background-image1.css"/>
</head>
<body>
  <script src="../../resources/run-after-layout-and-paint.js"></script>
  <script>
  if (window.testRunner)
      testRunner.waitUntilDone();

  runAfterLayoutAndPaint(function() {
      if (window.testRunner)
          testRunner.notifyDone();
  });
  </script>
  <h1>scalable CSS background</h1>
  <h4>WICD Core 1.0 #11</h4>
  <p>
    This text paragraph, as well as all following, must have a SVG background image. 
  </p>
  <p>
      This background image (grey color-gradient and rounded corners) must always exactly fit the text paragraph.
  </p>
  <p>
    This test has failed, if you don't see any graphics on the background. (your user agent does not support SVG as background image).
  </p>
  <p><a href="javascript:history.back()">Back</a></p>
</body>
</html>
