| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>CSSOM: CSSStyleDeclaration (set|remove)PropertyValue sets/removes shorthand properties</title> |
| <link rel="author" title="Paul Irish" href="mailto:paul.irish@gmail.com"> |
| <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssstyledeclaration-interface"> |
| |
| <link rel="source" href="http://trac.webkit.org/export/120528/trunk/LayoutTests/fast/css/cssom-remove-shorthand-property.html"> |
| <meta name="flags" content="dom"> |
| |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| </head> |
| |
| <body> |
| <div id="log"></div> |
| |
| <div id="box"></div> |
| |
| <script> |
| shorthandProperties = [ |
| "font", |
| "border-top", |
| "border-right", |
| "border-bottom", |
| "border-left", |
| "border", |
| "border-color", |
| "border-style", |
| "border-width", |
| "background-position", |
| "background-repeat", |
| "border-spacing", |
| "list-style", |
| "margin", |
| "outline", |
| "padding", |
| "background", |
| "overflow", |
| "border-radius" |
| ]; |
| |
| element = document.createElement('span'); |
| |
| function canSetProperty(propertyName, priority) { |
| element.style.setProperty(propertyName, 'initial', priority); |
| return element.style.getPropertyValue(propertyName) == 'initial'; |
| } |
| |
| function canRemoveProperty(propertyName) { |
| element.style.removeProperty(propertyName); |
| return element.style.getPropertyValue(propertyName) != 'initial'; |
| } |
| |
| for (i = 0; i < shorthandProperties.length; ++i) { |
| var propertyName = shorthandProperties[i]; |
| |
| test(function(){ |
| assert_true(canSetProperty(propertyName, ''), 'can setPropertyValue with shorthand'); |
| }, 'shorthand ' + propertyName + ' can be set with setProperty'); |
| |
| test(function(){ |
| assert_true(canRemoveProperty(propertyName), 'can setPropertyValue with shorthand'); |
| }, 'shorthand ' + propertyName + ' can be removed with removeProperty'); |
| |
| test(function(){ |
| assert_true(canSetProperty(propertyName, 'important'), 'can setPropertyValue with shorthand'); |
| }, 'shorthand ' + propertyName + ' can be set with setProperty and priority !important'); |
| |
| test(function(){ |
| assert_true(canRemoveProperty(propertyName), 'can setPropertyValue with shorthand'); |
| }, 'shorthand ' + propertyName + ' can be removed with removeProperty even when set with !important'); |
| |
| } |
| </script> |
| </body> |
| </html> |