Author: andrews
Date: 2006-06-25 11:57:40 -0400 (Sun, 25 Jun 2006)
New Revision: 62035
Added:
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/BaseControl.cs
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/BaseControlCollection.cs
Modified:
trunk/mcs/class/System.Web/ChangeLog
trunk/mcs/class/System.Web/System.Web_test.dll.sources
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/FormRequest.cs
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/NunitWeb.csproj
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/PostableRequest.cs
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/PostableWorkerRequest.cs
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/Test1/Class1.cs
Log:
refactor in NunitWeb
Modified: trunk/mcs/class/System.Web/ChangeLog
===================================================================
--- trunk/mcs/class/System.Web/ChangeLog 2006-06-25 14:22:48 UTC (rev
62034)
+++ trunk/mcs/class/System.Web/ChangeLog 2006-06-25 15:57:40 UTC (rev
62035)
@@ -1,12 +1,11 @@
+2006-06-25 Andrew Skiba <[EMAIL PROTECTED]>
+
+ * System.Web_test.dll.sources: add BaseControl.cs and
+ BaseControlCollection.cs
+
2006-06-25 Yoni Klain <[EMAIL PROTECTED]>
- * System.Web_test.dll.sources:
- * add GridView test and GridView subclasses
- * GridViewTest.cs;
- * AutoGeneratedFieldTest.cs;BoundFieldTest.cs;DataControlFieldTest.cs;
- * DataControlFieldCollectionTest.cs;DataKeyArrayTest.cs;
- * DataKeyTest.cs;ButtonFieldBaseTest.cs;HyperLinkFieldTest.cs;
- * CommandFieldTest.cs;CheckBoxFieldTest.cs;TemplateFieldTest.cs
+ * System.Web_test.dll.sources: add GridView test and GridView subclasses
2006-06-21 Andrew Skiba <[EMAIL PROTECTED]>
Modified: trunk/mcs/class/System.Web/System.Web_test.dll.sources
===================================================================
--- trunk/mcs/class/System.Web/System.Web_test.dll.sources 2006-06-25
14:22:48 UTC (rev 62034)
+++ trunk/mcs/class/System.Web/System.Web_test.dll.sources 2006-06-25
15:57:40 UTC (rev 62035)
@@ -12,6 +12,8 @@
mainsoft/MainsoftWebTest/HtmlAgilityPack/tools.cs
mainsoft/MainsoftWebTest/NunitWebTest.cs
mainsoft/MainsoftWebTest/XmlComparer.cs
+mainsoft/NunitWeb/NunitWeb/BaseControl.cs
+mainsoft/NunitWeb/NunitWeb/BaseControlCollection.cs
mainsoft/NunitWeb/NunitWeb/BaseInvoker.cs
mainsoft/NunitWeb/NunitWeb/BaseRequest.cs
mainsoft/NunitWeb/NunitWeb/BaseWorkerRequest.cs
Added: trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/BaseControl.cs
===================================================================
--- trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/BaseControl.cs
2006-06-25 14:22:48 UTC (rev 62034)
+++ trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/BaseControl.cs
2006-06-25 15:57:40 UTC (rev 62035)
@@ -0,0 +1,32 @@
+using System;
+
+namespace MonoTests.SystemWeb.Framework
+{
+ [Serializable]
+ public class BaseControl
+ {
+ string _name;
+ public virtual string Name
+ {
+ get { return _name; }
+ set { _name = value; }
+ }
+
+ string _value;
+ public virtual string Value
+ {
+ get { return _value; }
+ set { _value = value; }
+ }
+
+ /// <summary>
+ /// Returns true, if the control is valid for submission.
Override
+ /// to implement different controls validation. See
+ ///
http://www.w3.org/TR/REC-html40/interact/forms.html#successful-controls
+ /// </summary>
+ public virtual bool IsSuccessful ()
+ {
+ return true;
+ }
+ }
+}
Added:
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/BaseControlCollection.cs
===================================================================
---
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/BaseControlCollection.cs
2006-06-25 14:22:48 UTC (rev 62034)
+++
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/BaseControlCollection.cs
2006-06-25 15:57:40 UTC (rev 62035)
@@ -0,0 +1,26 @@
+using System;
+using System.Collections;
+using System.Collections.Specialized;
+
+namespace MonoTests.SystemWeb.Framework
+{
+ public class BaseControlCollection : NameObjectCollectionBase
+ {
+ public BaseControl this [string name]
+ {
+ get {return base.BaseGet (name) as BaseControl;}
+ set {base.BaseSet (name, value);}
+ }
+
+ public void Remove (string name)
+ {
+ base.BaseRemove (name);
+ }
+
+ public void Add (BaseControl control)
+ {
+ base.BaseAdd (control.Name, control);
+ }
+
+ }
+}
Modified:
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/FormRequest.cs
===================================================================
--- trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/FormRequest.cs
2006-06-25 14:22:48 UTC (rev 62034)
+++ trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/FormRequest.cs
2006-06-25 15:57:40 UTC (rev 62035)
@@ -11,10 +11,21 @@
[Serializable]
public class FormRequest : PostableRequest
{
+ private BaseControlCollection _controls;
+ public BaseControlCollection Controls
+ {
+ get { return _controls; }
+ set { _controls = value; }
+ }
+
public FormRequest (Response response, string formId)
{
- fields = new NameValueCollection();
+ _controls = new BaseControlCollection ();
+ ExtractFormAndHiddenControls (response, formId);
+ }
+ private void ExtractFormAndHiddenControls (Response response,
string formId)
+ {
HtmlAgilityPack.HtmlDocument htmlDoc = new
HtmlAgilityPack.HtmlDocument ();
htmlDoc.LoadHtml (response.Body);
@@ -52,23 +63,22 @@
foreach (XmlNode inputNode in formNode.SelectNodes
("//html:input", nsmgr))
#else
- foreach (XmlNode inputNode in doc.SelectNodes
("//html:input", nsmgr))
+ foreach (XmlNode inputNode in doc.SelectNodes
("//html:[EMAIL PROTECTED]'hidden']", nsmgr))
#endif
- {
- string name;
- string value = "";
- name = inputNode.Attributes["name"].Value;
+ {
+ BaseControl bc = new BaseControl ();
+ bc.Name = inputNode.Attributes["name"].Value;
+ if (bc.Name == null || bc.Name == string.Empty)
+ continue;
if (inputNode.Attributes["value"] != null)
- value =
inputNode.Attributes["value"].Value;
- fields.Add (name, value);
+ bc.Value =
inputNode.Attributes["value"].Value;
+ else
+ bc.Value = "";
+
+ Controls[bc.Name] = bc;
}
}
- private NameValueCollection fields;
- public NameValueCollection Fields
- {
- get { return fields; }
- }
public override string Url
{
@@ -88,10 +98,16 @@
set { throw new Exception ("Must not change
PostContentType of FormPostback"); }
}
- public override byte[] PostData
+ public override byte[] EntityBody
{
- get { return Encoding.ASCII.GetBytes (GetParameters
()); }
- set { throw new Exception ("Must not change PostData of
FormPostback"); }
+ get
+ {
+ if (IsPost)
+ return Encoding.ASCII.GetBytes
(GetUrlencodedDataset ());
+ else
+ return null;
+ }
+ set { throw new Exception ("Must not change EntityBody
of FormPostback"); }
}
protected override string GetQueryString ()
@@ -99,21 +115,25 @@
if (IsPost)
return "";
else
- return GetParameters ();
+ return GetUrlencodedDataset ();
}
- protected string GetParameters ()
+ private string GetUrlencodedDataset ()
{
StringBuilder query = new StringBuilder ();
bool first = true;
- foreach (string key in Fields.AllKeys) {
+ foreach (BaseControl ctrl in Controls) {
+ if (!ctrl.IsSuccessful ())
+ continue;
+
if (first)
first = false;
else
query.Append ("&");
- query.Append (HttpUtility.UrlEncode (key));
+
+ query.Append (HttpUtility.UrlEncode
(ctrl.Name));
query.Append ("=");
- query.Append (HttpUtility.UrlEncode
(Fields[key]));
+ query.Append (HttpUtility.UrlEncode
(ctrl.Value));
}
return query.ToString ();
}
Modified:
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/NunitWeb.csproj
===================================================================
--- trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/NunitWeb.csproj
2006-06-25 14:22:48 UTC (rev 62034)
+++ trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/NunitWeb.csproj
2006-06-25 15:57:40 UTC (rev 62035)
@@ -35,6 +35,8 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
+ <Compile Include="BaseControl.cs" />
+ <Compile Include="BaseControlCollection.cs" />
<Compile Include="BaseInvoker.cs" />
<Compile Include="BaseRequest.cs" />
<Compile Include="FormRequest.cs" />
Modified:
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/PostableRequest.cs
===================================================================
---
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/PostableRequest.cs
2006-06-25 14:22:48 UTC (rev 62034)
+++
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/PostableRequest.cs
2006-06-25 15:57:40 UTC (rev 62035)
@@ -13,11 +13,11 @@
set { _isPost = value; }
}
- byte[] postData;
- public virtual byte[] PostData
+ byte[] entityBody;
+ public virtual byte[] EntityBody
{
- get { return postData; }
- set { postData = value; }
+ get { return entityBody; }
+ set { entityBody = value; }
}
string postContentType;
@@ -39,10 +39,10 @@
protected override BaseWorkerRequest CreateBaseWorkerRequest
(StringWriter wr)
{
- if (PostData == null || !IsPost)
+ if (EntityBody == null || !IsPost)
return base.CreateBaseWorkerRequest (wr);
return new PostableWorkerRequest (Url, GetQueryString
(),
- wr, PostData, PostContentType);
+ wr, EntityBody, PostContentType);
}
}
}
Modified:
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/PostableWorkerRequest.cs
===================================================================
---
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/PostableWorkerRequest.cs
2006-06-25 14:22:48 UTC (rev 62034)
+++
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/PostableWorkerRequest.cs
2006-06-25 15:57:40 UTC (rev 62035)
@@ -6,24 +6,24 @@
{
public class PostableWorkerRequest:BaseWorkerRequest
{
- byte[] postData;
+ byte[] entityBody;
string postContentType;
public override String GetHttpVerbName ()
{
- if (postData == null)
+ if (entityBody == null)
return base.GetHttpVerbName ();
return "POST";
}
public override string GetKnownRequestHeader (int index)
{
- if (postData == null)
+ if (entityBody == null)
return base.GetKnownRequestHeader (index);
switch (index) {
case HttpWorkerRequest.HeaderContentLength:
- return postData.Length.ToString ();
+ return entityBody.Length.ToString ();
case HttpWorkerRequest.HeaderContentType:
return postContentType;
default:
@@ -33,15 +33,16 @@
public override byte[] GetPreloadedEntityBody ()
{
- if (postData == null)
+ if (entityBody == null)
return base.GetPreloadedEntityBody ();
- return postData;
+ return entityBody;
}
- public PostableWorkerRequest (string page, string query,
TextWriter writer, byte[] postData, string postContentType)
+ public PostableWorkerRequest (string page, string query,
TextWriter writer,
+ byte[] entityBody, string postContentType)
: base (page, query, writer)
{
- this.postData = postData;
+ this.entityBody = entityBody;
this.postContentType = postContentType;
}
}
Modified: trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/Test1/Class1.cs
===================================================================
--- trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/Test1/Class1.cs
2006-06-25 14:22:48 UTC (rev 62034)
+++ trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/Test1/Class1.cs
2006-06-25 15:57:40 UTC (rev 62035)
@@ -139,12 +139,12 @@
WebTest t = new WebTest ("Postback.aspx");
string res1 = t.Run ();
FormRequest fr = new FormRequest (t.Response, "form1");
- fr.Fields["txt1"] = "value";
+ fr.Controls["txt1"].Value = "value";
WebTest t1 = new WebTest (fr);
string res2 = t1.Run ();
FormRequest fr1 = new FormRequest (t1.Response,
"form1");
- fr.Fields["txt1"] = "value1";
- string res3 = new WebTest (fr).Run ();
+ fr1.Controls["txt1"].Value = "value1";
+ string res3 = new WebTest (fr1).Run ();
Assert.IsTrue (res3.IndexOf ("value1") != -1);
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches