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";
// 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)
{
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)
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;