@@ -925,6 +925,60 @@ public void CssStyleSheetShouldIgnoreHtmlCommentTokens()
925
925
Assert . AreEqual ( "none" , div . Style . GetDisplay ( ) ) ;
926
926
}
927
927
928
+ [ Test ]
929
+ public void CssStyleSheetShouldExpandBorderColorCorrectly_Issue23 ( )
930
+ {
931
+ var parser = new CssParser ( ) ;
932
+ var source = "body { border-color: red }" ;
933
+ var sheet = parser . ParseStyleSheet ( source ) ;
934
+
935
+ Assert . AreEqual ( 1 , sheet . Rules . Length ) ;
936
+ Assert . AreEqual ( CssRuleType . Style , sheet . Rules [ 0 ] . Type ) ;
937
+
938
+ var body = sheet . Rules [ 0 ] as ICssStyleRule ;
939
+ Assert . AreEqual ( "border-color: rgba(255, 0, 0, 1)" , body . Style . CssText ) ;
940
+ Assert . AreEqual ( "rgba(255, 0, 0, 1)" , body . Style . GetBorderColor ( ) ) ;
941
+ Assert . AreEqual ( "rgba(255, 0, 0, 1)" , body . Style . GetBorderLeftColor ( ) ) ;
942
+ Assert . AreEqual ( "rgba(255, 0, 0, 1)" , body . Style . GetBorderRightColor ( ) ) ;
943
+ Assert . AreEqual ( "rgba(255, 0, 0, 1)" , body . Style . GetBorderTopColor ( ) ) ;
944
+ Assert . AreEqual ( "rgba(255, 0, 0, 1)" , body . Style . GetBorderBottomColor ( ) ) ;
945
+ }
946
+
947
+ [ Test ]
948
+ public void CssStyleSheetShouldCollapseBorderColorCorrectly_Issue23 ( )
949
+ {
950
+ var parser = new CssParser ( ) ;
951
+ var source = "body { border-color: red }" ;
952
+ var sheet = parser . ParseStyleSheet ( source ) ;
953
+
954
+ var body = sheet . Rules [ 0 ] as ICssStyleRule ;
955
+ body . Style . SetBorderLeftColor ( "blue" ) ;
956
+ body . Style . SetBorderRightColor ( "blue" ) ;
957
+ Assert . AreEqual ( "border-color: rgba(255, 0, 0, 1) rgba(0, 0, 255, 1)" , body . Style . CssText ) ;
958
+ Assert . AreEqual ( "rgba(255, 0, 0, 1) rgba(0, 0, 255, 1)" , body . Style . GetBorderColor ( ) ) ;
959
+ Assert . AreEqual ( "rgba(0, 0, 255, 1)" , body . Style . GetBorderLeftColor ( ) ) ;
960
+ Assert . AreEqual ( "rgba(0, 0, 255, 1)" , body . Style . GetBorderRightColor ( ) ) ;
961
+ Assert . AreEqual ( "rgba(255, 0, 0, 1)" , body . Style . GetBorderTopColor ( ) ) ;
962
+ Assert . AreEqual ( "rgba(255, 0, 0, 1)" , body . Style . GetBorderBottomColor ( ) ) ;
963
+ }
964
+
965
+ [ Test ]
966
+ public void CssStyleSheetShouldCollapseFullBorderCorrectly_Issue23 ( )
967
+ {
968
+ var parser = new CssParser ( ) ;
969
+ var source = "body { border: 1px solid red }" ;
970
+ var sheet = parser . ParseStyleSheet ( source ) ;
971
+
972
+ var body = sheet . Rules [ 0 ] as ICssStyleRule ;
973
+ Assert . AreEqual ( "border: 1px solid rgba(255, 0, 0, 1)" , body . Style . CssText ) ;
974
+ body . Style . SetBorderLeftColor ( "blue" ) ;
975
+ body . Style . SetBorderTopWidth ( "medium" ) ;
976
+ Assert . AreEqual ( "border-top: 3px solid rgba(255, 0, 0, 1); border-right: 1px solid rgba(255, 0, 0, 1); border-bottom: 1px solid rgba(255, 0, 0, 1); border-left: 1px solid rgba(0, 0, 255, 1)" , body . Style . CssText ) ;
977
+ Assert . AreEqual ( "rgba(255, 0, 0, 1) rgba(255, 0, 0, 1) rgba(255, 0, 0, 1) rgba(0, 0, 255, 1)" , body . Style . GetBorderColor ( ) ) ;
978
+ Assert . AreEqual ( "3px 1px 1px" , body . Style . GetBorderWidth ( ) ) ;
979
+ Assert . AreEqual ( "solid" , body . Style . GetBorderStyle ( ) ) ;
980
+ }
981
+
928
982
[ Test ]
929
983
public void CssStyleSheetInsertShouldSetParentStyleSheetCorrectly ( )
930
984
{
0 commit comments