[System*] Add category for tests that use API that require BSD sockets.
[mono.git] / mcs / class / System / Test / System.Net / CookieParserTest.cs
index 7d4c7a4a015fef6b5b9a60162f19603c313fcebb..37c40d7445e070cd8d5021dc238253b6bdac5db5 100644 (file)
@@ -9,6 +9,7 @@ using NUnit.Framework;
 namespace MonoTests.System.Net
 {
        [TestFixture]
+       [Category ("RequiresBSDSockets")]
        public class CookieParserTest
        {
                public const string A = "Foo=Bar, expires=World; expires=Sat, 11-Oct-14 22:45:19 GMT, A=B";
@@ -18,6 +19,7 @@ namespace MonoTests.System.Net
                // Only comma serves as separation character.
                public const string D = "A=B, C=D; E=F, G=H";
                public const string E = "A; C; expires=Tue, 25-Jun-19 00:51:34 GMT, E=F";
+               public const string F = "Foo = \" A, B\"C D, E=F";
 
                CookieCollection DoRequest (string header)
                {
@@ -36,7 +38,10 @@ namespace MonoTests.System.Net
                void AssertCookie (Cookie cookie, string name, string value, long ticks)
                {
                        AssertCookie (cookie, name, value);
-                       Assert.AreEqual (ticks, cookie.Expires.ToUniversalTime ().Ticks);
+                       if (ticks == 0)
+                               Assert.AreEqual (0, cookie.Expires.Ticks);
+                       else
+                               Assert.AreEqual (ticks, cookie.Expires.ToUniversalTime ().Ticks);
                }
 
                void AssertCookie (Cookie cookie, string name, string value)
@@ -122,6 +127,15 @@ namespace MonoTests.System.Net
                        AssertCookie (cookies [1], "E", "F");
                }
 
+               [Test]
+               public void TestQuotation ()
+               {
+                       var cookies = DoRequest (F);
+                       Assert.AreEqual (2, cookies.Count);
+                       AssertCookie (cookies [0], "Foo", "\" A, B\"");
+                       AssertCookie (cookies [1], "E", "F");
+               }
+
                public class Listener : IDisposable
                {
                        Socket socket;