<!DOCTYPE html> <html> <head> <script src="../../../resources/testharness.js"></script> <script src="../../../resources/testharnessreport.js"></script> <link rel=import id=redImport href="./resources/style-red.html"> <link rel=import id=blueImport href="./resources/style-blue.html"> <link rel=import id=redImportDup href="./resources/style-red.html"> </head> <body> <h1 class="target">Should be red</h1> <h1 class="another-red-target">Should be red</h1> <script> var t = async_test('Styles are re-applied in correct ordder after removed imports are re-added in new place'); window.onload = function() { t.step(function() { var firstLink = document.querySelector('#redImport') var dupLink = document.querySelector('#redImportDup'); document.head.removeChild(dupLink); assert_equals(window.getComputedStyle(document.querySelector('.target')).color, 'rgb(0, 0, 255)', 'Removal reveals shadowed style.'); assert_equals(window.getComputedStyle(document.querySelector('.another-red-target')).color, 'rgb(255, 0, 0)', 'But sheet is still there.'); document.head.removeChild(firstLink); document.head.appendChild(dupLink); assert_equals(window.getComputedStyle(document.querySelector('.target')).color, 'rgb(255, 0, 0)', 'Used-to-be-a-dup sheet is applied now.'); assert_equals(window.getComputedStyle(document.querySelector('.another-red-target')).color, 'rgb(255, 0, 0)', 'That means this should be applied as well.'); Array.prototype.forEach.call(document.querySelectorAll("h1"), function(e) { e.style.display = "none"; }); t.done(); }); } </script> </body> </html>