| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <script src="../../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <script> |
| |
| description("Test to make sure border shorthand properties returns CSSValueList 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); |
| |
| var properties = new Array("border-bottom","border-top","border-right", "border-left"); |
| |
| for (i = 0; i < properties.length; ++i) { |
| |
| e.style.cssText = properties[i] + ": 10px solid red;"; |
| shouldBe("computedStyle.getPropertyValue('" + properties[i] + "')", "'10px solid rgb(255, 0, 0)'"); |
| shouldBe("computedStyle.getPropertyCSSValue('" + properties[i] + "').toString()", "'[object CSSValueList]'"); |
| shouldBe("computedStyle.getPropertyCSSValue('" + properties[i] + "').cssText", "'10px solid rgb(255, 0, 0)'"); |
| shouldBe("computedStyle.getPropertyCSSValue('" + properties[i] + "').length", "3"); |
| shouldBe("computedStyle.getPropertyCSSValue('" + properties[i] + "').item(0).getFloatValue(CSSPrimitiveValue.CSS_PX)", "10"); |
| shouldBe("computedStyle.getPropertyCSSValue('" + properties[i] + "').item(1).getStringValue()", "'solid'"); |
| shouldBe("computedStyle.getPropertyCSSValue('" + properties[i] + "').item(2).getRGBColorValue().red.getFloatValue(CSSPrimitiveValue.CSS_NUMBER)", "255"); |
| shouldBe("computedStyle.getPropertyCSSValue('" + properties[i] + "').item(2).getRGBColorValue().green.getFloatValue(CSSPrimitiveValue.CSS_NUMBER)", "0"); |
| shouldBe("computedStyle.getPropertyCSSValue('" + properties[i] + "').item(2).getRGBColorValue().blue.getFloatValue(CSSPrimitiveValue.CSS_NUMBER)", "0"); |
| |
| e.style.cssText = properties[i] + ": 20em solid blue;"; |
| shouldBe("computedStyle.getPropertyValue('" + properties[i] + "')", "'320px solid rgb(0, 0, 255)'"); |
| shouldBe("computedStyle.getPropertyCSSValue('" + properties[i] + "').toString()", "'[object CSSValueList]'"); |
| shouldBe("computedStyle.getPropertyCSSValue('" + properties[i] + "').cssText", "'320px solid rgb(0, 0, 255)'"); |
| shouldBe("computedStyle.getPropertyCSSValue('" + properties[i] + "').length", "3"); |
| shouldBe("computedStyle.getPropertyCSSValue('" + properties[i] + "').item(0).getFloatValue(CSSPrimitiveValue.CSS_PX)", "320"); |
| shouldBe("computedStyle.getPropertyCSSValue('" + properties[i] + "').item(1).getStringValue()", "'solid'"); |
| shouldBe("computedStyle.getPropertyCSSValue('" + properties[i] + "').item(2).getRGBColorValue().red.getFloatValue(CSSPrimitiveValue.CSS_NUMBER)", "0"); |
| shouldBe("computedStyle.getPropertyCSSValue('" + properties[i] + "').item(2).getRGBColorValue().green.getFloatValue(CSSPrimitiveValue.CSS_NUMBER)", "0"); |
| shouldBe("computedStyle.getPropertyCSSValue('" + properties[i] + "').item(2).getRGBColorValue().blue.getFloatValue(CSSPrimitiveValue.CSS_NUMBER)", "255"); |
| |
| e.style.cssText = properties[i] + ": 10px none green;"; |
| shouldBe("computedStyle.getPropertyValue('" + properties[i] + "')", "'0px none rgb(0, 128, 0)'"); |
| shouldBe("computedStyle.getPropertyCSSValue('" + properties[i] + "').toString()", "'[object CSSValueList]'"); |
| shouldBe("computedStyle.getPropertyCSSValue('" + properties[i] + "').cssText", "'0px none rgb(0, 128, 0)'"); |
| shouldBe("computedStyle.getPropertyCSSValue('" + properties[i] + "').length", "3"); |
| shouldBe("computedStyle.getPropertyCSSValue('" + properties[i] + "').item(0).getFloatValue(CSSPrimitiveValue.CSS_PX)", "0"); |
| shouldBe("computedStyle.getPropertyCSSValue('" + properties[i] + "').item(1).getStringValue()", "'none'"); |
| shouldBe("computedStyle.getPropertyCSSValue('" + properties[i] + "').item(2).getRGBColorValue().red.getFloatValue(CSSPrimitiveValue.CSS_NUMBER)", "0"); |
| shouldBe("computedStyle.getPropertyCSSValue('" + properties[i] + "').item(2).getRGBColorValue().green.getFloatValue(CSSPrimitiveValue.CSS_NUMBER)", "128"); |
| shouldBe("computedStyle.getPropertyCSSValue('" + properties[i] + "').item(2).getRGBColorValue().blue.getFloatValue(CSSPrimitiveValue.CSS_NUMBER)", "0"); |
| |
| } |
| |
| e.style.cssText = ""; |
| e.style.border = "20em solid red"; |
| shouldBe("computedStyle.getPropertyValue('border')", "'320px solid rgb(255, 0, 0)'"); |
| shouldBe("computedStyle.getPropertyCSSValue('border').toString()", "'[object CSSValueList]'"); |
| shouldBe("computedStyle.getPropertyCSSValue('border').cssText", "'320px solid rgb(255, 0, 0)'"); |
| shouldBe("computedStyle.getPropertyCSSValue('border').length", "3"); |
| shouldBe("computedStyle.getPropertyCSSValue('border').item(0).getFloatValue(CSSPrimitiveValue.CSS_PX)", "320"); |
| shouldBe("computedStyle.getPropertyCSSValue('border').item(1).getStringValue()", "'solid'"); |
| shouldBe("computedStyle.getPropertyCSSValue('border').item(2).getRGBColorValue().red.getFloatValue(CSSPrimitiveValue.CSS_NUMBER)", "255"); |
| shouldBe("computedStyle.getPropertyCSSValue('border').item(2).getRGBColorValue().green.getFloatValue(CSSPrimitiveValue.CSS_NUMBER)", "0"); |
| shouldBe("computedStyle.getPropertyCSSValue('border').item(2).getRGBColorValue().blue.getFloatValue(CSSPrimitiveValue.CSS_NUMBER)", "0"); |
| |
| |
| e.style.border = "20em solid red"; |
| e.style.borderTop = "10px groove blue"; |
| shouldBe("computedStyle.getPropertyValue('border')", "''"); |
| |
| |
| document.body.removeChild(testContainer); |
| |
| </script> |
| <script src="../../../resources/js-test-post.js"></script> |
| </body> |
| </html> |