<!doctype html>
<meta charset="utf-8">
<title>CSS Test: StyleSheet's title attribute</title>
<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
<link rel="help" href="https://drafts.csswg.org/cssom/#preferred-css-style-sheet-set-name">
<link rel="help" href="https://html.spec.whatwg.org/multipage/#attr-style-title">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style></style>
<style title=""></style>
<style title="Preferred">
  p { color: green; }
</style>
<style title="Not preferred">
  p { color: red; }
</style>
<p id="test-element">Should be green</p>
<script>
test(function() {
  assert_equals(
    getComputedStyle(document.getElementById("test-element")).color,
    "rgb(0, 128, 0)",
    "Preferred style should apply"
  );
}, "Preferred style sheet name");

test(function() {
  let sheets = document.styleSheets;
  let styleElements = Array.from(document.querySelectorAll("style"));
  assert_equals(sheets.length, styleElements.length);
  for (let i = 0; i < sheets.length; ++i) {
    let titleAttr = styleElements[i].getAttribute("title");
    if (titleAttr === null || titleAttr === "")
      assert_equals(sheets[i].title, null, "Empty title returns null");
    else
      assert_equals(sheets[i].title, titleAttr, "Selected title is properly reflected");
  }
}, "StyleSheet.title");
</script>
