getComputedStyle for border-image is not implemented.
authoralexis.menard@openbossa.org <alexis.menard@openbossa.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 5 Jan 2012 12:55:50 +0000 (12:55 +0000)
committeralexis.menard@openbossa.org <alexis.menard@openbossa.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 5 Jan 2012 12:55:50 +0000 (12:55 +0000)
https://bugs.webkit.org/show_bug.cgi?id=75347

Reviewed by Tony Chang.

Source/WebCore:

Implement getComputedStyle for border-color.

fast/css/getComputedStyle/computed-style-border-image.html was extended to cover the
new feature.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):

LayoutTests:

Extend existing test to cover that we return correct values for border-image.

* fast/css/getComputedStyle/computed-style-border-image-expected.txt:
* fast/css/getComputedStyle/computed-style-border-image.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@104144 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/fast/css/getComputedStyle/computed-style-border-image-expected.txt
LayoutTests/fast/css/getComputedStyle/computed-style-border-image.html
Source/WebCore/ChangeLog
Source/WebCore/css/CSSComputedStyleDeclaration.cpp

index aec226e..3c008a0 100755 (executable)
@@ -1,3 +1,15 @@
+2012-01-05  Alexis Menard  <alexis.menard@openbossa.org>
+
+        getComputedStyle for border-image is not implemented.
+        https://bugs.webkit.org/show_bug.cgi?id=75347
+
+        Reviewed by Tony Chang.
+
+        Extend existing test to cover that we return correct values for border-image.
+
+        * fast/css/getComputedStyle/computed-style-border-image-expected.txt:
+        * fast/css/getComputedStyle/computed-style-border-image.html:
+
 2012-01-05  Csaba Osztrogon√°c  <ossy@webkit.org>
 
         [Qt][WK2]REGRESSION(r104068): It made editing/pasteboard/copy-in-password-field.html fail
index 923a1ec..d1fb8f3 100644 (file)
@@ -1,24 +1,55 @@
 Test computed style for the border-image property and sub-properties
 
 PASS computedBorderImageStyle('12 11 12 11', 'border-image-slice') is '12 11'
+PASS computedBorderImageStyle('12 11 12 11', 'border-image') is 'none'
+PASS checkComputedStyleValue() is true
 PASS computedBorderImageStyle('url(test.png) 12 11 repeat stretch', 'border-image-slice') is '12 11'
+PASS computedBorderImageStyle('url(dummy://test.png) 12 11 repeat stretch', 'border-image') is 'url(dummy://test.png) 12 11 / 1 / 0px repeat stretch'
+PASS checkComputedStyleValue() is true
 PASS computedBorderImageStyle('url(test.png) 1 2 3 4 repeat stretch', 'border-image-slice') is '1 2 3 4'
+PASS computedBorderImageStyle('url(dummy://test.png) 1 2 3 4 repeat stretch', 'border-image') is 'url(dummy://test.png) 1 2 3 4 / 1 / 0px repeat stretch'
+PASS checkComputedStyleValue() is true
 PASS computedBorderImageStyle('url(test.png) 12 repeat stretch', 'border-image-slice') is '12'
 PASS computedBorderImageStyle('url(test.png) 10 10 5 5 repeat stretch', 'border-image-slice') is '10 10 5 5'
 PASS computedBorderImageStyle('url(test.png) 10 a b c repeat stretch', 'border-image-slice') is '100%'
+PASS computedBorderImageStyle('url(dummy://test.png) 10 a b c repeat stretch', 'border-image') is 'none'
+PASS checkComputedStyleValue() is true
 PASS computedBorderImageStyle('url(test.png) 10 20 fill', 'border-image-slice') is '10 20 fill'
+PASS computedBorderImageStyle('url(dummy://test.png) 10 20 fill', 'border-image') is 'url(dummy://test.png) 10 20 fill / 1 / 0px stretch'
+PASS checkComputedStyleValue() is true
 PASS computedBorderImageStyle('url(dummy://test.png) 10 10 10 10 repeat stretch', 'border-image-source') is 'url(dummy://test.png)'
+PASS computedBorderImageStyle('url(dummy://test.png) 10 10 10 10 repeat stretch', 'border-image') is 'url(dummy://test.png) 10 / 1 / 0px repeat stretch'
+PASS checkComputedStyleValue() is true
 PASS computedBorderImageStyle('url(test.png) 10', 'border-image-repeat') is 'stretch'
+PASS computedBorderImageStyle('url(dummy://test.png) 10', 'border-image') is 'url(dummy://test.png) 10 / 1 / 0px stretch'
+PASS checkComputedStyleValue() is true
 PASS computedBorderImageStyle('url(test.png) 10 stretch', 'border-image-repeat') is 'stretch'
+PASS computedBorderImageStyle('url(dummy://test.png) 10 stretch', 'border-image') is 'url(dummy://test.png) 10 / 1 / 0px stretch'
+PASS checkComputedStyleValue() is true
 PASS computedBorderImageStyle('url(test.png) 10 kittens', 'border-image-repeat') is 'stretch'
+PASS computedBorderImageStyle('url(dummy://test.png) 10 kittens', 'border-image') is 'none'
+PASS checkComputedStyleValue() is true
 PASS computedBorderImageStyle('url(test.png) 10 stretch stretch fill', 'border-image-repeat') is 'stretch'
+PASS computedBorderImageStyle('url(dummy://test.png) 10 stretch stretch fill', 'border-image') is 'none'
+PASS checkComputedStyleValue() is true
 PASS computedBorderImageStyle('url(test.png) 10 repeat stretch', 'border-image-repeat') is 'repeat stretch'
+PASS computedBorderImageStyle('url(dummy://test.png) 10 repeat stretch', 'border-image') is 'url(dummy://test.png) 10 / 1 / 0px repeat stretch'
+PASS checkComputedStyleValue() is true
 PASS computedBorderImageStyle('url(test.png) 10 round space', 'border-image-repeat') is 'round space'
+PASS computedBorderImageStyle('url(dummy://test.png) 10 round space', 'border-image') is 'url(dummy://test.png) 10 / 1 / 0px round space'
+PASS checkComputedStyleValue() is true
 PASS computedBorderImageStyle('url(test.png) 10 / 13px 1.5em 1em 10px', 'border-image-width') is '13px 24px 16px 10px'
+PASS computedBorderImageStyle('url(dummy://test.png) 10 / 13px 1.5em 1em 10px', 'border-image') is 'url(dummy://test.png) 10 / 13px 24px 16px 10px / 0px stretch'
+PASS checkComputedStyleValue() is true
 PASS computedBorderImageStyle('url(test.png) 10 / 14px 10%', 'border-image-width') is '14px 10%'
+PASS computedBorderImageStyle('url(dummy://test.png) 10 / 14px 10%', 'border-image') is 'url(dummy://test.png) 10 / 14px 10% / 0px stretch'
+PASS checkComputedStyleValue() is true
 PASS computedBorderImageStyle('url(test.png) 10 / 13px / 11px', 'border-image-outset') is '11px'
-PASS computedBorderImageStyle('url(test.png) 10 / 13px / 11px', 'border-image-outset') is '11px'
+PASS computedBorderImageStyle('url(dummy://test.png) 10 / 13px / 11px', 'border-image') is 'url(dummy://test.png) 10 / 13px / 11px stretch'
+PASS checkComputedStyleValue() is true
 PASS computedBorderImageStyle('url(test.png) 10 / 13px / 11px repeat stretch', 'border-image-outset') is '11px'
+PASS computedBorderImageStyle('url(dummy://test.png) 10 / 13px / 11px repeat stretch', 'border-image') is 'url(dummy://test.png) 10 / 13px / 11px repeat stretch'
+PASS checkComputedStyleValue() is true
 PASS successfullyParsed is true
 
 TEST COMPLETE
index 3e42800..a4419d4 100644 (file)
@@ -19,29 +19,67 @@ function computedBorderImageStyle(borderImageStyle, property) {
     return window.getComputedStyle(testDiv).getPropertyValue(property);
 }
 
+function checkComputedStyleValue() {
+    var before = window.getComputedStyle(testDiv).getPropertyValue('border-image');
+    testDiv.style.borderImage = 'none';
+    testDiv.style.borderImage = before;
+    return (window.getComputedStyle(testDiv).getPropertyValue('border-image') == before);
+}
+
 shouldBe("computedBorderImageStyle('12 11 12 11', 'border-image-slice')", "'12 11'");
+shouldBe("computedBorderImageStyle('12 11 12 11', 'border-image')", "'none'");
+shouldBe("checkComputedStyleValue()", "true");
 shouldBe("computedBorderImageStyle('url(test.png) 12 11 repeat stretch', 'border-image-slice')", "'12 11'");
+shouldBe("computedBorderImageStyle('url(dummy://test.png) 12 11 repeat stretch', 'border-image')", "'url(dummy://test.png) 12 11 / 1 / 0px repeat stretch'");
+shouldBe("checkComputedStyleValue()", "true");
 shouldBe("computedBorderImageStyle('url(test.png) 1 2 3 4 repeat stretch', 'border-image-slice')", "'1 2 3 4'");
+shouldBe("computedBorderImageStyle('url(dummy://test.png) 1 2 3 4 repeat stretch', 'border-image')", "'url(dummy://test.png) 1 2 3 4 / 1 / 0px repeat stretch'");
+shouldBe("checkComputedStyleValue()", "true");
 shouldBe("computedBorderImageStyle('url(test.png) 12 repeat stretch', 'border-image-slice')", "'12'");
 shouldBe("computedBorderImageStyle('url(test.png) 10 10 5 5 repeat stretch', 'border-image-slice')", "'10 10 5 5'");
 shouldBe("computedBorderImageStyle('url(test.png) 10 a b c repeat stretch', 'border-image-slice')", "'100%'");
+shouldBe("computedBorderImageStyle('url(dummy://test.png) 10 a b c repeat stretch', 'border-image')", "'none'");
+shouldBe("checkComputedStyleValue()", "true");
 shouldBe("computedBorderImageStyle('url(test.png) 10 20 fill', 'border-image-slice')", "'10 20 fill'");
+shouldBe("computedBorderImageStyle('url(dummy://test.png) 10 20 fill', 'border-image')", "'url(dummy://test.png) 10 20 fill / 1 / 0px stretch'");
+shouldBe("checkComputedStyleValue()", "true");
 
 shouldBe("computedBorderImageStyle('url(dummy://test.png) 10 10 10 10 repeat stretch', 'border-image-source')", "'url(dummy://test.png)'");
+shouldBe("computedBorderImageStyle('url(dummy://test.png) 10 10 10 10 repeat stretch', 'border-image')", "'url(dummy://test.png) 10 / 1 / 0px repeat stretch'");
+shouldBe("checkComputedStyleValue()", "true");
 
 shouldBe("computedBorderImageStyle('url(test.png) 10', 'border-image-repeat')", "'stretch'");
+shouldBe("computedBorderImageStyle('url(dummy://test.png) 10', 'border-image')", "'url(dummy://test.png) 10 / 1 / 0px stretch'");
+shouldBe("checkComputedStyleValue()", "true");
 shouldBe("computedBorderImageStyle('url(test.png) 10 stretch', 'border-image-repeat')", "'stretch'");
+shouldBe("computedBorderImageStyle('url(dummy://test.png) 10 stretch', 'border-image')", "'url(dummy://test.png) 10 / 1 / 0px stretch'");
+shouldBe("checkComputedStyleValue()", "true");
 shouldBe("computedBorderImageStyle('url(test.png) 10 kittens', 'border-image-repeat')", "'stretch'");
+shouldBe("computedBorderImageStyle('url(dummy://test.png) 10 kittens', 'border-image')", "'none'");
+shouldBe("checkComputedStyleValue()", "true");
 shouldBe("computedBorderImageStyle('url(test.png) 10 stretch stretch fill', 'border-image-repeat')", "'stretch'");
+shouldBe("computedBorderImageStyle('url(dummy://test.png) 10 stretch stretch fill', 'border-image')", "'none'");
+shouldBe("checkComputedStyleValue()", "true");
 shouldBe("computedBorderImageStyle('url(test.png) 10 repeat stretch', 'border-image-repeat')", "'repeat stretch'");
+shouldBe("computedBorderImageStyle('url(dummy://test.png) 10 repeat stretch', 'border-image')", "'url(dummy://test.png) 10 / 1 / 0px repeat stretch'");
+shouldBe("checkComputedStyleValue()", "true");
 shouldBe("computedBorderImageStyle('url(test.png) 10 round space', 'border-image-repeat')", "'round space'");
+shouldBe("computedBorderImageStyle('url(dummy://test.png) 10 round space', 'border-image')", "'url(dummy://test.png) 10 / 1 / 0px round space'");
+shouldBe("checkComputedStyleValue()", "true");
 
 shouldBe("computedBorderImageStyle('url(test.png) 10 / 13px 1.5em 1em 10px', 'border-image-width')", "'13px 24px 16px 10px'");
+shouldBe("computedBorderImageStyle('url(dummy://test.png) 10 / 13px 1.5em 1em 10px', 'border-image')", "'url(dummy://test.png) 10 / 13px 24px 16px 10px / 0px stretch'");
+shouldBe("checkComputedStyleValue()", "true");
 shouldBe("computedBorderImageStyle('url(test.png) 10 / 14px 10%', 'border-image-width')", "'14px 10%'");
+shouldBe("computedBorderImageStyle('url(dummy://test.png) 10 / 14px 10%', 'border-image')", "'url(dummy://test.png) 10 / 14px 10% / 0px stretch'");
+shouldBe("checkComputedStyleValue()", "true");
 shouldBe("computedBorderImageStyle('url(test.png) 10 / 13px / 11px', 'border-image-outset')", "'11px'");
-shouldBe("computedBorderImageStyle('url(test.png) 10 / 13px / 11px', 'border-image-outset')", "'11px'");
+shouldBe("computedBorderImageStyle('url(dummy://test.png) 10 / 13px / 11px', 'border-image')", "'url(dummy://test.png) 10 / 13px / 11px stretch'");
+shouldBe("checkComputedStyleValue()", "true");
 
 shouldBe("computedBorderImageStyle('url(test.png) 10 / 13px / 11px repeat stretch', 'border-image-outset')", "'11px'");
+shouldBe("computedBorderImageStyle('url(dummy://test.png) 10 / 13px / 11px repeat stretch', 'border-image')", "'url(dummy://test.png) 10 / 13px / 11px repeat stretch'");
+shouldBe("checkComputedStyleValue()", "true");
 
 </script>
 <script src="../../js/resources/js-test-post.js"></script>
index 7086942..552ea0b 100755 (executable)
@@ -1,3 +1,18 @@
+2012-01-05  Alexis Menard  <alexis.menard@openbossa.org>
+
+        getComputedStyle for border-image is not implemented.
+        https://bugs.webkit.org/show_bug.cgi?id=75347
+
+        Reviewed by Tony Chang.
+
+        Implement getComputedStyle for border-color.
+
+        fast/css/getComputedStyle/computed-style-border-image.html was extended to cover the
+        new feature.
+
+        * css/CSSComputedStyleDeclaration.cpp:
+        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
+
 2012-01-05  Xingnan Wang  <xingnan.wang@intel.com>
 
         Add a SSE2 optimized function zvmul in VectorMatch
index 52baf70..5416643 100644 (file)
@@ -2164,6 +2164,7 @@ PassRefPtr<CSSValue> CSSComputedStyleDeclaration::getPropertyCSSValue(int proper
             return getCSSPropertyValuesForShorthandProperties(properties, WTF_ARRAY_LENGTH(properties));
         }
         case CSSPropertyBorderImage:
+            return valueForNinePieceImage(style->borderImage(), cssValuePool);
         case CSSPropertyBorderRadius:
             break;
         case CSSPropertyBorderRight: {