Parcourir la source

2009-01-12 Gonzalo Paniagua Javier <[email protected]>

	* FtpWebRequestTest.cs: test deleting a file.


svn path=/trunk/mcs/; revision=123136
Gonzalo Paniagua Javier il y a 17 ans
Parent
commit
b5ac5d886d

+ 4 - 0
mcs/class/System/Test/System.Net/ChangeLog

@@ -1,4 +1,8 @@
 
+2009-01-12 Gonzalo Paniagua Javier <[email protected]>
+
+	* FtpWebRequestTest.cs: test deleting a file.
+
 2008-11-18 Gonzalo Paniagua Javier <[email protected]>
 
 	* HttpListener2Test.cs: make sure we dispose the listener.

+ 59 - 0
mcs/class/System/Test/System.Net/FtpWebRequestTest.cs

@@ -228,6 +228,65 @@ namespace MonoTests.System.Net
 			}
 		}
 
+		[Test]
+		public void DeleteFile1 ()
+		{
+			ServerDeleteFile sp = new ServerDeleteFile ();
+			sp.Start ();
+			string uri = String.Format ("ftp://{0}:{1}/file.txt", sp.IPAddress, sp.Port);
+			try {
+				FtpWebRequest ftp = (FtpWebRequest) WebRequest.Create (uri);
+				Console.WriteLine (ftp.RequestUri);
+				ftp.KeepAlive = false;
+				ftp.Timeout = 5000;
+				ftp.Method = WebRequestMethods.Ftp.DeleteFile;
+				ftp.UseBinary = true;
+				FtpWebResponse response = (FtpWebResponse) ftp.GetResponse ();
+				Assert.IsTrue ((int) response.StatusCode >= 200 && (int) response.StatusCode < 300, "DF#01");
+				response.Close ();
+			} catch (Exception e) {
+				Console.WriteLine (e);
+				if (!String.IsNullOrEmpty (sp.Where))
+					throw new Exception (sp.Where);
+				throw;
+			} finally {
+				sp.Stop ();
+			}
+		}
+
+		class ServerDeleteFile : FtpServer {
+			protected override void Run ()
+			{
+				Socket client = control.Accept ();
+				NetworkStream ns = new NetworkStream (client, false);
+				StreamWriter writer = new StreamWriter (ns, Encoding.ASCII);
+				StreamReader reader = new StreamReader (ns, Encoding.UTF8);
+				if (!DoAnonymousLogin (writer, reader)) {
+					client.Close ();
+					return;
+				}
+
+				if (!DoInitialDialog (writer, reader, "/home/someuser", "/home/someuser/")) {
+					client.Close ();
+					return;
+				}
+
+				string str = reader.ReadLine ();
+				if (str.Trim () != "DELE file.txt") {
+					Where = "DELE - " + str;
+					client.Close ();
+					return;
+				}
+				writer.WriteLine ("250 Delete operation successful");
+				writer.Flush ();
+				if (!EndConversation (writer, reader)) {
+					client.Close ();
+					return;
+				}
+				client.Close ();
+			}
+		}
+
 		class ServerDownload : FtpServer {
 			protected override void Run ()
 			{