<!doctype html>
<html>
<head>
<style type="text/css">
td {
display: table-cell;
width: 200px;
height: 80px;
border: 1px solid #ccc;
text-align: center;
vertical-align: middle;
}
</style>
<script src="../../resources/js-test.js"></script>
</head>
<body>
<table id="table">
<tr>
<td id="elementWithoutStyleAttribute">no HTML style attribute, no get/setAttribute</td>
<td id="elementWithEmptyStyleAttribute" style="">empty HTML style attribute, no get/setAttribute</td>
<td id="elementWithStyleAttribute" style="opacity: 1;">non-empty HTML style attribute, no get/setAttribute</td>
</tr>
<tr>
<td id="elementWithoutStyleAttribute2">no HTML style attribute, getAttribute before modifying IDL attribute</td>
<td id="elementWithoutStyleAttribute3">no HTML style attribute, getAttribute after modifying IDL attribute</td>
<td id="elementWithoutStyleAttribute4">no HTML style attribute, setAttribute before removeAttribute</td>
</tr>
</table>
<div id="console"></div>
<script>
description("[bug 99295] removeAttribute('style') not working in certain circumstances. If this test passes, all backgroundColors are rgba(0, 0, 0, 0), i.e. all styles are removed.");
var elementWithoutStyleAttribute = $('elementWithoutStyleAttribute'),
elementWithEmptyStyleAttribute = $('elementWithEmptyStyleAttribute'),
elementWithStyleAttribute = $('elementWithStyleAttribute'),
elementWithoutStyleAttribute2 = $('elementWithoutStyleAttribute2'),
elementWithoutStyleAttribute3 = $('elementWithoutStyleAttribute3'),
elementWithoutStyleAttribute4 = $('elementWithoutStyleAttribute4');
shouldBe("elementWithoutStyleAttribute.style.backgroundColor = 'red'; elementWithoutStyleAttribute.removeAttribute('style'); getComputedStyle(elementWithoutStyleAttribute).backgroundColor", '"rgba(0, 0, 0, 0)"');
elementWithEmptyStyleAttribute.style.backgroundColor = 'red';
elementWithEmptyStyleAttribute.removeAttribute('style');
shouldBe("getComputedStyle(elementWithEmptyStyleAttribute).backgroundColor", '"rgba(0, 0, 0, 0)"');
elementWithStyleAttribute.style.backgroundColor = 'red';
elementWithStyleAttribute.removeAttribute('style');
shouldBe("getComputedStyle(elementWithStyleAttribute).backgroundColor", '"rgba(0, 0, 0, 0)"');
shouldBeNull("elementWithoutStyleAttribute2.getAttribute('style')");
shouldBe("elementWithoutStyleAttribute2.style.backgroundColor = 'red'; elementWithoutStyleAttribute2.removeAttribute('style'); getComputedStyle(elementWithoutStyleAttribute2).backgroundColor", '"rgba(0, 0, 0, 0)"');
elementWithoutStyleAttribute3.style.backgroundColor = 'red';
shouldBe("elementWithoutStyleAttribute3.getAttribute('style')", '"background-color: red;"');
elementWithoutStyleAttribute3.removeAttribute('style');
shouldBe("getComputedStyle(elementWithoutStyleAttribute3).backgroundColor", '"rgba(0, 0, 0, 0)"');
shouldBe("elementWithoutStyleAttribute4.style.backgroundColor = 'red'; elementWithoutStyleAttribute4.setAttribute('style', ''); elementWithoutStyleAttribute4.removeAttribute('style'); getComputedStyle(elementWithoutStyleAttribute4).backgroundColor", '"rgba(0, 0, 0, 0)"');
function $(id) {
return document.getElementById(id);
}
document.getElementById('table').innerHTML = '';
</script>
</body>
</html>