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

