| <!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> |