<!DOCTYPE html>
<html>
<head>
<script src="../../../resources/js-test-pre.js"></script>
<style>
#test {
  width: 400px;
  margin: 10px;
}
#test > div {
  margin: 1ex;
}
#outline {
    outline: 2px solid red;
    outline-offset: 5px;
}
#content:before {
    content: 'text';
}
#content:after {
  content: 'test ' url(data:image/gif;base64,R0lGODlhAQABAJAAAP8AAAAAACwAAAAAAQABAAACAgQBADs=);
}
#counter {
    counter-reset: section;
}
#counter > div {
    counter-reset: subsection 0 anothercounter 5;
}
#counter > h1:before {
    counter-increment: section;
    content: counter(section) '. ';
}
#counter > div > h2:before {
    counter-increment: subsection;
    content: counter(section) '.' counter(subsection) '. ';
}
</style>
</head>
<body>
<div id="test">
    <div id="outline">outline</div>
    <div id="content">content</div>
    <div id="counter">
        counter
        <h1 id="counter1">Heading A</h1>
        <div id="subcounter">
            <h2 id="subcounter1">Subheading A</h2>
            <h2 id="subcounter2">Subheading B</h2>
        </div>
        <h1>Heading B</h1>
        </div>
    </div>
    <div id="console"></div>
</body>
<script>
  
function computedStyleFor(id, pseudo, property)
{
    var element = document.getElementById(id);
    var style = window.getComputedStyle(element, pseudo);
    if (!style)
        return null;
    return style.getPropertyValue(property);
}

shouldBe("computedStyleFor('outline', null, 'outline-offset')", "'5px'");

shouldBeEqualToString("computedStyleFor('content', 'before', 'content')", "text");
shouldBeEqualToString("computedStyleFor('content', 'after', 'content')", `"test " url(\"data:image/gif;base64,R0lGODlhAQABAJAAAP8AAAAAACwAAAAAAQABAAACAgQBADs=\")`);
shouldBeEqualToString("computedStyleFor('counter', null, 'counter-reset')", "section 0");
var str = computedStyleFor('subcounter', null, 'counter-reset');
shouldBe("str.indexOf('subsection 0') != -1", "true");
shouldBe("str.indexOf('anothercounter 5') != -1", "true");
shouldBeEqualToString("computedStyleFor('counter1', 'before', 'counter-increment')", "section 1");
shouldBeEqualToString("computedStyleFor('subcounter2', 'before', 'counter-increment')", "subsection 1");
shouldBeEqualToString("computedStyleFor('subcounter2', 'before', 'content')", `counter(section) "." counter(subsection) ". "`);
</script>
<script src="../../../resources/js-test-post.js"></script>
</html>
