2008-10-07 Christian Hergert <christian.hergert@gmail.com>
authorChristian Hergert <chris@dronelabs.com>
Tue, 7 Oct 2008 23:41:53 +0000 (23:41 -0000)
committerChristian Hergert <chris@dronelabs.com>
Tue, 7 Oct 2008 23:41:53 +0000 (23:41 -0000)
* System.Web.UI.HtmlControls/HtmlImage.cs: Do not render the src
attribute if it is null or empty.  An empty src attribute makes
browsers download the current page url as the url of the image.

* Test/System.Web.UI.HtmlControls/HtmlImageTest.cs: Add test to
make sure the src attribute is not rendered when it is empty.

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

mcs/class/System.Web/System.Web.UI.HtmlControls/ChangeLog
mcs/class/System.Web/System.Web.UI.HtmlControls/HtmlImage.cs
mcs/class/System.Web/Test/System.Web.UI.HtmlControls/ChangeLog
mcs/class/System.Web/Test/System.Web.UI.HtmlControls/HtmlImageTest.cs

index 0b1e1b3ebe35c6a1f3a26d25f80ef6ee7c4e1ffe..bc12f7843a8a5e0cb536cc1aec5fcbfed81056b6 100644 (file)
@@ -1,3 +1,9 @@
+2008-10-07  Christian Hergert  <christian.hergert@gmail.com>
+
+       * HtmlImage.cs: Do not render the src attribute if it is null or empty.
+       An empty src attribute makes browsers download the current page url as
+       the url of the image.
+
 2008-08-29  Marek Habersack  <mhabersack@novell.com>
 
        * HtmlHead.cs: call base.OnInit ()
index e72ba3e93af3405509da05072a3d7dbd226c893d..7bf0cdff03534fdaa9239295c89471d35468f795 100644 (file)
@@ -201,6 +201,15 @@ namespace System.Web.UI.HtmlControls
                protected override void RenderAttributes (HtmlTextWriter w)
                {
                        PreProcessRelativeReference (w, "src");
+
+                       /* MS does not seem to render the src attribute if it
+                        * is empty. Firefox, at least, will fetch the current
+                        * page as the src="" if other img attributes exist.
+                        */
+                       string src = Attributes["src"];
+                       if (src == null || src.Length == 0)
+                               Attributes.Remove ("src");
+
                        base.RenderAttributes (w);
 
                        /* MS closes the HTML element at the end of
index fa76af9c23a007259e47fb87633a84040ebbf0af..e7959fa2bbb9393908e51894143da63ac6297c0c 100644 (file)
@@ -1,3 +1,8 @@
+2008-10-07  Christian Hergert  <christian.hergert@gmail.com>
+
+       * HtmlImageTest.cs: Add test to make sure the src attribute is not
+       rendered when it is empty.
+
 2008-07-27  Dean Brettle <dean@brettle.com>
 
        * HtmlInputButtonTest.cs, HtmlImageTest.cs, HtmlFormTest.cs, 
index 5663824a3ea657ad8c6ffa7095e89fe508fe2742..c99681e9cc5c73df74713b4f6af48fecae36ad65 100644 (file)
@@ -111,6 +111,17 @@ namespace MonoTests.System.Web.UI.HtmlControls {
                        Assert.AreEqual (3, img.Attributes.Count, "Second Attributes Count");
                }
 
+               [Test]
+               public void EmptySrc ()
+               {
+                       TestHtmlImage img = new TestHtmlImage ();
+
+                       img.Src = String.Empty;
+
+                       HtmlTextWriter writer = img.GetWriter ();
+                       Assert.AreEqual (" /", writer.InnerWriter.ToString ());
+               }
+
                [Test]
                [Category ("NunitWeb")]
                public void RenderAttributes ()