2008-01-16 Juraj Skripsky <js@hotfeet.ch>
authorJuraj Skripsky <js@hotfeet.ch>
Wed, 16 Jan 2008 14:27:44 +0000 (14:27 -0000)
committerJuraj Skripsky <js@hotfeet.ch>
Wed, 16 Jan 2008 14:27:44 +0000 (14:27 -0000)
* HttpRequest.cs (get_UrlReferrer): Handle case when headers contain
invalid Url for referer.

2008-01-16  Juraj Skripsky  <js@hotfeet.ch>

* HttpCookieCollection.cs (AllKeys): Use Keys.CopyTo().

2008-01-16  Juraj Skripsky  <js@hotfeet.ch>

* HttpRequestTest.cs (TestReferer): added test for invalid referer url.

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

mcs/class/System.Web/System.Web/ChangeLog
mcs/class/System.Web/System.Web/HttpCookieCollection.cs
mcs/class/System.Web/System.Web/HttpRequest.cs
mcs/class/System.Web/Test/System.Web/ChangeLog
mcs/class/System.Web/Test/System.Web/HttpRequestTest.cs

index 723446fe42df11c7b75c68fb3032f363ec3345f2..27f9542d1ad02679f89afdeeaed165971578d571 100644 (file)
@@ -1,3 +1,12 @@
+2008-01-16  Juraj Skripsky  <js@hotfeet.ch>
+
+       * HttpRequest.cs (get_UrlReferrer): Handle case when headers contain
+       invalid Url for referer.
+
+2008-01-16  Juraj Skripsky  <js@hotfeet.ch>
+
+       * HttpCookieCollection.cs (AllKeys): Use Keys.CopyTo().
+
 2008-01-14  Sebastien Pouliot  <sebastien@ximian.com>
 
        * HttpCookie.cs: Fix HttpOnly setter. Found using Gendarme.
index 43527fdddf02803a61413a62529b6013bacd2de9..679200143a34eab84696b32b92b9f92e1a2960a2 100644 (file)
@@ -28,6 +28,7 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
+using System.Collections;
 using System.Collections.Specialized;
 using System.Security.Permissions;
 
@@ -161,13 +162,8 @@ namespace System.Web {
 
                public string[] AllKeys {
                        get {
-                               /* XXX another inefficient copy due to
-                                * lack of exposure from the base
-                                * class */
                                string[] keys = new string [Keys.Count];
-                               for (int i = 0; i < Keys.Count; i ++)
-                                       keys[i] = Keys[i];
-                               
+                               ((ICollection)Keys).CopyTo (keys, 0);
                                return keys;
                        }
                }
index c070ed0e01cd4c19e5746a4ed760ff6d832ae301..8ac4be676642282ca69a594166dcedc9507b4005 100644 (file)
@@ -1069,7 +1069,11 @@ namespace System.Web {
                                if (hr == null)
                                        return null;
 
-                               return new Uri (hr);
+                               Uri uri = null;
+                               try {
+                                       uri = new Uri (hr);
+                               } catch (UriFormatException) {}
+                               return uri;
                        }
                }
 
index 2a7f93891b27c40e78e645d98861d62118d35179..2106be78b81ca65e6e17d460a57c42c392af3a10 100644 (file)
@@ -1,3 +1,7 @@
+2008-01-16  Juraj Skripsky  <js@hotfeet.ch>
+
+       * HttpRequestTest.cs (TestReferer): added test for invalid referer url.
+
 2008-01-14  Sebastien Pouliot  <sebastien@ximian.com>
 
        * HttpCookieTest.cs: Added HttpOnly test cases.
index 14992663c3b9f835e5ab3e353187bcbe47522f4b..74a79b3d81374f9ae7d2e20a7dbd42fdf2876bc9 100644 (file)
@@ -417,6 +417,7 @@ namespace MonoTests.System.Web {
                                        case 1: return null;
                                        case 2: return "http://www.mono-project.com/test.aspx";
                                        case 15: return "http://www.mono-project.com";
+                                       case 33: return "x";
                                        }
                                        break;
                                case HttpWorkerRequest.HeaderUserAgent:
@@ -751,7 +752,10 @@ namespace MonoTests.System.Web {
                        Assert.AreEqual (null, c.Request.UrlReferrer, "REF1");
 
                        c = Cook (2);
-                       Assert.AreEqual ("http://www.mono-project.com/test.aspx", c.Request.UrlReferrer.ToString (), "REF1");                   
+                       Assert.AreEqual ("http://www.mono-project.com/test.aspx", c.Request.UrlReferrer.ToString (), "REF1");
+
+                       c = Cook (33);
+                       Assert.AreEqual (null, c.Request.UrlReferrer, "REF1");                  
                }