Test to make sure background shorthand properties returns CSSValueList properly.

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


PASS computedStyle.getPropertyValue('background') is 'rgb(255, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box'
PASS computedStyle.getPropertyCSSValue('background').toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('background').cssText is 'rgb(255, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box'
PASS computedStyle.getPropertyCSSValue('background').length is 2
PASS computedStyle.getPropertyCSSValue('background').item(0).length is 5
PASS computedStyle.getPropertyCSSValue('background').item(1).length is 3
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().red.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 255
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().green.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 0
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().blue.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 0
PASS computedStyle.getPropertyCSSValue('background').item(0).item(1).getStringValue() is 'none'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(2).getStringValue() is 'repeat'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(3).getStringValue() is 'scroll'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).item(0).getFloatValue(CSSPrimitiveValue.CSS_PERCENTAGE) is 0
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).item(1).getFloatValue(CSSPrimitiveValue.CSS_PERCENTAGE) is 0
PASS computedStyle.getPropertyCSSValue('background').item(1).item(0).getStringValue() is 'auto'
PASS computedStyle.getPropertyCSSValue('background').item(1).item(1).getStringValue() is 'padding-box'
PASS computedStyle.getPropertyCSSValue('background').item(1).item(2).getStringValue() is 'border-box'
PASS checkComputedStyleValue() is true
PASS computedStyle.getPropertyValue('background') is 'rgb(255, 0, 0) url(dummy://test.png) repeat scroll 0% 0% / auto padding-box border-box'
PASS computedStyle.getPropertyCSSValue('background').toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('background').cssText is 'rgb(255, 0, 0) url(dummy://test.png) repeat scroll 0% 0% / auto padding-box border-box'
PASS computedStyle.getPropertyCSSValue('background').length is 2
PASS computedStyle.getPropertyCSSValue('background').item(0).length is 5
PASS computedStyle.getPropertyCSSValue('background').item(1).length is 3
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().red.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 255
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().green.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 0
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().blue.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 0
PASS computedStyle.getPropertyCSSValue('background').item(0).item(1).getStringValue() is 'dummy://test.png'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(2).getStringValue() is 'repeat'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(3).getStringValue() is 'scroll'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).item(0).getFloatValue(CSSPrimitiveValue.CSS_PERCENTAGE) is 0
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).item(1).getFloatValue(CSSPrimitiveValue.CSS_PERCENTAGE) is 0
PASS computedStyle.getPropertyCSSValue('background').item(1).item(0).getStringValue() is 'auto'
PASS computedStyle.getPropertyCSSValue('background').item(1).item(1).getStringValue() is 'padding-box'
PASS computedStyle.getPropertyCSSValue('background').item(1).item(2).getStringValue() is 'border-box'
PASS checkComputedStyleValue() is true
PASS computedStyle.getPropertyValue('background') is 'rgb(255, 0, 0) url(dummy://test.png) no-repeat scroll 0% 0% / auto padding-box border-box'
PASS computedStyle.getPropertyCSSValue('background').toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('background').cssText is 'rgb(255, 0, 0) url(dummy://test.png) no-repeat scroll 0% 0% / auto padding-box border-box'
PASS computedStyle.getPropertyCSSValue('background').length is 2
PASS computedStyle.getPropertyCSSValue('background').item(0).length is 5
PASS computedStyle.getPropertyCSSValue('background').item(1).length is 3
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().red.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 255
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().green.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 0
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().blue.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 0
PASS computedStyle.getPropertyCSSValue('background').item(0).item(1).getStringValue() is 'dummy://test.png'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(2).getStringValue() is 'no-repeat'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(3).getStringValue() is 'scroll'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).item(0).getFloatValue(CSSPrimitiveValue.CSS_PERCENTAGE) is 0
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).item(1).getFloatValue(CSSPrimitiveValue.CSS_PERCENTAGE) is 0
PASS computedStyle.getPropertyCSSValue('background').item(1).item(0).getStringValue() is 'auto'
PASS computedStyle.getPropertyCSSValue('background').item(1).item(1).getStringValue() is 'padding-box'
PASS computedStyle.getPropertyCSSValue('background').item(1).item(2).getStringValue() is 'border-box'
PASS checkComputedStyleValue() is true
PASS computedStyle.getPropertyValue('background') is 'rgb(255, 0, 0) url(dummy://test.png) no-repeat fixed 0% 0% / auto padding-box border-box'
PASS computedStyle.getPropertyCSSValue('background').toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('background').cssText is 'rgb(255, 0, 0) url(dummy://test.png) no-repeat fixed 0% 0% / auto padding-box border-box'
PASS computedStyle.getPropertyCSSValue('background').length is 2
PASS computedStyle.getPropertyCSSValue('background').item(0).length is 5
PASS computedStyle.getPropertyCSSValue('background').item(1).length is 3
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().red.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 255
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().green.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 0
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().blue.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 0
PASS computedStyle.getPropertyCSSValue('background').item(0).item(1).getStringValue() is 'dummy://test.png'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(2).getStringValue() is 'no-repeat'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(3).getStringValue() is 'fixed'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).item(0).getFloatValue(CSSPrimitiveValue.CSS_PERCENTAGE) is 0
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).item(1).getFloatValue(CSSPrimitiveValue.CSS_PERCENTAGE) is 0
PASS computedStyle.getPropertyCSSValue('background').item(1).item(0).getStringValue() is 'auto'
PASS computedStyle.getPropertyCSSValue('background').item(1).item(1).getStringValue() is 'padding-box'
PASS computedStyle.getPropertyCSSValue('background').item(1).item(2).getStringValue() is 'border-box'
PASS checkComputedStyleValue() is true
PASS computedStyle.getPropertyValue('background') is 'rgb(255, 0, 0) url(dummy://test.png) no-repeat fixed 100% 100% / auto padding-box border-box'
PASS computedStyle.getPropertyCSSValue('background').toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('background').cssText is 'rgb(255, 0, 0) url(dummy://test.png) no-repeat fixed 100% 100% / auto padding-box border-box'
PASS computedStyle.getPropertyCSSValue('background').length is 2
PASS computedStyle.getPropertyCSSValue('background').item(0).length is 5
PASS computedStyle.getPropertyCSSValue('background').item(1).length is 3
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().red.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 255
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().green.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 0
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().blue.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 0
PASS computedStyle.getPropertyCSSValue('background').item(0).item(1).getStringValue() is 'dummy://test.png'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(2).getStringValue() is 'no-repeat'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(3).getStringValue() is 'fixed'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).item(0).getFloatValue(CSSPrimitiveValue.CSS_PERCENTAGE) is 100
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).item(1).getFloatValue(CSSPrimitiveValue.CSS_PERCENTAGE) is 100
PASS computedStyle.getPropertyCSSValue('background').item(1).item(0).getStringValue() is 'auto'
PASS computedStyle.getPropertyCSSValue('background').item(1).item(1).getStringValue() is 'padding-box'
PASS computedStyle.getPropertyCSSValue('background').item(1).item(2).getStringValue() is 'border-box'
PASS checkComputedStyleValue() is true
PASS computedStyle.getPropertyValue('background') is 'rgb(255, 0, 0) url(dummy://test.png) no-repeat fixed 100% 100% / cover padding-box border-box'
PASS computedStyle.getPropertyCSSValue('background').toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('background').cssText is 'rgb(255, 0, 0) url(dummy://test.png) no-repeat fixed 100% 100% / cover padding-box border-box'
PASS computedStyle.getPropertyCSSValue('background').length is 2
PASS computedStyle.getPropertyCSSValue('background').item(0).length is 5
PASS computedStyle.getPropertyCSSValue('background').item(1).length is 3
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().red.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 255
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().green.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 0
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().blue.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 0
PASS computedStyle.getPropertyCSSValue('background').item(0).item(1).getStringValue() is 'dummy://test.png'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(2).getStringValue() is 'no-repeat'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(3).getStringValue() is 'fixed'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).item(0).getFloatValue(CSSPrimitiveValue.CSS_PERCENTAGE) is 100
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).item(1).getFloatValue(CSSPrimitiveValue.CSS_PERCENTAGE) is 100
PASS computedStyle.getPropertyCSSValue('background').item(1).item(0).getStringValue() is 'cover'
PASS computedStyle.getPropertyCSSValue('background').item(1).item(1).getStringValue() is 'padding-box'
PASS computedStyle.getPropertyCSSValue('background').item(1).item(2).getStringValue() is 'border-box'
PASS checkComputedStyleValue() is true
PASS computedStyle.getPropertyValue('background') is 'rgb(255, 0, 0) url(dummy://test.png) no-repeat fixed 100% 100% / cover content-box border-box'
PASS computedStyle.getPropertyCSSValue('background').toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('background').cssText is 'rgb(255, 0, 0) url(dummy://test.png) no-repeat fixed 100% 100% / cover content-box border-box'
PASS computedStyle.getPropertyCSSValue('background').length is 2
PASS computedStyle.getPropertyCSSValue('background').item(0).length is 5
PASS computedStyle.getPropertyCSSValue('background').item(1).length is 3
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().red.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 255
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().green.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 0
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().blue.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 0
PASS computedStyle.getPropertyCSSValue('background').item(0).item(1).getStringValue() is 'dummy://test.png'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(2).getStringValue() is 'no-repeat'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(3).getStringValue() is 'fixed'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).item(0).getFloatValue(CSSPrimitiveValue.CSS_PERCENTAGE) is 100
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).item(1).getFloatValue(CSSPrimitiveValue.CSS_PERCENTAGE) is 100
PASS computedStyle.getPropertyCSSValue('background').item(1).item(0).getStringValue() is 'cover'
PASS computedStyle.getPropertyCSSValue('background').item(1).item(1).getStringValue() is 'content-box'
PASS computedStyle.getPropertyCSSValue('background').item(1).item(2).getStringValue() is 'border-box'
PASS checkComputedStyleValue() is true
PASS computedStyle.getPropertyValue('background') is 'rgb(255, 0, 0) url(dummy://test.png) no-repeat fixed 100% 100% / cover content-box padding-box'
PASS computedStyle.getPropertyCSSValue('background').toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('background').cssText is 'rgb(255, 0, 0) url(dummy://test.png) no-repeat fixed 100% 100% / cover content-box padding-box'
PASS computedStyle.getPropertyCSSValue('background').length is 2
PASS computedStyle.getPropertyCSSValue('background').item(0).length is 5
PASS computedStyle.getPropertyCSSValue('background').item(1).length is 3
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().red.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 255
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().green.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 0
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().blue.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 0
PASS computedStyle.getPropertyCSSValue('background').item(0).item(1).getStringValue() is 'dummy://test.png'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(2).getStringValue() is 'no-repeat'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(3).getStringValue() is 'fixed'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).item(0).getFloatValue(CSSPrimitiveValue.CSS_PERCENTAGE) is 100
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).item(1).getFloatValue(CSSPrimitiveValue.CSS_PERCENTAGE) is 100
PASS computedStyle.getPropertyCSSValue('background').item(1).item(0).getStringValue() is 'cover'
PASS computedStyle.getPropertyCSSValue('background').item(1).item(1).getStringValue() is 'content-box'
PASS computedStyle.getPropertyCSSValue('background').item(1).item(2).getStringValue() is 'padding-box'
PASS checkComputedStyleValue() is true
PASS computedStyle.getPropertyValue('background') is 'rgb(0, 128, 0) url(dummy://test.png) repeat fixed 45% 50% / contain border-box padding-box'
PASS computedStyle.getPropertyCSSValue('background').toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('background').cssText is 'rgb(0, 128, 0) url(dummy://test.png) repeat fixed 45% 50% / contain border-box padding-box'
PASS computedStyle.getPropertyCSSValue('background').length is 2
PASS computedStyle.getPropertyCSSValue('background').item(0).length is 5
PASS computedStyle.getPropertyCSSValue('background').item(1).length is 3
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().red.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 0
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().green.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 128
PASS computedStyle.getPropertyCSSValue('background').item(0).item(0).getRGBColorValue().blue.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) is 0
PASS computedStyle.getPropertyCSSValue('background').item(0).item(1).getStringValue() is 'dummy://test.png'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(2).getStringValue() is 'repeat'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(3).getStringValue() is 'fixed'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).toString() is '[object CSSValueList]'
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).item(0).getFloatValue(CSSPrimitiveValue.CSS_PERCENTAGE) is 45
PASS computedStyle.getPropertyCSSValue('background').item(0).item(4).item(1).getFloatValue(CSSPrimitiveValue.CSS_PERCENTAGE) is 50
PASS computedStyle.getPropertyCSSValue('background').item(1).item(0).getStringValue() is 'contain'
PASS computedStyle.getPropertyCSSValue('background').item(1).item(1).getStringValue() is 'border-box'
PASS computedStyle.getPropertyCSSValue('background').item(1).item(2).getStringValue() is 'padding-box'
PASS checkComputedStyleValue() is true
PASS successfullyParsed is true

TEST COMPLETE

