<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <link rel="stylesheet" href="resources/basic.css" type="text/css" />
  <link rel="stylesheet" href="resources/small.css" type="text/css" />
  <link rel="stylesheet" href="resources/normal.css" type="text/css" />
  <link rel="alternate stylesheet" href="resources/high.css" type="text/css" />
  <script src="../../resources/js-test-pre.js"></script>
</head>

<body>
  <h1 id="firstH1">Alternate stylesheets</h1>
  
  <p id="textLine">This document has 3 stylesheets, with 1 alternate stylesheet without title. It should:</p>
  
  <ul>
    <li>Have a green border at the top of the page</li>
    <li>An underlined <code>H1</code></li>
    <li>12px text</li>
  </ul>

  <script>
    description("Alternate stylesheet (link) title test 2");

    if (window.testRunner)
      testRunner.dumpAsText();

    window.onload = function () {
      element = document.getElementById("firstH1");
      shouldBe("getComputedStyle(element).getPropertyValue('text-decoration')", "'underline'");

      element = document.getElementById("textLine");
      shouldBe("getComputedStyle(element).getPropertyValue('font-size')", "'12px'");

      shouldBe("getComputedStyle(document.body).getPropertyValue('border-top-color')", "'rgb(0, 128, 0)'");

      wasPostTestScriptParsed = true;
      finishJSTest();
    }
  </script>
  
</body>
</html>
