[Mono-dev] Patch for CookieContainer.SetCookies

Sebastien Pouliot sebastien.pouliot at gmail.com
Wed Jan 20 16:36:08 EST 2010


Hello Tom,

On Mon, 2010-01-18 at 15:31 -0800, Tom Philpot wrote:
> The current implementation of CookieContainer.SetCookies does not handle the case where a cookie contains an "expires=..." attribute.
> 
> As documented on MSDN here: http://msdn.microsoft.com/en-us/library/aa384321%28VS.85%29.aspx the "Set-Cookie:" header expires attribute uses the following format: DAY, DD-MMM-YYYY HH:MM:SS GMT
> 
> The current version of SetCookies simply does a split on ',' in the header which totally causes the CookieContainer to choke when the expires attribute is set as MS recommends.
> 
> Also, the Add (Cookie) method of CookieContainer does not clone all the properties of the incoming cookie before adding it to the collection. Using SetCookies(Uri, string) should clone all the properties, so that is fixes as well in the patch and a test is added in the test cases.
> 
> I believe this makes the behavior of CookieContainer more "bug-compatible" with .NET.
> 
> Please review the patch and the test cases.
> 

Tests run: 5665, Failures: 2, Not run: 30, Time: 93.143 seconds

Test Case Failures:
1) MonoTests.System.Net.CookieContainerTest.SaveAndLoadViaSetCookies :
#A7
  Expected: 2015-01-01 05:00:00.000
  But was:  2015-01-01 08:00:00.000

at MonoTests.System.Net.CookieContainerTest.SaveAndLoadViaSetCookies ()
[0x00109]
in /home/poupou/svn/mcs/class/System/Test/System.Net/CookieContainerTest.cs:1624
at (wrapper managed-to-native)
System.Reflection.MonoMethod:InternalInvoke
(System.Reflection.MonoMethod*,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags
invokeAttr, System.Reflection.Binder binder, System.Object[] parameters,
System.Globalization.CultureInfo culture) [0x000ca]
in /home/poupou/svn/mcs/class/corlib/System.Reflection/MonoMethod.cs:212

I get the above error while testing your patch on HEAD. Please fix the
test and re-issue your patch with the correct coding convention.

Thanks
Sebastien



More information about the Mono-devel-list mailing list