blob: c50b0fb915d9c4181bd00e960fd21df2abcaa58c [file] [log] [blame]
<!DOCTYPE html>
<style>
.exists1, .exists2 { }
</style>
<script src="../../resources/js-test.js"></script>
<div id="target"></div>
<script>
description("Test that adding and removing class names with no matching selector does not cause a style recalc");
var target = document.getElementById('target');
function testClass(oldClasses, newClasses, needsRecalc)
{
target.className = oldClasses;
document.body.offsetTop;
target.className = newClasses;
shouldBe("internals.updateStyleAndReturnAffectedElementCount()", needsRecalc ? '1' : '0');
}
testClass('', 'exists1', true);
testClass('exists1', '', true);
testClass('', 'not-exists', false);
testClass('not-exists', '', false);
testClass('exists1', 'exists2', true);
testClass('exists1 exists2', 'exists2 exists1', false);
testClass('exists1 exists1', 'exists1 exists1', false);
testClass('exists1 exists1', 'exists1 exists1 doesnt-exist', false);
testClass('exists1 exists1 doesnt-exist', 'exists1 exists1', false);
testClass('exists1 exists1 doesnt-exist', 'exists1 doesnt-exist exists1', false);
testClass('exists1 doesnt-exist exists2 doesnt-exist exists1', 'doesnt-exist doesnt-exist2 exists2 exists1 doesnt-exist exists1', false);
</script>