Author: gert
Date: 2007-10-15 14:21:27 -0400 (Mon, 15 Oct 2007)
New Revision: 87528
Added:
trunk/gert/standalone/bug333985/
trunk/gert/standalone/bug333985/default.build
trunk/gert/standalone/bug333985/test.cs
Log:
Added test for bug #333985.
Added: trunk/gert/standalone/bug333985/default.build
===================================================================
--- trunk/gert/standalone/bug333985/default.build 2007-10-15 18:06:04 UTC
(rev 87527)
+++ trunk/gert/standalone/bug333985/default.build 2007-10-15 18:21:27 UTC
(rev 87528)
@@ -0,0 +1,53 @@
+<project name="bug333985" default="rebuild">
+ <target name="mono-2.0">
+ <property name="csc.defines"
value="NET_1_0,NET_1_1,NET_2_0,ONLY_2_0,MONO" />
+ </target>
+
+ <target name="net-2.0">
+ <property name="csc.defines"
value="NET_1_0,NET_1_1,NET_2_0,ONLY_2_0" />
+ </target>
+
+ <property name="frameworks" value="mono-2.0,net-2.0" />
+
+ <target name="clean">
+ <delete>
+ <fileset>
+ <include name="out" />
+ <include name="test.exe" />
+ </fileset>
+ </delete>
+ </target>
+
+ <target name="build">
+ <property name="original.targetframework"
value="${nant.settings.currentframework}" />
+
+ <foreach property="framework" item="String" in="${frameworks}"
delim=",">
+ <if test="${framework::exists(framework)}">
+ <property name="nant.settings.currentframework"
value="${framework}" />
+ <call
target="${nant.settings.currentframework}" />
+ <call target="run" />
+ <call target="clean" />
+ </if>
+ </foreach>
+
+ <property name="nant.settings.currentframework"
value="${original.targetframework}" />
+ </target>
+
+ <target name="compile">
+ <csc target="exe" output="test.exe" warnaserror="true"
warninglevel="4">
+ <sources>
+ <include name="test.cs" />
+ </sources>
+ <references>
+ <include name="System.Data.dll" />
+ </references>
+ </csc>
+ </target>
+
+ <target name="run" depends="compile">
+ <exec program="test.exe" managed="true" output="out" />
+ <fail if="${file::exists('out')}" />
+ </target>
+
+ <target name="rebuild" depends="clean, build" />
+</project>
Property changes on: trunk/gert/standalone/bug333985/default.build
___________________________________________________________________
Name: svn:eol-style
+ native
Added: trunk/gert/standalone/bug333985/test.cs
===================================================================
--- trunk/gert/standalone/bug333985/test.cs 2007-10-15 18:06:04 UTC (rev
87527)
+++ trunk/gert/standalone/bug333985/test.cs 2007-10-15 18:21:27 UTC (rev
87528)
@@ -0,0 +1,104 @@
+using System;
+using System.IO;
+using System.Net;
+using System.Text;
+
+class Program
+{
+ static void Main ()
+ {
+ string url = "ftp://users.telenet.be/mono/" +
+ Guid.NewGuid ().ToString ("N") + ".tmp";
+
+ UploadFile (url);
+ DownloadFile (url);
+ DeleteFile (url);
+ DeleteFile_NonExisting (url);
+ }
+
+ static void UploadFile (string url)
+ {
+ FtpWebRequest req = (FtpWebRequest) WebRequest.Create (url);
+ req.Credentials = GetCredentials ();
+ req.Method = WebRequestMethods.Ftp.UploadFile;
+
+ Stream rs = req.GetRequestStream ();
+
+ using (StreamWriter sw = new StreamWriter (rs, Encoding.UTF8)) {
+ sw.WriteLine ("Standalone test for Mono's
FtpWebRequest.");
+ sw.WriteLine ("Working gr�at!");
+ sw.Flush ();
+ }
+ rs.Close ();
+ }
+
+ static void DownloadFile (string url)
+ {
+ string expected = "Standalone test for Mono's FtpWebRequest."
+ + Environment.NewLine + "Working gr�at!"
+ + Environment.NewLine;
+
+ FtpWebRequest req = (FtpWebRequest) WebRequest.Create (url);
+ req.Credentials = GetCredentials ();
+ req.Method = WebRequestMethods.Ftp.DownloadFile;
+
+ FtpWebResponse resp = (FtpWebResponse) req.GetResponse ();
+ Stream rs = resp.GetResponseStream ();
+ using (StreamReader sr = new StreamReader (rs, Encoding.UTF8,
true)) {
+ string content = sr.ReadToEnd ();
+ if (content != expected)
+ throw new Exception ("#1:" + content);
+ }
+ rs.Close ();
+ }
+
+ static void DeleteFile (string url)
+ {
+ FtpWebRequest req = (FtpWebRequest) WebRequest.Create (url);
+ req.Credentials = GetCredentials ();
+ req.Method = WebRequestMethods.Ftp.DeleteFile;
+
+ FtpWebResponse resp = (FtpWebResponse) req.GetResponse ();
+ try {
+ if (resp.StatusCode != FtpStatusCode.FileActionOK)
+ throw new Exception ("#1:"
+resp.StatusCode.ToString ());
+ } finally {
+ resp.Close ();
+ }
+ }
+
+ static void DeleteFile_NonExisting (string url)
+ {
+ FtpWebRequest req = (FtpWebRequest) WebRequest.Create (url);
+ req.Credentials = GetCredentials ();
+ req.Method = WebRequestMethods.Ftp.DeleteFile;
+
+ try {
+ req.GetResponse ();
+ throw new Exception ("#1");
+ } catch (WebException ex) {
+ FtpWebResponse resp = ex.Response as FtpWebResponse;
+ if (resp == null)
+ throw new Exception ("#2");
+ if (resp.StatusCode !=
FtpStatusCode.ActionNotTakenFileUnavailable)
+ throw new Exception ("#3:" + resp.StatusCode);
+ }
+ }
+
+ static NetworkCredential GetCredentials ()
+ {
+ string userName = Environment.GetEnvironmentVariable
("MONO_TESTS_FTP_USER");
+ if (userName == null)
+ throw CreateEnvironmentVariableNotSetException
("MONO_TESTS_FTP_USER");
+
+ string pwd = Environment.GetEnvironmentVariable
("MONO_TESTS_FTP_PWD");
+ if (pwd == null)
+ throw CreateEnvironmentVariableNotSetException
("MONO_TESTS_FTP_PWD");
+ return new NetworkCredential (userName, pwd);
+ }
+
+ static ArgumentException CreateEnvironmentVariableNotSetException
(string name)
+ {
+ return new ArgumentException ("The " + name + " environment
variable is not set");
+ }
+}
Property changes on: trunk/gert/standalone/bug333985/test.cs
___________________________________________________________________
Name: svn:eol-style
+ native
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches