CookieContainerTest.cs 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279
  1. //
  2. // System.Net.CookieContainerTest - CookieContainer tests
  3. //
  4. // Authors:
  5. // Gonzalo Paniagua Javier ([email protected])
  6. //
  7. // (c) Copyright 2004 Novell, Inc. (http://www.novell.com)
  8. //
  9. using NUnit.Framework;
  10. using System;
  11. using System.Net;
  12. using System.Reflection;
  13. namespace MonoTests.System.Net
  14. {
  15. [TestFixture]
  16. public class CookieContainerTest : Assertion
  17. {
  18. [Test]
  19. public void TestCtor1 ()
  20. {
  21. CookieContainer c = new CookieContainer (234);
  22. AssertEquals ("#01", 234, c.Capacity);
  23. bool passed = false;
  24. try {
  25. new CookieContainer (0);
  26. passed = false;
  27. } catch (ArgumentException) {
  28. passed = true;
  29. }
  30. AssertEquals ("#02", true, passed);
  31. try {
  32. new CookieContainer (-10);
  33. passed = false;
  34. } catch (ArgumentException) {
  35. passed = true;
  36. }
  37. AssertEquals ("#03", true, passed);
  38. }
  39. [Test]
  40. public void TestCtor3 ()
  41. {
  42. CookieContainer c = new CookieContainer (100, 50, 1000);
  43. AssertEquals ("#01", 100, c.Capacity);
  44. AssertEquals ("#02", 50, c.PerDomainCapacity);
  45. AssertEquals ("#03", 1000, c.MaxCookieSize);
  46. bool passed = false;
  47. try {
  48. new CookieContainer (100, 0, 1000);
  49. passed = false;
  50. } catch (ArgumentException) {
  51. passed = true;
  52. }
  53. AssertEquals ("#04", true, passed);
  54. try {
  55. new CookieContainer (100, -1, 1000);
  56. passed = false;
  57. } catch (ArgumentException) {
  58. passed = true;
  59. }
  60. AssertEquals ("#05", true, passed);
  61. try {
  62. new CookieContainer (100, Int32.MaxValue, 1000);
  63. passed = true;
  64. } catch (ArgumentException) {
  65. passed = false;
  66. }
  67. AssertEquals ("#06", true, passed);
  68. try {
  69. new CookieContainer (100, 50, 0);
  70. passed = false;
  71. } catch (ArgumentException) {
  72. passed = true;
  73. }
  74. AssertEquals ("#07", true, passed);
  75. try {
  76. new CookieContainer (100, 500, -4);
  77. passed = false;
  78. } catch (ArgumentException) {
  79. passed = true;
  80. }
  81. AssertEquals ("#08", true, passed);
  82. }
  83. [Test]
  84. public void TestDefaultLimits ()
  85. {
  86. AssertEquals ("#01", CookieContainer.DefaultCookieLengthLimit, 4096);
  87. AssertEquals ("#02", CookieContainer.DefaultCookieLimit, 300);
  88. AssertEquals ("#03", CookieContainer.DefaultPerDomainCookieLimit, 20);
  89. }
  90. [Test]
  91. public void TestCapacity ()
  92. {
  93. CookieContainer c = new CookieContainer ();
  94. AssertEquals ("#01", c.Capacity, 300);
  95. c.Capacity = 200;
  96. AssertEquals ("#02", c.Capacity, 200);
  97. bool passed = false;
  98. try {
  99. c.Capacity = -5;
  100. passed = false;
  101. } catch (ArgumentOutOfRangeException) {
  102. passed = true;
  103. }
  104. AssertEquals ("#03", true, passed);
  105. try {
  106. c.Capacity = 5; // must be >= PerDomainCapacity if PerDomainCapacity != Int32.MaxValue
  107. passed = false;
  108. } catch (ArgumentOutOfRangeException) {
  109. passed = true;
  110. }
  111. AssertEquals ("#04", true, passed);
  112. passed = false;
  113. }
  114. [Test]
  115. public void TestMaxCookieSize ()
  116. {
  117. CookieContainer c = new CookieContainer ();
  118. AssertEquals ("#01", c.MaxCookieSize, 4096);
  119. bool passed = false;
  120. try {
  121. c.MaxCookieSize = -5;
  122. passed = false;
  123. } catch (ArgumentOutOfRangeException) {
  124. passed = true;
  125. }
  126. AssertEquals ("#02", true, passed);
  127. try {
  128. c.MaxCookieSize = -1;
  129. passed = false;
  130. } catch (ArgumentOutOfRangeException) {
  131. passed = true;
  132. }
  133. AssertEquals ("#03", true, passed);
  134. c.MaxCookieSize = 80000;
  135. AssertEquals ("#04", 80000, c.MaxCookieSize);
  136. c.MaxCookieSize = Int32.MaxValue;
  137. AssertEquals ("#04", Int32.MaxValue, c.MaxCookieSize);
  138. }
  139. [Test]
  140. public void TestAdd_Args ()
  141. {
  142. CookieContainer cc = new CookieContainer ();
  143. bool passed = false;
  144. try {
  145. cc.Add ((Cookie) null);
  146. passed = false;
  147. } catch (ArgumentNullException) {
  148. passed = true;
  149. }
  150. AssertEquals ("#01", true, passed);
  151. try {
  152. cc.Add ((CookieCollection) null);
  153. passed = false;
  154. } catch (ArgumentNullException) {
  155. passed = true;
  156. }
  157. AssertEquals ("#02", true, passed);
  158. try {
  159. cc.Add (null, (Cookie) null);
  160. passed = false;
  161. } catch (ArgumentNullException) {
  162. passed = true;
  163. }
  164. AssertEquals ("#03", true, passed);
  165. try {
  166. cc.Add (null, (CookieCollection) null);
  167. passed = false;
  168. } catch (ArgumentNullException) {
  169. passed = true;
  170. }
  171. AssertEquals ("#04", true, passed);
  172. try {
  173. cc.Add (new Uri ("http://www.contoso.com"), (Cookie) null);
  174. passed = false;
  175. } catch (ArgumentNullException) {
  176. passed = true;
  177. }
  178. AssertEquals ("#05", true, passed);
  179. try {
  180. cc.Add (new Uri ("http://www.contoso.com"), (CookieCollection) null);
  181. passed = false;
  182. } catch (ArgumentNullException) {
  183. passed = true;
  184. }
  185. AssertEquals ("#06", true, passed);
  186. }
  187. [Test]
  188. public void TestAdd_Cookie ()
  189. {
  190. CookieContainer cc = new CookieContainer ();
  191. Uri uri = new Uri ("http://www.contoso.com");
  192. cc.Add (uri, new CookieCollection ());
  193. DateTime timestamp = DateTime.Now;
  194. cc.Add (uri, new Cookie ("hola", "Adios"));
  195. CookieCollection coll = cc.GetCookies (uri);
  196. Cookie cookie = coll [0];
  197. AssertEquals ("#07", "", cookie.Comment);
  198. AssertEquals ("#08", null, cookie.CommentUri);
  199. AssertEquals ("#09", "www.contoso.com", cookie.Domain);
  200. AssertEquals ("#10", false, cookie.Expired);
  201. AssertEquals ("#11", DateTime.MinValue, cookie.Expires);
  202. AssertEquals ("#12", "hola", cookie.Name);
  203. AssertEquals ("#13", "/", cookie.Path);
  204. AssertEquals ("#14", "", cookie.Port);
  205. AssertEquals ("#15", false, cookie.Secure);
  206. // FIX the next test
  207. TimeSpan ts = cookie.TimeStamp - timestamp;
  208. if (ts.TotalMilliseconds > 500)
  209. AssertEquals ("#16 timestamp", true, false);
  210. AssertEquals ("#17", "Adios", cookie.Value);
  211. AssertEquals ("#18", 0, cookie.Version);
  212. }
  213. [Test]
  214. public void TestGetCookies_Args ()
  215. {
  216. CookieContainer cc = new CookieContainer ();
  217. try {
  218. cc.GetCookies (null);
  219. AssertEquals ("#01", true, false);
  220. } catch (ArgumentNullException) {
  221. }
  222. }
  223. [Test]
  224. public void TestSetCookies_Args ()
  225. {
  226. CookieContainer cc = new CookieContainer ();
  227. try {
  228. cc.SetCookies (null, "");
  229. AssertEquals ("#01", true, false);
  230. } catch (ArgumentNullException) {
  231. }
  232. try {
  233. cc.SetCookies (new Uri ("http://www.contoso.com"), null);
  234. AssertEquals ("#02", true, false);
  235. } catch (ArgumentNullException) {
  236. }
  237. try {
  238. cc.SetCookies (new Uri ("http://www.contoso.com"), "=lalala");
  239. AssertEquals ("#03", true, false);
  240. } catch (CookieException) {
  241. }
  242. try {
  243. cc.SetCookies (new Uri ("http://www.contoso.com"), "");
  244. } catch (CookieException) {
  245. AssertEquals ("#04", true, false);
  246. }
  247. }
  248. }
  249. }