Tests background shortand property with background-size

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


PASS e.style.background is 'url("dummy://test.png") center center / cover no-repeat border-box border-box red'
PASS e.style.backgroundSize is 'cover'
PASS checkStyle() is true
PASS computedStyle.getPropertyValue("background") is 'rgb(255, 0, 0) url("dummy://test.png") no-repeat scroll 50% 50% / cover border-box border-box'
PASS computedStyle.getPropertyValue("background-size") is 'cover'
PASS checkComputedStyleValue() is true

PASS e.style.background is 'url("dummy://test.png") 20px center / contain no-repeat padding-box padding-box red'
PASS e.style.backgroundSize is 'contain'
PASS checkStyle() is true
PASS computedStyle.getPropertyValue("background") is 'rgb(255, 0, 0) url("dummy://test.png") no-repeat scroll 20px 50% / contain padding-box padding-box'
PASS computedStyle.getPropertyValue("background-size") is 'contain'
PASS checkComputedStyleValue() is true

PASS e.style.background is 'url("dummy://test.png") 50px 60px / 50% 75% no-repeat red'
PASS e.style.backgroundSize is '50% 75%'
PASS checkStyle() is true
PASS computedStyle.getPropertyValue("background") is 'rgb(255, 0, 0) url("dummy://test.png") no-repeat scroll 50px 60px / 50% 75% padding-box border-box'
PASS computedStyle.getPropertyValue("background-size") is '50% 75%'
PASS checkComputedStyleValue() is true

PASS e.style.background is 'url("dummy://test.png") left top / 100px 200px repeat border-box content-box red'
PASS e.style.backgroundSize is '100px 200px'
PASS checkStyle() is true
PASS computedStyle.getPropertyValue("background") is 'rgb(255, 0, 0) url("dummy://test.png") repeat scroll 0% 0% / 100px 200px border-box content-box'
PASS computedStyle.getPropertyValue("background-size") is '100px 200px'
PASS checkComputedStyleValue() is true

PASS e.style.background is 'url("dummy://test.png") 50% center / auto repeat content-box padding-box red'
PASS e.style.backgroundSize is 'auto'
PASS checkStyle() is true
PASS computedStyle.getPropertyValue("background") is 'rgb(255, 0, 0) url("dummy://test.png") repeat scroll 50% 50% / auto content-box padding-box'
PASS computedStyle.getPropertyValue("background-size") is 'auto'
PASS checkComputedStyleValue() is true

PASS e.style.background is 'url("dummy://test.png") 50px 60px / 50% no-repeat fixed red'
PASS e.style.backgroundSize is '50%'
PASS checkStyle() is true
PASS computedStyle.getPropertyValue("background") is 'rgb(255, 0, 0) url("dummy://test.png") no-repeat fixed 50px 60px / 50% padding-box border-box'
PASS computedStyle.getPropertyValue("background-size") is '50%'
PASS checkComputedStyleValue() is true

PASS e.style.background is 'url("dummy://test.png") left top / 100px repeat scroll padding-box border-box red'
PASS e.style.backgroundSize is '100px'
PASS checkStyle() is true
PASS computedStyle.getPropertyValue("background") is 'rgb(255, 0, 0) url("dummy://test.png") repeat scroll 0% 0% / 100px padding-box border-box'
PASS computedStyle.getPropertyValue("background-size") is '100px'
PASS checkComputedStyleValue() is true

PASS e.style.background is 'url("dummy://test.png") 50% center / auto repeat fixed content-box content-box red'
PASS e.style.backgroundSize is 'auto'
PASS checkStyle() is true
PASS computedStyle.getPropertyValue("background") is 'rgb(255, 0, 0) url("dummy://test.png") repeat fixed 50% 50% / auto content-box content-box'
PASS computedStyle.getPropertyValue("background-size") is 'auto'
PASS checkComputedStyleValue() is true

PASS e.style.background is 'left top / 50%'
PASS e.style.backgroundSize is '50%'
PASS checkStyle() is true
PASS computedStyle.getPropertyValue("background") is 'rgba(0, 0, 0, 0) none repeat scroll 0% 0% / 50% padding-box border-box'
PASS computedStyle.getPropertyValue("background-size") is '50%'
PASS checkComputedStyleValue() is true

PASS e.style.background is 'fixed red'
PASS e.style.backgroundSize is 'initial'
PASS checkStyle() is true
PASS computedStyle.getPropertyValue("background") is 'rgb(255, 0, 0) none repeat fixed 0% 0% / auto padding-box border-box'
PASS computedStyle.getPropertyValue("background-size") is 'auto'
PASS checkComputedStyleValue() is true

PASS e.style.background is ''
PASS e.style.backgroundSize is ''
PASS checkStyle() is true
PASS computedStyle.getPropertyValue("background") is 'rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box'
PASS computedStyle.getPropertyValue("background-size") is 'auto'
PASS checkComputedStyleValue() is true

PASS e.style.background is ''
PASS e.style.backgroundSize is ''
PASS checkStyle() is true
PASS computedStyle.getPropertyValue("background") is 'rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box'
PASS computedStyle.getPropertyValue("background-size") is 'auto'
PASS checkComputedStyleValue() is true

PASS e.style.background is ''
PASS e.style.backgroundSize is ''
PASS checkStyle() is true
PASS computedStyle.getPropertyValue("background") is 'rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box'
PASS computedStyle.getPropertyValue("background-size") is 'auto'
PASS checkComputedStyleValue() is true

PASS successfullyParsed is true

TEST COMPLETE

