Author: gert
Date: 2008-02-06 14:11:13 -0500 (Wed, 06 Feb 2008)
New Revision: 95062

Added:
   trunk/gert/standalone/bug357565/
   trunk/gert/standalone/bug357565/default.build
   trunk/gert/standalone/bug357565/test.cs
   trunk/gert/standalone/bug357565/web/
   trunk/gert/standalone/bug357565/web/Default.aspx
   trunk/gert/standalone/bug357565/web/Default.aspx.cs
   trunk/gert/standalone/bug357565/web/Global.asax
Log:
Added test for bug #357565.


Added: trunk/gert/standalone/bug357565/default.build
===================================================================
--- trunk/gert/standalone/bug357565/default.build       2008-02-06 19:07:33 UTC 
(rev 95061)
+++ trunk/gert/standalone/bug357565/default.build       2008-02-06 19:11:13 UTC 
(rev 95062)
@@ -0,0 +1,51 @@
+<project name="bug357565" default="rebuild">
+       <include buildfile="../../build/common.build" />
+       
+       <target name="mono-2.0-init">
+               <property name="xsp.package" value="xsp-2" />
+       </target>
+
+       <target name="net-2.0-init">
+               <property name="xsp.package" value="xsp-2" />
+       </target>
+
+       <property name="frameworks" value="mono-2.0,net-2.0" />
+
+       <target name="clean">
+               <delete>
+                       <fileset>
+                               <include name="web/app_end" />
+                               <include name="web/app_offline.htm" />
+                               <include name="web/app_start" />
+                               <include name="out" />
+                               <include name="test.exe" />
+                       </fileset>
+               </delete>
+       </target>
+
+       <target name="compile" depends="init">
+               <csc target="exe" define="${csc.defines}" output="test.exe" 
warnaserror="true" warninglevel="4">
+                       <sources>
+                               <include name="../../build/common/Assert.cs" />
+                               <include name="test.cs" />
+                       </sources>
+                       <references>
+                               <include name="System.Web.dll" />
+                       </references>
+               </csc>
+       </target>
+
+       <target name="run-test" depends="compile">
+               <exec 
program="${pkg-config::get-variable(xsp.package,'Executable')}" managed="true" 
spawn="true" pidproperty="server.pid">
+                       <arg value="--root" />
+                       <arg dir="web" />
+                       <arg value="--port" />
+                       <arg value="8081" />
+               </exec>
+               <sleep milliseconds="1000" />
+               <exec program="test.exe" managed="true" output="out" />
+               <fail if="${file::exists('out')}" />
+               <kill pid="${server.pid}" />
+               <sleep milliseconds="1000" />
+       </target>
+</project>


Property changes on: trunk/gert/standalone/bug357565/default.build
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/gert/standalone/bug357565/test.cs
===================================================================
--- trunk/gert/standalone/bug357565/test.cs     2008-02-06 19:07:33 UTC (rev 
95061)
+++ trunk/gert/standalone/bug357565/test.cs     2008-02-06 19:11:13 UTC (rev 
95062)
@@ -0,0 +1,99 @@
+using System;
+using System.Globalization;
+using System.IO;
+using System.Net;
+using System.Text;
+using System.Threading;
+
+class Program
+{
+       static int Main ()
+       {
+               Thread.CurrentThread.CurrentCulture = 
CultureInfo.InvariantCulture;
+               Thread.CurrentThread.CurrentUICulture = 
CultureInfo.InvariantCulture;
+
+               string webDir = Path.Combine 
(AppDomain.CurrentDomain.BaseDirectory,
+                       "web");
+
+               HttpWebRequest request = (HttpWebRequest) WebRequest.Create 
("http://localhost:8081/Default.aspx";);
+               request.Method = "GET";
+
+               try {
+                       HttpWebResponse response = (HttpWebResponse) 
request.GetResponse ();
+                       using (StreamReader sr = new StreamReader 
(response.GetResponseStream (), Encoding.UTF8, true)) {
+                               string result = sr.ReadToEnd ();
+
+                               Assert.IsTrue (result.IndexOf ("<p>OK</p>") != 
-1, "#A1:" + result);
+                               Assert.IsTrue (File.Exists (Path.Combine 
(webDir, "app_start")), "#A2");
+                               Assert.IsFalse (File.Exists (Path.Combine 
(webDir, "app_end")), "#A3");
+                       }
+                       response.Close ();
+               } catch (WebException ex) {
+                       HttpWebResponse response = (HttpWebResponse) 
ex.Response;
+                       if (response != null) {
+                               using (StreamReader sr = new StreamReader 
(response.GetResponseStream ())) {
+                                       Console.WriteLine (sr.ReadToEnd ());
+                               }
+                       }
+                       return 1;
+               }
+
+               File.Create (Path.Combine (webDir, "app_offline.htm")).Close ();
+               Thread.Sleep (500);
+               Assert.IsTrue (File.Exists (Path.Combine (webDir, 
"app_start")), "#B1");
+               Assert.IsTrue (File.Exists (Path.Combine (webDir, "app_end")), 
"#B2");
+
+               request = (HttpWebRequest) WebRequest.Create 
("http://localhost:8081/Default.aspx";);
+               request.Method = "GET";
+
+               try {
+                       request.GetResponse ();
+                       return 2;
+               } catch (WebException ex) {
+                       HttpWebResponse response = (HttpWebResponse) 
ex.Response;
+                       Assert.AreEqual (WebExceptionStatus.ProtocolError, 
ex.Status, "#C1");
+                       Assert.IsNotNull (response, "#C2");
+                       Assert.AreEqual (HttpStatusCode.NotFound, 
response.StatusCode, "#C3");
+               }
+
+               File.Delete (Path.Combine (webDir, "app_start"));
+               File.Delete (Path.Combine (webDir, "app_end"));
+               File.Delete (Path.Combine (webDir, "app_offline.htm"));
+               Thread.Sleep (500);
+
+               request = (HttpWebRequest) WebRequest.Create 
("http://localhost:8081/Default.aspx";);
+               request.Method = "GET";
+
+               try {
+                       HttpWebResponse response = (HttpWebResponse) 
request.GetResponse ();
+                       using (StreamReader sr = new StreamReader 
(response.GetResponseStream (), Encoding.UTF8, true)) {
+                               string result = sr.ReadToEnd ();
+
+                               Assert.IsTrue (result.IndexOf ("<p>OK</p>") != 
-1, "#D1:" + result);
+                               Assert.IsTrue (File.Exists (Path.Combine 
(webDir, "app_start")), "#D2");
+                               Assert.IsFalse (File.Exists (Path.Combine 
(webDir, "app_end")), "#D3");
+                       }
+                       response.Close ();
+               } catch (WebException ex) {
+                       HttpWebResponse response = (HttpWebResponse) 
ex.Response;
+                       if (response != null) {
+                               using (StreamReader sr = new StreamReader 
(response.GetResponseStream ())) {
+                                       Console.WriteLine (sr.ReadToEnd ());
+                               }
+                       }
+                       return 3;
+               }
+
+               Assert.IsTrue (File.Exists (Path.Combine (webDir, 
"app_start")), "#E1");
+               Assert.IsFalse (File.Exists (Path.Combine (webDir, "app_end")), 
"#E2");
+
+               File.Create (Path.Combine (webDir, "app_temp.htm")).Close ();
+               File.Move (Path.Combine (webDir, "app_temp.htm"), Path.Combine 
(webDir, "app_offline.htm"));
+               Thread.Sleep (200);
+
+               Assert.IsTrue (File.Exists (Path.Combine (webDir, 
"app_start")), "#E3");
+               Assert.IsTrue (File.Exists (Path.Combine (webDir, "app_end")), 
"#E4");
+
+               return 0;
+       }
+}


Property changes on: trunk/gert/standalone/bug357565/test.cs
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/gert/standalone/bug357565/web/Default.aspx
===================================================================
--- trunk/gert/standalone/bug357565/web/Default.aspx    2008-02-06 19:07:33 UTC 
(rev 95061)
+++ trunk/gert/standalone/bug357565/web/Default.aspx    2008-02-06 19:11:13 UTC 
(rev 95062)
@@ -0,0 +1,13 @@
+<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" 
Inherits="_Default" %>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
+<html xmlns="http://www.w3.org/1999/xhtml";>
+<head runat="server">
+       <title>Untitled Page</title>
+</head>
+<body>
+       <form id="form1" runat="server">
+       <p>OK</p>
+       </form>
+</body>
+</html>


Property changes on: trunk/gert/standalone/bug357565/web/Default.aspx
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/gert/standalone/bug357565/web/Default.aspx.cs
===================================================================
--- trunk/gert/standalone/bug357565/web/Default.aspx.cs 2008-02-06 19:07:33 UTC 
(rev 95061)
+++ trunk/gert/standalone/bug357565/web/Default.aspx.cs 2008-02-06 19:11:13 UTC 
(rev 95062)
@@ -0,0 +1,13 @@
+using System;
+using System.Data;
+using System.Configuration;
+using System.Web;
+using System.Web.Security;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using System.Web.UI.WebControls.WebParts;
+using System.Web.UI.HtmlControls;
+
+public partial class _Default : Page
+{
+}


Property changes on: trunk/gert/standalone/bug357565/web/Default.aspx.cs
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/gert/standalone/bug357565/web/Global.asax
===================================================================
--- trunk/gert/standalone/bug357565/web/Global.asax     2008-02-06 19:07:33 UTC 
(rev 95061)
+++ trunk/gert/standalone/bug357565/web/Global.asax     2008-02-06 19:11:13 UTC 
(rev 95062)
@@ -0,0 +1,16 @@
+<% @Application Language="C#" %>
+<%@ Import Namespace="System.IO" %>
+<script runat="server">
+       static string webDir = null;
+
+       void Application_Start(object o, EventArgs e)
+       {
+               webDir = Server.MapPath (".");
+               File.Create (Path.Combine (webDir, "app_start")).Close ();
+       }
+
+       void Application_End (object o, EventArgs e)
+       {
+               File.Create (Path.Combine (webDir, "app_end")).Close ();
+       }
+</script>

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to