| /* |
| * Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| * for details. All rights reserved. Use of this source code is governed by a |
| * BSD-style license that can be found in the LICENSE file. |
| */ |
| /** |
| * @description Test to make sure background-position is parsed correctly. |
| */ |
| import "dart:html"; |
| import "../../testcommon.dart"; |
| import "pwd.dart"; |
| |
| main() { |
| var testContainer = document.createElement("div"); |
| document.body.append(testContainer); |
| |
| testContainer.innerHtml = '<div style="width:500px;height:500px"><div id="test">hello</div></div>'; |
| |
| var e = document.getElementById('test'); |
| var style = e.style; |
| var computedStyle = e.getComputedStyle(); |
| |
| style.backgroundImage = "url($root/resources/diamond.png)"; |
| style.backgroundRepeat = "no-repeat"; |
| |
| debug("background-position with one value"); |
| // Initial test. |
| shouldBe(computedStyle.backgroundPosition, '0% 0%'); |
| |
| style.backgroundPosition = "70%"; |
| // Second value is assuming to be 'center' |
| shouldBe(style.backgroundPosition, '70% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '70% 50%'); |
| |
| style.backgroundPosition = "84px"; |
| shouldBe(style.backgroundPosition, '84px 50%'); |
| shouldBe(computedStyle.backgroundPosition, '84px 50%'); |
| |
| style.backgroundPosition = "left"; |
| shouldBe(style.backgroundPosition, '0% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '0% 50%'); |
| |
| style.backgroundPosition = "right"; |
| shouldBe(style.backgroundPosition, '100% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '100% 50%'); |
| |
| style.backgroundPosition = "bottom"; |
| shouldBe(style.backgroundPosition, '50% 100%'); |
| shouldBe(computedStyle.backgroundPosition, '50% 100%'); |
| |
| style.backgroundPosition = "top"; |
| shouldBe(style.backgroundPosition, '50% 0%'); |
| shouldBe(computedStyle.backgroundPosition, '50% 0%'); |
| |
| style.backgroundPosition = "center"; |
| shouldBe(style.backgroundPosition, '50% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '50% 50%'); |
| |
| debug("background-position with two values"); |
| style.backgroundPosition = "left bottom"; |
| shouldBe(style.backgroundPosition, '0% 100%'); |
| shouldBe(computedStyle.backgroundPosition, '0% 100%'); |
| |
| style.backgroundPosition = "bottom left"; |
| shouldBe(style.backgroundPosition, '0% 100%'); |
| shouldBe(computedStyle.backgroundPosition, '0% 100%'); |
| |
| style.backgroundPosition = "100% bottom"; |
| shouldBe(style.backgroundPosition, '100% 100%'); |
| shouldBe(computedStyle.backgroundPosition, '100% 100%'); |
| |
| style.backgroundPosition = "100% top"; |
| shouldBe(style.backgroundPosition, '100% 0%'); |
| shouldBe(computedStyle.backgroundPosition, '100% 0%'); |
| |
| style.backgroundPosition = "54px bottom"; |
| shouldBe(style.backgroundPosition, '54px 100%'); |
| shouldBe(computedStyle.backgroundPosition, '54px 100%'); |
| |
| style.backgroundPosition = "center center"; |
| shouldBe(style.backgroundPosition, '50% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '50% 50%'); |
| |
| style.backgroundPosition = "5% bottom"; |
| shouldBe(style.backgroundPosition, '5% 100%'); |
| shouldBe(computedStyle.backgroundPosition, '5% 100%'); |
| |
| style.backgroundPosition = "30pt -20px"; |
| shouldBe(style.backgroundPosition, '30pt -20px'); |
| shouldBe(computedStyle.backgroundPosition, '40px -20px'); |
| |
| style.backgroundPosition = "right center"; |
| shouldBe(style.backgroundPosition, '100% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '100% 50%'); |
| |
| style.backgroundPosition = "100% 0"; |
| shouldBe(style.backgroundPosition, '100% 0px'); |
| shouldBe(computedStyle.backgroundPosition, '100% 0px'); |
| |
| style.backgroundPosition = "center right"; |
| shouldBe(style.backgroundPosition, '100% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '100% 50%'); |
| |
| style.backgroundPosition = "center 50%"; |
| shouldBe(style.backgroundPosition, '50% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '50% 50%'); |
| |
| style.backgroundPosition = "center left"; |
| shouldBe(style.backgroundPosition, '0% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '0% 50%'); |
| |
| style.backgroundPosition = "-20% center"; |
| shouldBe(style.backgroundPosition, '-20% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '-20% 50%'); |
| |
| style.backgroundPosition = "top right"; |
| shouldBe(style.backgroundPosition, '100% 0%'); |
| shouldBe(computedStyle.backgroundPosition, '100% 0%'); |
| |
| style.backgroundPosition = "50% center"; |
| shouldBe(style.backgroundPosition, '50% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '50% 50%'); |
| |
| debug("background-position invalid with one or two values, no change expected"); |
| style.backgroundPosition = "5 right"; |
| shouldBe(style.backgroundPosition, '50% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '50% 50%'); |
| |
| style.backgroundPosition = "0 right"; |
| shouldBe(style.backgroundPosition, '50% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '50% 50%'); |
| |
| style.backgroundPosition = "0px right"; |
| shouldBe(style.backgroundPosition, '50% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '50% 50%'); |
| |
| style.backgroundPosition = "top 108px"; |
| shouldBe(style.backgroundPosition, '50% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '50% 50%'); |
| |
| style.backgroundPosition = "top 100%"; |
| shouldBe(style.backgroundPosition, '50% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '50% 50%'); |
| |
| style.backgroundPosition = "60 50%"; |
| shouldBe(style.backgroundPosition, '50% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '50% 50%'); |
| |
| style.backgroundPosition = "hidden"; |
| shouldBe(style.backgroundPosition, '50% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '50% 50%'); |
| |
| style.backgroundPosition = "hidden solid"; |
| shouldBe(style.backgroundPosition, '50% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '50% 50%'); |
| |
| style.backgroundPosition = "bottombottom"; |
| shouldBe(style.backgroundPosition, '50% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '50% 50%'); |
| |
| style.backgroundPosition = "left left"; |
| shouldBe(style.backgroundPosition, '50% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '50% 50%'); |
| |
| style.backgroundPosition = "left right"; |
| shouldBe(style.backgroundPosition, '50% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '50% 50%'); |
| |
| style.backgroundPosition = "top top"; |
| shouldBe(style.backgroundPosition, '50% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '50% 50%'); |
| |
| style.backgroundPosition = "50% left"; |
| shouldBe(style.backgroundPosition, '50% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '50% 50%'); |
| |
| style.backgroundPosition = "50"; |
| shouldBe(style.backgroundPosition, '50% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '50% 50%'); |
| |
| style.backgroundPosition = "1px+1px"; |
| shouldBe(style.backgroundPosition, '1px 1px'); |
| shouldBe(computedStyle.backgroundPosition, '1px 1px'); |
| |
| debug("background-position with CSS3 comma separator, one or two values"); |
| style.backgroundImage = "url($root/resources/diamond.png), url($root/resources/ring.png)"; |
| style.backgroundRepeat = "no-repeat"; |
| |
| style.backgroundPosition = "50%, 100%"; |
| shouldBe(style.backgroundPosition, '50% 50%, 100% 50%'); |
| shouldBe(computedStyle.backgroundPosition, '50% 50%, 100% 50%'); |
| |
| style.backgroundPosition = "top, bottom"; |
| shouldBe(style.backgroundPosition, '50% 0%, 50% 100%'); |
| shouldBe(computedStyle.backgroundPosition, '50% 0%, 50% 100%'); |
| |
| style.backgroundPosition = "right center, 5px bottom"; |
| shouldBe(style.backgroundPosition, '100% 50%, 5px 100%'); |
| shouldBe(computedStyle.backgroundPosition, '100% 50%, 5px 100%'); |
| |
| style.backgroundPosition = "top left, bottom right"; |
| shouldBe(style.backgroundPosition, '0% 0%, 100% 100%'); |
| shouldBe(computedStyle.backgroundPosition, '0% 0%, 100% 100%'); |
| |
| debug("background-position with CSS3 comma separator, with invalid one or two values, no change expected"); |
| style.backgroundPosition = "0 center, right right"; |
| shouldBe(style.backgroundPosition, '0% 0%, 100% 100%'); |
| shouldBe(computedStyle.backgroundPosition, '0% 0%, 100% 100%'); |
| |
| style.backgroundPosition = "center right, right right"; |
| shouldBe(style.backgroundPosition, '0% 0%, 100% 100%'); |
| shouldBe(computedStyle.backgroundPosition, '0% 0%, 100% 100%'); |
| |
| style.backgroundPosition = "center 20px, solid 20px"; |
| shouldBe(style.backgroundPosition, '0% 0%, 100% 100%'); |
| shouldBe(computedStyle.backgroundPosition, '0% 0%, 100% 100%'); |
| |
| debug("background-position with CSS3 four values"); |
| style.backgroundImage = "url($root/resources/diamond.png)"; |
| style.backgroundPosition = "left 10px top 15px"; |
| shouldBe(style.backgroundPosition, 'left 10px top 15px'); |
| shouldBe(computedStyle.backgroundPosition, 'left 10px top 15px'); |
| |
| style.backgroundPosition = "left 10% top 30%"; |
| shouldBe(style.backgroundPosition, 'left 10% top 30%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 10% top 30%'); |
| |
| style.backgroundPosition = "top 10% left 30%"; |
| shouldBe(style.backgroundPosition, 'left 30% top 10%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 30% top 10%'); |
| |
| style.backgroundPosition = "right top 15px"; |
| shouldBe(style.backgroundPosition, 'right 0% top 15px'); |
| shouldBe(computedStyle.backgroundPosition, 'right 0% top 15px'); |
| |
| style.backgroundPosition = "left 10px center"; |
| shouldBe(style.backgroundPosition, 'left 10px top 50%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 10px top 50%'); |
| |
| style.backgroundPosition = "center top 20px"; |
| shouldBe(style.backgroundPosition, 'left 50% top 20px'); |
| shouldBe(computedStyle.backgroundPosition, 'left 50% top 20px'); |
| |
| style.backgroundPosition = "top 20px center"; |
| shouldBe(style.backgroundPosition, 'left 50% top 20px'); |
| shouldBe(computedStyle.backgroundPosition, 'left 50% top 20px'); |
| |
| style.backgroundPosition = "center left 30px"; |
| shouldBe(style.backgroundPosition, 'left 30px top 50%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 30px top 50%'); |
| |
| style.backgroundPosition = ""; |
| shouldBe(style.backgroundPosition, ''); |
| shouldBe(computedStyle.backgroundPosition, '0% 0%'); |
| |
| style.backgroundPosition = "left 20% top"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| debug("background-position with CSS3 invalid four values, no change expected"); |
| style.backgroundPosition = "left center top"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "0px right top"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "left center top center"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "left center top 20%"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "center bottom top 20%"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "right bottom top"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "right bottom solid"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "20px bottom top"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "20px bottom hidden"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "solid dotted bottom top"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "top top top top"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "left 0px right 20%"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "left 30% top 20% center"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "20px 30% bottom"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "top 0px bottom"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "left 0px right"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "top 0px bottom 30px top"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "left 10px center 15px"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "left 10px top center"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "center right top 20px"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "center 10px center 10px"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "top center center"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "center 10px center"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "center center 10px"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "center 0px left 20%"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "left center top"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "center center center"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "top left 50% 50%"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| style.backgroundPosition = "center center center center"; |
| shouldBe(style.backgroundPosition, 'left 20% top 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'left 20% top 0%'); |
| |
| debug("background-position with CSS3 four values and comma"); |
| style.backgroundImage = "url($root/resources/diamond.png), url($root/resources/ring.png)"; |
| |
| style.backgroundPosition = "center, left bottom 20px"; |
| shouldBe(style.backgroundPosition, '50% 50%, left 0% bottom 20px'); |
| shouldBe(computedStyle.backgroundPosition, '50% 50%, left 0% bottom 20px'); |
| |
| style.backgroundPosition = "right 20px bottom 20px, center left"; |
| shouldBe(style.backgroundPosition, 'right 20px bottom 20px, 0% 50%'); |
| shouldBe(computedStyle.backgroundPosition, 'right 20px bottom 20px, 0% 50%'); |
| |
| style.backgroundPosition = "left 10px top 15px, right 20% bottom 20px"; |
| shouldBe(style.backgroundPosition, 'left 10px top 15px, right 20% bottom 20px'); |
| shouldBe(computedStyle.backgroundPosition, 'left 10px top 15px, right 20% bottom 20px'); |
| |
| style.backgroundPosition = "left 10% top, top 0px right"; |
| shouldBe(style.backgroundPosition, 'left 10% top 0%, right 0% top 0px'); |
| shouldBe(computedStyle.backgroundPosition, 'left 10% top 0%, right 0% top 0px'); |
| |
| style.backgroundPosition = "right top 15px, bottom right 20px"; |
| shouldBe(style.backgroundPosition, 'right 0% top 15px, right 20px bottom 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'right 0% top 15px, right 20px bottom 0%'); |
| |
| debug("background-position with invalid CSS3 four values and comma, no change expected"); |
| style.backgroundPosition = "right top 15px, left right 20px"; |
| shouldBe(style.backgroundPosition, 'right 0% top 15px, right 20px bottom 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'right 0% top 15px, right 20px bottom 0%'); |
| |
| style.backgroundPosition = "right left 15px, left bottom 20px"; |
| shouldBe(style.backgroundPosition, 'right 0% top 15px, right 20px bottom 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'right 0% top 15px, right 20px bottom 0%'); |
| |
| style.backgroundPosition = "solid, left bottom 20px"; |
| shouldBe(style.backgroundPosition, 'right 0% top 15px, right 20px bottom 0%'); |
| shouldBe(computedStyle.backgroundPosition, 'right 0% top 15px, right 20px bottom 0%'); |
| |
| debug("background-position inside the background shorthand"); |
| style.background = "top 10% left 30% / 10em gray round fixed border-box"; |
| shouldBe(style.background, 'left 30% top 10% / 10em round fixed border-box border-box gray'); |
| shouldBe(computedStyle.background, 'rgb(128, 128, 128) none round fixed left 30% top 10% / 160px border-box border-box'); |
| |
| style.background = "right top 15px / 10em gray round fixed border-box"; |
| shouldBe(style.background, 'right 0% top 15px / 10em round fixed border-box border-box gray'); |
| shouldBe(computedStyle.background, 'rgb(128, 128, 128) none round fixed right 0% top 15px / 160px border-box border-box'); |
| |
| style.background = "left 10px center / 10em gray round fixed border-box"; |
| shouldBe(style.background, 'left 10px top 50% / 10em round fixed border-box border-box gray'); |
| shouldBe(computedStyle.background, 'rgb(128, 128, 128) none round fixed left 10px top 50% / 160px border-box border-box'); |
| |
| style.background = "left 10px center round fixed border-box"; |
| shouldBe(style.background, 'left 10px top 50% round fixed border-box border-box'); |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none round fixed left 10px top 50% / auto border-box border-box'); |
| |
| style.background = "center top 20px round fixed border-box"; |
| shouldBe(style.background, 'left 50% top 20px round fixed border-box border-box'); |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none round fixed left 50% top 20px / auto border-box border-box'); |
| |
| style.background = "top 20px center round fixed border-box"; |
| shouldBe(style.background, 'left 50% top 20px round fixed border-box border-box'); |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none round fixed left 50% top 20px / auto border-box border-box'); |
| |
| style.background = "top center round fixed border-box"; |
| shouldBe(style.background, '50% 0% round fixed border-box border-box'); |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none round fixed 50% 0% / auto border-box border-box'); |
| |
| style.background = "50px 60px / 50px round fixed border-box"; |
| shouldBe(style.background, '50px 60px / 50px round fixed border-box border-box'); |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none round fixed 50px 60px / 50px border-box border-box'); |
| |
| style.background = "50px / 50px round fixed border-box"; |
| shouldBe(style.background, '50px 50% / 50px round fixed border-box border-box'); |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none round fixed 50px 50% / 50px border-box border-box'); |
| |
| style.background = "left top 60px / 50px round fixed border-box"; |
| shouldBe(style.background, 'left 0% top 60px / 50px round fixed border-box border-box'); |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none round fixed left 0% top 60px / 50px border-box border-box'); |
| |
| style.background = "left -20px top 60px / 50px round fixed border-box"; |
| shouldBe(style.background, 'left -20px top 60px / 50px round fixed border-box border-box'); |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none round fixed left -20px top 60px / 50px border-box border-box'); |
| |
| style.background = "border-box left 20px top / 50px round fixed"; |
| shouldBe(style.background, 'left 20px top 0% / 50px round fixed border-box border-box'); |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none round fixed left 20px top 0% / 50px border-box border-box'); |
| |
| style.background = "border-box round fixed left 20px top / 50px"; |
| shouldBe(style.background, 'left 20px top 0% / 50px round fixed border-box border-box'); |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none round fixed left 20px top 0% / 50px border-box border-box'); |
| |
| style.background = "border-box round fixed left 20px top 40px / 50px"; |
| shouldBe(style.background, 'left 20px top 40px / 50px round fixed border-box border-box'); |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none round fixed left 20px top 40px / 50px border-box border-box'); |
| |
| style.background = "border-box round fixed left 20px top 40px"; |
| shouldBe(style.background, 'left 20px top 40px round fixed border-box border-box'); |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none round fixed left 20px top 40px / auto border-box border-box'); |
| |
| style.background = "top 10% left 30% gray round fixed border-box"; |
| shouldBe(style.background, 'left 30% top 10% round fixed border-box border-box gray'); |
| shouldBe(computedStyle.background, 'rgb(128, 128, 128) none round fixed left 30% top 10% / auto border-box border-box'); |
| |
| debug("background-position inside the background shorthand, some invalid cases, no changes expected"); |
| style.background = ""; |
| style.background = "top 10% left 30% 50% gray round fixed border-box"; |
| shouldBe(style.background, ''); |
| // This is the default computed style. |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box'); |
| |
| style.background = "top 10% solid 30% gray round fixed border-box"; |
| shouldBe(style.background, ''); |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box'); |
| |
| style.background = "top 10% left round gray round fixed border-box"; |
| shouldBe(style.background, ''); |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box'); |
| |
| style.background = "top 10% top 30% gray round fixed border-box"; |
| shouldBe(style.background, ''); |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box'); |
| |
| style.background = "center center center / 10em gray round fixed border-box"; |
| shouldBe(style.background, ''); |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box'); |
| |
| style.background = "center center 30px / 10em gray round fixed border-box"; |
| shouldBe(style.background, ''); |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box'); |
| |
| style.background = "top center left / 10em gray round fixed border-box"; |
| shouldBe(style.background, ''); |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box'); |
| |
| style.background = "50% left / 10em gray round fixed border-box"; |
| shouldBe(style.background, ''); |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box'); |
| |
| style.background = "solid / 10em gray round fixed border-box"; |
| shouldBe(style.background, ''); |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box'); |
| |
| style.background = "top 10% left 20px 50% 50px gray round fixed border-box"; |
| shouldBe(style.background, ''); |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box'); |
| |
| style.background = "20px 20px 30px / 40px gray round fixed border-box"; |
| shouldBe(style.background, ''); |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box'); |
| |
| style.background = "20px 20px 30px 60px / 40px gray round fixed border-box"; |
| shouldBe(style.background, ''); |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box'); |
| |
| style.background = "20px 20px 30px 60px 70px / 40px gray round fixed border-box"; |
| shouldBe(style.background, ''); |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box'); |
| |
| style.background = "20px 20px 30px / 40px gray top left round fixed border-box"; |
| shouldBe(style.background, ''); |
| shouldBe(computedStyle.background, 'rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box'); |
| |
| testContainer.remove(); |
| } |