| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <script src="../../../resources/js-test.js"></script> |
| </head> |
| <body> |
| <script> |
| |
| description("Tests that the background shorthand is computed properly.") |
| |
| var testContainer = document.createElement("div"); |
| testContainer.contentEditable = true; |
| document.body.appendChild(testContainer); |
| |
| testContainer.innerHTML = '<div id="test">hello</div>'; |
| |
| e = document.getElementById('test'); |
| computedStyle = window.getComputedStyle(e, null); |
| |
| function checkComputedStyleValue() { |
| var before = window.getComputedStyle(e, null).getPropertyValue('background'); |
| e.style.background = 'none'; |
| e.style.background = before; |
| return (window.getComputedStyle(e, null).getPropertyValue('background') == before); |
| } |
| |
| e.style.background = "red"; |
| shouldBeEqualToString("computedStyle.getPropertyValue('background')", 'rgb(255, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box'); |
| shouldBe("checkComputedStyleValue()", "true"); |
| |
| e.style.backgroundImage = "url(dummy://test.png)"; |
| shouldBeEqualToString("computedStyle.getPropertyValue('background')", 'rgb(255, 0, 0) url("dummy://test.png") repeat scroll 0% 0% / auto padding-box border-box'); |
| shouldBe("checkComputedStyleValue()", "true"); |
| |
| e.style.backgroundRepeat = "no-repeat"; |
| shouldBeEqualToString("computedStyle.getPropertyValue('background')", 'rgb(255, 0, 0) url("dummy://test.png") no-repeat scroll 0% 0% / auto padding-box border-box'); |
| shouldBe("checkComputedStyleValue()", "true"); |
| |
| e.style.backgroundAttachment = "fixed"; |
| shouldBeEqualToString("computedStyle.getPropertyValue('background')", 'rgb(255, 0, 0) url("dummy://test.png") no-repeat fixed 0% 0% / auto padding-box border-box'); |
| shouldBe("checkComputedStyleValue()", "true"); |
| |
| e.style.backgroundPosition = "right bottom"; |
| shouldBeEqualToString("computedStyle.getPropertyValue('background')", 'rgb(255, 0, 0) url("dummy://test.png") no-repeat fixed 100% 100% / auto padding-box border-box'); |
| shouldBe("checkComputedStyleValue()", "true"); |
| |
| e.style.backgroundSize = "cover"; |
| shouldBeEqualToString("computedStyle.getPropertyValue('background')", 'rgb(255, 0, 0) url("dummy://test.png") no-repeat fixed 100% 100% / cover padding-box border-box'); |
| shouldBe("checkComputedStyleValue()", "true"); |
| |
| e.style.backgroundOrigin = "content-box"; |
| shouldBeEqualToString("computedStyle.getPropertyValue('background')", 'rgb(255, 0, 0) url("dummy://test.png") no-repeat fixed 100% 100% / cover content-box border-box'); |
| shouldBe("checkComputedStyleValue()", "true"); |
| |
| e.style.backgroundClip = "padding-box"; |
| shouldBeEqualToString("computedStyle.getPropertyValue('background')", 'rgb(255, 0, 0) url("dummy://test.png") no-repeat fixed 100% 100% / cover content-box padding-box'); |
| shouldBe("checkComputedStyleValue()", "true"); |
| |
| e.style.background = "border-box padding-box url(dummy://test.png) green 45% / contain repeat fixed"; |
| shouldBeEqualToString("computedStyle.getPropertyValue('background')", 'rgb(0, 128, 0) url("dummy://test.png") repeat fixed 45% 50% / contain border-box padding-box'); |
| shouldBe("checkComputedStyleValue()", "true"); |
| |
| document.body.removeChild(testContainer); |
| |
| </script> |
| </body> |
| </html> |