HttpWebRequestTest.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. //
  2. // HttpWebRequestTest.cs - NUnit Test Cases for System.Net.HttpWebRequest
  3. //
  4. // Authors:
  5. // Lawrence Pit ([email protected])
  6. // Martin Willemoes Hansen ([email protected])
  7. //
  8. // (C) 2003 Martin Willemoes Hansen
  9. //
  10. using NUnit.Framework;
  11. using System;
  12. using System.Net;
  13. using System.Collections;
  14. namespace MonoTests.System.Net
  15. {
  16. [TestFixture]
  17. public class HttpWebRequestTest
  18. {
  19. [Test]
  20. public void Sync ()
  21. {
  22. try {
  23. HttpWebRequest req = (HttpWebRequest) WebRequest.Create ("http://www.google.com");
  24. req.UserAgent = "MonoClient v1.0";
  25. Console.WriteLine ("req:If Modified Since: " + req.IfModifiedSince);
  26. WriteHeaders ("req:", req.Headers);
  27. HttpWebResponse res = (HttpWebResponse) req.GetResponse ();
  28. Console.WriteLine ("res:HttpStatusCode: " + res.StatusCode);
  29. Console.WriteLine ("res:HttpStatusDescription: " + res.StatusDescription);
  30. WriteHeaders ("res:", res.Headers);
  31. Console.WriteLine("Last Modified: " + res.LastModified);
  32. WriteCookies ("res:", res.Cookies);
  33. WriteHeaders ("req:", req.Headers);
  34. res.Close ();
  35. } catch (WebException e) {
  36. Console.WriteLine("\nThe following Exception was raised : {0}", e.Message);
  37. }
  38. }
  39. [Test]
  40. public void Async ()
  41. {
  42. }
  43. [Test]
  44. public void AddRange ()
  45. {
  46. HttpWebRequest req = (HttpWebRequest) WebRequest.Create ("http://www.google.com");
  47. req.AddRange (10);
  48. req.AddRange (50, 90);
  49. req.AddRange ("bytes", 100);
  50. req.AddRange ("bytes", 100, 120);
  51. Assertion.AssertEquals ("#1", "bytes=10-,50-90,100-,100-120", req.Headers ["Range"]);
  52. try {
  53. req.AddRange ("bits", 2000);
  54. Assertion.Fail ("#2");
  55. } catch (InvalidOperationException) {}
  56. }
  57. private void WriteHeaders (string label, WebHeaderCollection col)
  58. {
  59. label += "Headers";
  60. if (col.Count == 0)
  61. Console.WriteLine (label + "Nothing in web headers collection\n");
  62. else
  63. Console.WriteLine (label);
  64. for (int i = 0; i < col.Count; i++)
  65. Console.WriteLine ("\t" + col.GetKey (i) + ": " + col.Get (i));
  66. }
  67. private void WriteCookies (string label, CookieCollection col)
  68. {
  69. label += "Cookies";
  70. if (col.Count == 0)
  71. Console.WriteLine (label + "Nothing in cookies collection\n");
  72. else
  73. Console.WriteLine (label);
  74. for (int i = 0; i < col.Count; i++)
  75. Console.WriteLine ("\t" + col [i]);
  76. }
  77. }
  78. }