[System] HttpListenerRequest: ignore bad cookies and keep request alive (#5657)
[mono.git] / mcs / class / System / Test / System.Net / HttpListenerRequestTest.cs
index 2f24f73ec0d0efc50f2572ae0a8f235ec5c17e2c..2066cc6a6db490128d6ecf29756286db2e776030 100644 (file)
@@ -285,7 +285,19 @@ namespace MonoTests.System.Net
                        var request = (HttpWebRequest)WebRequest.Create (prefix);
                        var rsp = request.GetResponseAsync ();
                        Assert.IsFalse (rsp.Wait (1000), "Don't send on empty write");
+               }
 
+               [Test]
+               public void HttpRequestIgnoreBadCookies ()
+               {
+                       var port = NetworkHelpers.FindFreePort ();
+                       HttpListener listener = HttpListener2Test.CreateAndStartListener (
+                               "http://127.0.0.1:" + port + "/HttpRequestIgnoreBadCookiesTest/");
+                       NetworkStream ns = HttpListener2Test.CreateNS (port);
+                       HttpListener2Test.Send (ns, "GET /HttpRequestIgnoreBadCookiesTest/?a=b HTTP/1.1\r\nHost: 127.0.0.1\r\nCookie: ELOQUA=GUID=5ca2346347357f4-f877-4eff-96aa-70fe0b677650; ELQSTATUS=OK; WRUID=609099666.123259461695; CommunityServer-UserCookie2101=lv=Thu, 26 Jul 2012 15:25:11 GMT&mra=Mon, 01 Oct 2012 17:40:05 GMT; PHPSESSID=1234dg3opfjb4qafp0oo645; __utma=9761706.1153317537.1357240270.1357240270.1357317902.2; __utmb=9761706.6.10.1357317902; __utmc=9761706; __utmz=9761706.1357240270.1.1.utmcsr=test.testdomain.com|utmccn=(referral)|utmcmd=referral|utmcct=/test/1234\r\n\r\n");
+                       HttpListenerContext ctx = listener.GetContext ();
+                       HttpListenerRequest request = ctx.Request;
+                       Assert.AreEqual ("/HttpRequestIgnoreBadCookiesTest/?a=b", request.Url.PathAndQuery);
                        listener.Close ();
                }
        }