Test to make sure padding shorthand property returns CSSValueList properly.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS computedStyle.getPropertyValue('padding') is '10px 5px 4px 3px'
PASS computedStyle.getPropertyCSSValue('padding').toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('padding').length is 4
PASS computedStyle.getPropertyCSSValue('padding').cssText is '10px 5px 4px 3px'
PASS computedStyle.getPropertyCSSValue('padding').item(0).getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 10
PASS computedStyle.getPropertyCSSValue('padding').item(1).getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 5
PASS computedStyle.getPropertyCSSValue('padding').item(2).getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 4
PASS computedStyle.getPropertyCSSValue('padding').item(3).getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 3
PASS computedStyle.getPropertyValue('padding') is '64px 80px 96px 112px'
PASS computedStyle.getPropertyCSSValue('padding').toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('padding').length is 4
PASS computedStyle.getPropertyCSSValue('padding').cssText is '64px 80px 96px 112px'
PASS computedStyle.getPropertyCSSValue('padding').item(0).getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 64
PASS computedStyle.getPropertyCSSValue('padding').item(1).getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 80
PASS computedStyle.getPropertyCSSValue('padding').item(2).getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 96
PASS computedStyle.getPropertyCSSValue('padding').item(3).getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 112
PASS computedStyle.getPropertyValue('padding') is '5px 6px 7px 8px'
PASS computedStyle.getPropertyCSSValue('padding').toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('padding').length is 4
PASS computedStyle.getPropertyCSSValue('padding').cssText is '5px 6px 7px 8px'
PASS computedStyle.getPropertyCSSValue('padding').item(0).getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 5
PASS computedStyle.getPropertyCSSValue('padding').item(1).getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 6
PASS computedStyle.getPropertyCSSValue('padding').item(2).getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 7
PASS computedStyle.getPropertyCSSValue('padding').item(3).getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 8
PASS successfullyParsed is true

TEST COMPLETE

