2 // System.Net.CookieContainerTest - CookieContainer tests
5 // Gonzalo Paniagua Javier (gonzalo@novell.com)
7 // (c) Copyright 2004 Novell, Inc. (http://www.novell.com)
10 using NUnit.Framework;
13 using System.Reflection;
15 namespace MonoTests.System.Net
18 public class CookieContainerTest : Assertion
21 public void TestCtor1 ()
23 CookieContainer c = new CookieContainer (234);
24 AssertEquals ("#01", 234, c.Capacity);
27 new CookieContainer (0);
29 } catch (ArgumentException) {
32 AssertEquals ("#02", true, passed);
35 new CookieContainer (-10);
37 } catch (ArgumentException) {
40 AssertEquals ("#03", true, passed);
44 public void TestCtor3 ()
46 CookieContainer c = new CookieContainer (100, 50, 1000);
47 AssertEquals ("#01", 100, c.Capacity);
48 AssertEquals ("#02", 50, c.PerDomainCapacity);
49 AssertEquals ("#03", 1000, c.MaxCookieSize);
52 new CookieContainer (100, 0, 1000);
54 } catch (ArgumentException) {
57 AssertEquals ("#04", true, passed);
60 new CookieContainer (100, -1, 1000);
62 } catch (ArgumentException) {
65 AssertEquals ("#05", true, passed);
68 new CookieContainer (100, Int32.MaxValue, 1000);
70 } catch (ArgumentException) {
73 AssertEquals ("#06", true, passed);
76 new CookieContainer (100, 50, 0);
78 } catch (ArgumentException) {
81 AssertEquals ("#07", true, passed);
84 new CookieContainer (100, 500, -4);
86 } catch (ArgumentException) {
89 AssertEquals ("#08", true, passed);
93 public void TestDefaultLimits ()
95 AssertEquals ("#01", CookieContainer.DefaultCookieLengthLimit, 4096);
96 AssertEquals ("#02", CookieContainer.DefaultCookieLimit, 300);
97 AssertEquals ("#03", CookieContainer.DefaultPerDomainCookieLimit, 20);
101 public void TestCapacity ()
103 CookieContainer c = new CookieContainer ();
104 AssertEquals ("#01", c.Capacity, 300);
106 AssertEquals ("#02", c.Capacity, 200);
111 } catch (ArgumentOutOfRangeException) {
115 AssertEquals ("#03", true, passed);
118 c.Capacity = 5; // must be >= PerDomainCapacity if PerDomainCapacity != Int32.MaxValue
120 } catch (ArgumentOutOfRangeException) {
124 AssertEquals ("#04", true, passed);
129 public void TestMaxCookieSize ()
131 CookieContainer c = new CookieContainer ();
132 AssertEquals ("#01", c.MaxCookieSize, 4096);
135 c.MaxCookieSize = -5;
137 } catch (ArgumentOutOfRangeException) {
141 AssertEquals ("#02", true, passed);
143 c.MaxCookieSize = -1;
145 } catch (ArgumentOutOfRangeException) {
149 AssertEquals ("#03", true, passed);
150 c.MaxCookieSize = 80000;
151 AssertEquals ("#04", 80000, c.MaxCookieSize);
152 c.MaxCookieSize = Int32.MaxValue;
153 AssertEquals ("#04", Int32.MaxValue, c.MaxCookieSize);
157 public void TestAdd_Args ()
159 CookieContainer cc = new CookieContainer ();
162 cc.Add ((Cookie) null);
164 } catch (ArgumentNullException) {
167 AssertEquals ("#01", true, passed);
170 cc.Add ((CookieCollection) null);
172 } catch (ArgumentNullException) {
175 AssertEquals ("#02", true, passed);
178 cc.Add (null, (Cookie) null);
180 } catch (ArgumentNullException) {
183 AssertEquals ("#03", true, passed);
186 cc.Add (null, (CookieCollection) null);
188 } catch (ArgumentNullException) {
191 AssertEquals ("#04", true, passed);
194 cc.Add (new Uri ("http://www.contoso.com"), (Cookie) null);
196 } catch (ArgumentNullException) {
199 AssertEquals ("#05", true, passed);
202 cc.Add (new Uri ("http://www.contoso.com"), (CookieCollection) null);
204 } catch (ArgumentNullException) {
207 AssertEquals ("#06", true, passed);
211 public void TestAdd_Cookie ()
213 CookieContainer cc = new CookieContainer ();
214 Uri uri = new Uri ("http://www.contoso.com");
215 cc.Add (uri, new CookieCollection ());
216 DateTime timestamp = DateTime.Now;
217 cc.Add (uri, new Cookie ("hola", "Adios"));
218 CookieCollection coll = cc.GetCookies (uri);
219 Cookie cookie = coll [0];
220 AssertEquals ("#07", "", cookie.Comment);
221 AssertEquals ("#08", null, cookie.CommentUri);
222 AssertEquals ("#09", "www.contoso.com", cookie.Domain);
223 AssertEquals ("#10", false, cookie.Expired);
224 AssertEquals ("#11", DateTime.MinValue, cookie.Expires);
225 AssertEquals ("#12", "hola", cookie.Name);
226 AssertEquals ("#13", "/", cookie.Path);
227 AssertEquals ("#14", "", cookie.Port);
228 AssertEquals ("#15", false, cookie.Secure);
230 TimeSpan ts = cookie.TimeStamp - timestamp;
231 if (ts.TotalMilliseconds > 500)
232 AssertEquals ("#16 timestamp", true, false);
234 AssertEquals ("#17", "Adios", cookie.Value);
235 AssertEquals ("#18", 0, cookie.Version);
239 public void TestGetCookies_Args ()
241 CookieContainer cc = new CookieContainer ();
243 cc.GetCookies (null);
244 AssertEquals ("#01", true, false);
245 } catch (ArgumentNullException) {
250 public void TestSetCookies_Args ()
252 CookieContainer cc = new CookieContainer ();
254 cc.SetCookies (null, "");
255 AssertEquals ("#01", true, false);
256 } catch (ArgumentNullException) {
260 cc.SetCookies (new Uri ("http://www.contoso.com"), null);
261 AssertEquals ("#02", true, false);
262 } catch (ArgumentNullException) {
266 cc.SetCookies (new Uri ("http://www.contoso.com"), "=lalala");
267 AssertEquals ("#03", true, false);
268 } catch (CookieException) {
272 cc.SetCookies (new Uri ("http://www.contoso.com"), "");
273 } catch (CookieException) {
274 AssertEquals ("#04", true, false);