| Index: third_party/WebKit/LayoutTests/fast/css/invalidation/sibling-inserted-removed-shadow.html
|
| diff --git a/third_party/WebKit/LayoutTests/fast/css/invalidation/sibling-inserted-removed-shadow.html b/third_party/WebKit/LayoutTests/fast/css/invalidation/sibling-inserted-removed-shadow.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ff02f9bf6d96c487ae6c86ee97e87b94645dc259
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/fast/css/invalidation/sibling-inserted-removed-shadow.html
|
| @@ -0,0 +1,69 @@
|
| +<!DOCTYPE html>
|
| +<script src="../../../resources/testharness.js"></script>
|
| +<script src="../../../resources/testharnessreport.js"></script>
|
| +<div id="host1"></div>
|
| +<div id="host2"></div>
|
| +<div id="host3"></div>
|
| +<script>
|
| + var root1 = host1.createShadowRoot();
|
| + var root2 = host2.createShadowRoot();
|
| + var root3 = host3.createShadowRoot();
|
| +
|
| + root1.innerHTML = `<style>#t1 + div + div + #r1 {background-color:green}</style>
|
| + <div id="t1"></div>
|
| + <div id="i1"></div>
|
| + <div id="r1"></div>
|
| + <div></div>`;
|
| +
|
| + root2.innerHTML = `<style>#t2 + div + div + #r2 {background-color:green}</style>
|
| + <div id="i2"></div>
|
| + <div></div>
|
| + <div id="r2"></div>
|
| + <div></div>`;
|
| +
|
| + root3.innerHTML = `<style>#t3 + div + div + #r3 {background-color:green}</style>
|
| + <div id="t3"></div>
|
| + <div></div>
|
| + <div id="d3"></div>
|
| + <div></div>
|
| + <div id="r3"></div>
|
| + <div></div>`;
|
| +
|
| + document.body.offsetTop;
|
| +
|
| + test(function() {
|
| + assert_true(!!window.internals, "This test only works with internals exposed present");
|
| + }, "internals are exposed");
|
| +
|
| + test(function() {
|
| + var i1 = root1.querySelector('#i1');
|
| + var r1 = root1.querySelector('#r1');
|
| + assert_equals(getComputedStyle(r1).backgroundColor, "rgba(0, 0, 0, 0)", "Background color should initially be transparent");
|
| +
|
| + i1.parentNode.insertBefore(document.createElement('div'), i1);
|
| + assert_equals(internals.updateStyleAndReturnAffectedElementCount(), 2, "Inserted div plus #r1 recalculated");
|
| + assert_equals(getComputedStyle(r1).backgroundColor, "rgb(0, 128, 0)", "Background color is green after class change");
|
| + }, "Insert between siblings");
|
| +
|
| + test(function() {
|
| + var i2 = root2.querySelector('#i2');
|
| + var r2 = root2.querySelector('#r2');
|
| + assert_equals(getComputedStyle(r2).backgroundColor, "rgba(0, 0, 0, 0)", "Background color should initially be transparent");
|
| +
|
| + var t2 = document.createElement('div');
|
| + t2.id = 't2';
|
| + i2.parentNode.insertBefore(t2, i2);
|
| + assert_equals(internals.updateStyleAndReturnAffectedElementCount(), 2, "Inserted div plus #r2 recalculated");
|
| + assert_equals(getComputedStyle(r2).backgroundColor, "rgb(0, 128, 0)", "Background color is green after class change");
|
| + }, "Insert before siblings");
|
| +
|
| + test(function() {
|
| + var d3 = root3.querySelector('#d3');
|
| + var r3 = root3.querySelector('#r3');
|
| +
|
| + d3.parentNode.removeChild(d3);
|
| + assert_equals(internals.updateStyleAndReturnAffectedElementCount(), 1, "#r3 recalculated");
|
| + assert_equals(getComputedStyle(r3).backgroundColor, "rgb(0, 128, 0)", "Background color is green after class change");
|
| + }, "Remove between siblings");
|
| +
|
| +</script>
|
|
|