2009-02-06 Marek Habersack <mhabersack@novell.com>
authorMarek Habersack <grendel@twistedcode.net>
Fri, 6 Feb 2009 15:06:18 +0000 (15:06 -0000)
committerMarek Habersack <grendel@twistedcode.net>
Fri, 6 Feb 2009 15:06:18 +0000 (15:06 -0000)
* Style.cs: if CssClass is null, return String.Empty. Fixes bug
#473303
Added a range check to the BorderStyle property.

2009-02-06  Marek Habersack  <mhabersack@novell.com>

* StyleTest.cs: added tests for CssClass and BorderStyle.
Renamed the Style_CssClass method to Style_RegisteredCssClass.

svn path=/trunk/mcs/; revision=126051

mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
mcs/class/System.Web/System.Web.UI.WebControls/Style.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/ChangeLog
mcs/class/System.Web/Test/System.Web.UI.WebControls/StyleTest.cs

index 84b1c1aae060562ff68610f8e6c5100efb448104..58186ef99a2bb8e05df741b940d12ad914520599 100644 (file)
@@ -1,3 +1,9 @@
+2009-02-06  Marek Habersack  <mhabersack@novell.com>
+
+       * Style.cs: if CssClass is null, return String.Empty. Fixes bug
+       #473303
+       Added a range check to the BorderStyle property.
+
 2009-02-05  Marek Habersack  <mhabersack@novell.com>
 
        * Login.cs: check the value of DisplayRememberMe when creating
index 6cf0cb6e4db992b4dc4e93686db7ee06bd15f5ef..045cf1904d78f5a25e50a5b82532fbee70b01a39 100644 (file)
@@ -173,6 +173,9 @@ namespace System.Web.UI.WebControls {
 
                        set 
                        {
+                               if (value < BorderStyle.NotSet || value > BorderStyle.Outset)
+                                       throw new ArgumentOutOfRangeException ("value", "The selected value is not one of the BorderStyle enumeration values.");
+                               
                                viewstate["BorderStyle"] = value;
                                SetBit ((int) Styles.BorderStyle);
                        }
@@ -217,12 +220,16 @@ namespace System.Web.UI.WebControls {
                {
                        get 
                        {
-                               if (!CheckBit ((int) Styles.CssClass)) 
+                               if (!CheckBit ((int) Styles.CssClass))
                                {
-                                       return string.Empty;
+                                       return String.Empty;
                                }
 
-                               return (string)viewstate["CssClass"];
+                               string ret = viewstate["CssClass"] as string;
+                               if (ret == null)
+                                       return String.Empty;
+
+                               return ret;
                        }
 
                        set 
@@ -403,16 +410,18 @@ namespace System.Web.UI.WebControls {
                {
 #if NET_2_0
                        if (RegisteredCssClass.Length > 0) {
-                               if (CssClass.Length > 0)
-                                       writer.AddAttribute (HtmlTextWriterAttribute.Class, CssClass + " " + RegisteredCssClass);
+                               string cssclass = CssClass;
+                               if (!String.IsNullOrEmpty (cssclass))
+                                       writer.AddAttribute (HtmlTextWriterAttribute.Class, cssclass + " " + RegisteredCssClass);
                                else
                                        writer.AddAttribute (HtmlTextWriterAttribute.Class, RegisteredCssClass);
                        }
                        else 
 #endif
                        {
-                               if (CssClass.Length > 0)
-                                       writer.AddAttribute (HtmlTextWriterAttribute.Class, CssClass);
+                               string cssclass = CssClass;
+                               if (cssclass != null && cssclass.Length > 0)
+                                       writer.AddAttribute (HtmlTextWriterAttribute.Class, cssclass);
 #if NET_2_0
                                CssStyleCollection col = new CssStyleCollection ();
                                FillStyleAttributes (col, owner);
index f5507334e97c69b97441f005bbbb3e776bbed2b4..040b0a2a484dff83c8fc961d40f105959f6c4907 100644 (file)
@@ -1,3 +1,8 @@
+2009-02-06  Marek Habersack  <mhabersack@novell.com>
+
+       * StyleTest.cs: added tests for CssClass and BorderStyle. 
+       Renamed the Style_CssClass method to Style_RegisteredCssClass.
+
 2009-02-05  Marek Habersack  <mhabersack@novell.com>
 
        * LoginTest.cs: added test for Bug #468359
index 1d32d84a73778f69bf74bc633511f0c2d672c46a..2e8f0bee58de06c4bffc43141b1412240a2effdd 100644 (file)
@@ -367,9 +367,41 @@ namespace MonoTests.System.Web.UI.WebControls
                        Assert.AreEqual (Color.Red, s.BackColor, "Copy1");
                }
 
-#if NET_2_0
                [Test]
                public void Style_CssClass ()
+               {
+                       StyleTestClass s = new StyleTestClass ();
+                       Assert.AreEqual (String.Empty, s.CssClass, "#A1");
+
+                       s.CssClass = "css1";
+                       Assert.AreEqual ("css1", s.CssClass, "#A2");
+
+                       s.CssClass = String.Empty;
+                       Assert.AreEqual (String.Empty, s.CssClass, "#A3");
+
+                       s.CssClass = null;
+                       Assert.AreEqual (String.Empty, s.CssClass, "#A4");
+               }
+
+               [Test]
+               [ExpectedException (typeof (ArgumentOutOfRangeException))]
+               public void Style_BorderStyle_InvalidValue1 ()
+               {
+                       StyleTestClass s = new StyleTestClass ();
+                       s.BorderStyle = (BorderStyle)(BorderStyle.NotSet - 1);
+               }
+
+               [Test]
+               [ExpectedException (typeof (ArgumentOutOfRangeException))]
+               public void Style_BorderStyle_InvalidValue2 ()
+               {
+                       StyleTestClass s = new StyleTestClass ();
+                       s.BorderStyle = (BorderStyle)(BorderStyle.Outset + 1);
+               }
+               
+#if NET_2_0
+               [Test]
+               public void Style_RegisteredCssClass ()
                {
                        StyleTestClass s = new StyleTestClass ();
 
@@ -381,7 +413,7 @@ namespace MonoTests.System.Web.UI.WebControls
                        s.BackColor = Color.AliceBlue;
                        Assert.AreEqual ("blah", s.RegisteredCssClass, "Css3");
                }
-
+               
                [Test]
                [Category ("NunitWeb")]
                public void Style_AddRegisteredCssClassAttribute () {