| Index: LayoutTests/fast/dom/shadow/shadow-root-applyAuthorStyles.html
|
| diff --git a/LayoutTests/fast/dom/shadow/shadow-root-applyAuthorStyles.html b/LayoutTests/fast/dom/shadow/shadow-root-applyAuthorStyles.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..137471e762f6023663061a0774a45890da8239b8
|
| --- /dev/null
|
| +++ b/LayoutTests/fast/dom/shadow/shadow-root-applyAuthorStyles.html
|
| @@ -0,0 +1,151 @@
|
| +<!DOCTYPE html>
|
| +<html>
|
| +<head>
|
| +<style>
|
| +span {
|
| + background-color: #eef;
|
| + border: solid;
|
| + color: #fee;
|
| + display: boxed-inline;
|
| + font-size: 24px;
|
| + margin: 2px;
|
| + outline-color: #f00;
|
| + padding-left: 5px;
|
| + text-align: start;
|
| + text-decoration: underline;
|
| +}
|
| +input[type="file"] {
|
| + text-align: end;
|
| +}
|
| +</style>
|
| +</head>
|
| +<body>
|
| +<div id="apply-author-style"></div>
|
| +<div id="no-apply-author-style"></div>
|
| +<div id="with-inline-style-declaration"></div>
|
| +<div id="try-to-override-important"></div>
|
| +<div id="change-apply-author-style-from-true-to-false"></div>
|
| +<div id="change-apply-author-style-from-false-to-true"></div>
|
| +
|
| +<script>
|
| +function shouldBe(a, b)
|
| +{
|
| + if (a != b) {
|
| + throw "failure:" + a + ": should be " + b;
|
| + }
|
| +}
|
| +
|
| +function shouldNotBe(a, b)
|
| +{
|
| + if (a == b) {
|
| + throw "failure:" + a + ": should not be " + b;
|
| + }
|
| +}
|
| +
|
| +function assertTrue(id, actual) {
|
| + if (!actual) {
|
| + throw "failure:" + id + ": assertTrue failed";
|
| + }
|
| +}
|
| +
|
| +function assertFalse(id, actual) {
|
| + if (actual) {
|
| + throw "failure:" + id + ": assertFalse failed";
|
| + }
|
| +}
|
| +
|
| +function renderApplyAuthorStyleCase() {
|
| + var div = document.createElement('div');
|
| + document.getElementById('apply-author-style').appendChild(div);
|
| +
|
| + var shadowRoot = div.createShadowRoot();
|
| + assertFalse('default applyAuthorStyles', shadowRoot.applyAuthorStyles);
|
| + shadowRoot.applyAuthorStyles = true;
|
| + assertTrue('applyAuthorStyles should be true', shadowRoot.applyAuthorStyles);
|
| + shadowRoot.innerHTML = '<span></span>';
|
| +}
|
| +
|
| +function renderNoApplyAuthorStyleCase() {
|
| + var div = document.createElement('div');
|
| + document.getElementById('no-apply-author-style').appendChild(div);
|
| +
|
| + var shadowRoot = div.createShadowRoot();
|
| + assertFalse('default applyAuthorStyles', shadowRoot.applyAuthorStyles);
|
| + shadowRoot.applyAuthorStyles = false;
|
| + assertFalse('applyAuthorStyles should be false', shadowRoot.applyAuthorStyles);
|
| + shadowRoot.innerHTML = '<span></span>';
|
| +}
|
| +
|
| +function renderApplyAuthorStyleWithInlineStyleDeclarationCase() {
|
| + var div = document.createElement('div');
|
| + document.getElementById('with-inline-style-declaration').appendChild(div);
|
| +
|
| + var shadowRoot = div.createShadowRoot();
|
| + assertFalse('default applyAuthorStyles', shadowRoot.applyAuthorStyles);
|
| + shadowRoot.applyAuthorStyles = true;
|
| + assertTrue('applyAuthorStyles should be true', shadowRoot.applyAuthorStyles);
|
| + shadowRoot.innerHTML = '<span style="border:none; color:#daa; font-size:18px; text-decoration:none"></span>';
|
| +}
|
| +
|
| +function renderApplyAuthorStyleWithOverridingImportantPropertyCase() {
|
| + var div = document.createElement('div');
|
| + document.getElementById('try-to-override-important').appendChild(div);
|
| +
|
| + var shadowRoot = div.createShadowRoot();
|
| + assertFalse('default applyAuthorStyles', shadowRoot.applyAuthorStyles);
|
| + shadowRoot.applyAuthorStyles = true;
|
| + assertTrue('applyAuthorStyles should be true', shadowRoot.applyAuthorStyles);
|
| + shadowRoot.innerHTML = '<input type="file" />';
|
| +}
|
| +
|
| +function testChangingApplyAuthorStyleFromTrueToFalse() {
|
| + var div = document.createElement('div');
|
| + document.getElementById('change-apply-author-style-from-true-to-false').appendChild(div);
|
| +
|
| + var shadowRoot = div.createShadowRoot();
|
| + assertFalse('default applyAuthorStyles', shadowRoot.applyAuthorStyles);
|
| + shadowRoot.applyAuthorStyles = true;
|
| + assertTrue('applyAuthorStyles should be true', shadowRoot.applyAuthorStyles);
|
| + shadowRoot.innerHTML = '<div><span id="test1"></span></div>';
|
| + div.offsetLeft;
|
| + var target = shadowRoot.getElementById('test1');
|
| + shouldBe(window.getComputedStyle(target).getPropertyValue('font-size'), "24px");
|
| + shouldBe(window.getComputedStyle(target).getPropertyValue('text-decoration'), "underline");
|
| +
|
| + shadowRoot.applyAuthorStyles = false;
|
| + assertFalse('applyAuthorStyles should be false', shadowRoot.applyAuthorStyles);
|
| + div.offsetLeft;
|
| + shouldNotBe(window.getComputedStyle(target).getPropertyValue('font-size'), "24px");
|
| + shouldNotBe(window.getComputedStyle(target).getPropertyValue('text-decoration'), "underline");
|
| +}
|
| +
|
| +function testChangingApplyAuthorStyleFromFalseToTrue() {
|
| + var div = document.createElement('div');
|
| + document.getElementById('change-apply-author-style-from-false-to-true').appendChild(div);
|
| +
|
| + var shadowRoot = div.createShadowRoot();
|
| + shadowRoot.applyAuthorStyles = false;
|
| + assertFalse('applyAuthorStyles should be false', shadowRoot.applyAuthorStyles);
|
| + shadowRoot.innerHTML = '<div><span id="test2"></span></div>';
|
| + div.offsetLeft;
|
| + var target = shadowRoot.getElementById('test2');
|
| + shouldNotBe(window.getComputedStyle(target).getPropertyValue('font-size'), "24px");
|
| + shouldNotBe(window.getComputedStyle(target).getPropertyValue('text-decoration'), "underline");
|
| +
|
| + shadowRoot.applyAuthorStyles = true;
|
| + assertTrue('applyAuthorStyles should be true', shadowRoot.applyAuthorStyles);
|
| + div.offsetLeft;
|
| + shouldBe(window.getComputedStyle(target).getPropertyValue('font-size'), "24px");
|
| + shouldBe(window.getComputedStyle(target).getPropertyValue('text-decoration'), "underline");
|
| +}
|
| +
|
| +renderApplyAuthorStyleCase();
|
| +// Looks: regression.
|
| +// renderNoApplyAuthorStyleCase();
|
| +renderApplyAuthorStyleWithInlineStyleDeclarationCase();
|
| +renderApplyAuthorStyleWithOverridingImportantPropertyCase();
|
| +testChangingApplyAuthorStyleFromTrueToFalse();
|
| +testChangingApplyAuthorStyleFromFalseToTrue();
|
| +</script>
|
| +</body>
|
| +</html>
|
|
|