Fix DateTime.MinValue in HttpWebRequest.Date.
[mono.git] / mcs / class / System / Test / System.Net / HttpWebRequestTest.cs
index 907138bb9a3984947cece6cc6f9ab5e297d0d56f..d435d6ff13bfc2a804b6982a357711a191e62a46 100644 (file)
@@ -373,7 +373,7 @@ namespace MonoTests.System.Net
                }
 
                [Test] // bug #508027
-               [Category ("NotWorking")] // bug #5710
+               [Category ("NotWorking")] // #5842
                public void BeginGetResponse ()
                {
                        IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8001);
@@ -693,6 +693,7 @@ namespace MonoTests.System.Net
                }
 
                [Test] // bug #510661
+               [Category ("NotWorking")] // #5842
                public void GetRequestStream_Close_NotAllBytesWritten ()
                {
                        IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 10002);
@@ -760,6 +761,7 @@ namespace MonoTests.System.Net
                }
 
                [Test] // bug #510642
+               [Category ("NotWorking")] // #5842
                public void GetRequestStream_Write_Overflow ()
                {
                        IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 8010);
@@ -2328,10 +2330,32 @@ namespace MonoTests.System.Net
                [Test]
                public void AddAndRemoveDate ()
                {
-                       HttpWebRequest req = (HttpWebRequest) WebRequest.Create ("http://go-mono.com");
-                       req.Date = DateTime.UtcNow;
+                       // Neil Armstrong set his foot on Moon
+                       var landing = new DateTime (1969, 7, 21, 2, 56, 0, DateTimeKind.Utc);
+                       Assert.AreEqual (621214377600000000, landing.Ticks);
+                       var unspecified = new DateTime (1969, 7, 21, 2, 56, 0);
+                       var local = landing.ToLocalTime ();
+
+                       var req = (HttpWebRequest)WebRequest.Create ("http://www.mono-project.com/");
+                       req.Date = landing;
+                       Assert.AreEqual (DateTimeKind.Local, req.Date.Kind);
+                       Assert.AreEqual (local.Ticks, req.Date.Ticks);
+                       Assert.AreEqual (local, req.Date);
+
+                       req.Date = unspecified;
+                       Assert.AreEqual (DateTimeKind.Local, req.Date.Kind);
+                       Assert.AreEqual (unspecified.Ticks, req.Date.Ticks);
+                       Assert.AreEqual (unspecified, req.Date);
+
+                       req.Date = local;
+                       Assert.AreEqual (DateTimeKind.Local, req.Date.Kind);
+                       Assert.AreEqual (local.Ticks, req.Date.Ticks);
+                       Assert.AreEqual (local, req.Date);
+
                        req.Date = DateTime.MinValue;
-                       Assert.AreEqual (DateTime.MinValue, req.Date);
+                       Assert.AreEqual (DateTimeKind.Unspecified, DateTime.MinValue.Kind);
+                       Assert.AreEqual (DateTimeKind.Unspecified, req.Date.Kind);
+                       Assert.AreEqual (0, req.Date.Ticks);
                }
 #endif
                class ListenerScope : IDisposable {