| OLD | NEW |
| 1 description("Test the parsing of the background-blend-mode property."); | 1 description("Test the parsing of the background-blend-mode property."); |
| 2 | 2 |
| 3 function jsWrapperClass(node) | |
| 4 { | |
| 5 if (!node) | |
| 6 return "[null]"; | |
| 7 var string = Object.prototype.toString.apply(node); | |
| 8 return string.substr(8, string.length - 9); | |
| 9 } | |
| 10 | |
| 11 function shouldBeType(expression, className, prototypeName, constructorName) | |
| 12 { | |
| 13 if (!prototypeName) | |
| 14 prototypeName = "Object"; | |
| 15 if (!constructorName) | |
| 16 constructorName = "Function"; | |
| 17 shouldBe("jsWrapperClass(" + expression + ")", "'" + className + "'"); | |
| 18 shouldBe("jsWrapperClass(" + expression + ".__proto__)", "'" + prototypeName
+ "'"); | |
| 19 shouldBe("jsWrapperClass(" + expression + ".constructor)", "'" + constructor
Name + "'"); | |
| 20 } | |
| 21 | |
| 22 // These have to be global for the test helpers to see them. | 3 // These have to be global for the test helpers to see them. |
| 23 var stylesheet, cssRule, declaration, blendModeRule, subRule; | 4 var stylesheet, cssRule, declaration, blendModeRule, subRule; |
| 24 var styleElement = document.createElement("style"); | 5 var styleElement = document.createElement("style"); |
| 25 document.head.appendChild(styleElement); | 6 document.head.appendChild(styleElement); |
| 26 stylesheet = styleElement.sheet; | 7 stylesheet = styleElement.sheet; |
| 27 | 8 |
| 28 function testBlendModeRule(description, rule, expectedLength, expectedValue, exp
ectedTypes, expectedTexts) | 9 function testBlendModeRule(description, rule, expectedLength, expectedValue, exp
ectedTypes, expectedTexts) |
| 29 { | 10 { |
| 30 debug(""); | 11 debug(""); |
| 31 debug(description + " : " + rule); | 12 debug(description + " : " + rule); |
| 32 | 13 |
| 33 stylesheet.insertRule("body { background-blend-mode: " + rule + "; }", 0); | 14 stylesheet.insertRule("body { background-blend-mode: " + rule + "; }", 0); |
| 34 cssRule = stylesheet.cssRules.item(0); | 15 cssRule = stylesheet.cssRules.item(0); |
| 35 | 16 |
| 36 shouldBe("cssRule.type", "1"); | 17 shouldBe("cssRule.type", "1"); |
| 37 | 18 |
| 38 declaration = cssRule.style; | 19 declaration = cssRule.style; |
| 39 shouldBe("declaration.length", "1"); | 20 shouldBe("declaration.length", "1"); |
| 40 shouldBe("declaration.getPropertyValue('background-blend-mode')", "'" + expe
ctedValue + "'"); | 21 shouldBe("declaration.getPropertyValue('background-blend-mode')", "'" + expe
ctedValue + "'"); |
| 41 | |
| 42 blendModeRule = declaration.getPropertyCSSValue('background-blend-mode'); | |
| 43 if(rule.indexOf(',') == -1) | |
| 44 shouldBeType("blendModeRule", "CSSPrimitiveValue"); | |
| 45 else | |
| 46 shouldBeType("blendModeRule", "CSSValueList"); | |
| 47 } | 22 } |
| 48 | 23 |
| 49 var blendmodes = ["normal", "multiply, screen", "screen, hue", "overlay, normal"
, "darken, lighten, normal, luminosity", "lighten", "color-dodge", "color-burn",
"hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "co
lor", "luminosity"]; | 24 var blendmodes = ["normal", "multiply, screen", "screen, hue", "overlay, normal"
, "darken, lighten, normal, luminosity", "lighten", "color-dodge", "color-burn",
"hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "co
lor", "luminosity"]; |
| 50 | 25 |
| 51 for(x in blendmodes) | 26 for(x in blendmodes) |
| 52 testBlendModeRule("Basic reference", blendmodes[x], 1, blendmodes[x]); | 27 testBlendModeRule("Basic reference", blendmodes[x], 1, blendmodes[x]); |
| 53 | 28 |
| 54 | 29 |
| 55 successfullyParsed = true; | 30 successfullyParsed = true; |
| OLD | NEW |