Author: andrews
Date: 2006-05-17 10:56:26 -0400 (Wed, 17 May 2006)
New Revision: 60781

Added:
   trunk/mcs/class/System.Web/Test/mainsoft/MainsoftWebTest/nunitweb_config.xml
Modified:
   trunk/mcs/class/System.Web/Test/mainsoft/MainsoftWebTest/ChangeLog
   trunk/mcs/class/System.Web/Test/mainsoft/MainsoftWebTest/NunitWebTest.cs
Log:
* nunitweb_config.xml: similar to almost_config.xml but ignores more stuff
* NunitWebTest.cs: use nunit_config.xml and fallback on XmlException

Modified: trunk/mcs/class/System.Web/Test/mainsoft/MainsoftWebTest/ChangeLog
===================================================================
--- trunk/mcs/class/System.Web/Test/mainsoft/MainsoftWebTest/ChangeLog  
2006-05-17 14:52:15 UTC (rev 60780)
+++ trunk/mcs/class/System.Web/Test/mainsoft/MainsoftWebTest/ChangeLog  
2006-05-17 14:56:26 UTC (rev 60781)
@@ -1,3 +1,8 @@
+2006-05-17  Andrew Skiba <[EMAIL PROTECTED]>
+
+       * nunitweb_config.xml: similar to almost_config.xml but ignores more 
stuff
+       * NunitWebTest.cs: use nunit_config.xml and fallback on XmlException
+
 2006-03-27  Vladimir Krasnov  <[EMAIL PROTECTED]>
 
        * test_catalog.xml: fixed not working tests

Modified: 
trunk/mcs/class/System.Web/Test/mainsoft/MainsoftWebTest/NunitWebTest.cs
===================================================================
--- trunk/mcs/class/System.Web/Test/mainsoft/MainsoftWebTest/NunitWebTest.cs    
2006-05-17 14:52:15 UTC (rev 60780)
+++ trunk/mcs/class/System.Web/Test/mainsoft/MainsoftWebTest/NunitWebTest.cs    
2006-05-17 14:56:26 UTC (rev 60781)
@@ -1,71 +1,72 @@
-//
-// Authors:
-//   Rafael Mizrahi   <[EMAIL PROTECTED]>
-//   Erez Lotan       <[EMAIL PROTECTED]>
-//   Vladimir Krasnov <[EMAIL PROTECTED]>
-//   
-// 
-// Copyright (c) 2002-2005 Mainsoft Corporation.
-// 
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.IO;
-using System.Xml;
-using System.Net;
-using System.Text;
-using System.Collections;
-
-namespace MonoTests.stand_alone.WebHarness
-{
-       public abstract class XmlComparableTest
-       {
-
-               public abstract bool XmlCompare(XmlDocument d1, XmlDocument d2, 
bool ignoreAlmost);
-       }
-
-       public class WebTest : XmlComparableTest
+//
+// Authors:
+//   Rafael Mizrahi   <[EMAIL PROTECTED]>
+//   Erez Lotan       <[EMAIL PROTECTED]>
+//   Vladimir Krasnov <[EMAIL PROTECTED]>
+//   
+// 
+// Copyright (c) 2002-2005 Mainsoft Corporation.
+// 
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.IO;
+using System.Xml;
+using System.Net;
+using System.Text;
+using System.Collections;
+using System.Reflection;
+
+namespace MonoTests.stand_alone.WebHarness
+{
+       public abstract class XmlComparableTest
        {
+
+               public abstract bool XmlCompare(XmlDocument d1, XmlDocument d2, 
bool ignoreAlmost);
+       }
+
+       public class WebTest : XmlComparableTest
+       {
                public const string BEGIN_TAG = "begint";
-               public const string END_TAG = "endt";
-
-               private XmlDocument _xmlIgnoreList = null;
+               public const string END_TAG = "endt";
+
+               private XmlDocument _xmlIgnoreList = null;
                private string _compareStatus = "";
                private string _ignoreListFile = "";
 
                
 
-               public WebTest()
-               {
-               }
-
-               public string IgnoreListFile
-               {
-                       get {return _ignoreListFile;}
-                       set {_ignoreListFile = value;}
-               }
-               public string CompareStatus
-               {
-                       get {return _compareStatus.ToString();}
+               public WebTest()
+               {
                }
 
+               public string IgnoreListFile
+               {
+                       get {return _ignoreListFile;}
+                       set {_ignoreListFile = value;}
+               }
+               public string CompareStatus
+               {
+                       get {return _compareStatus.ToString();}
+               }
+
                public static string GetControlFromPageHtml (string str)
                {
                        StringBuilder sb = new StringBuilder ();
@@ -82,181 +83,179 @@
                        XmlDocument dr = new XmlDocument ();
                        dr.LoadXml (helper.HtmltoXml (derived));
                        return helper.XmlCompare (or, dr, false);
-               }
-
-               public override bool XmlCompare(XmlDocument d1, XmlDocument d2, 
bool ignoreAlmost)
-               {
+               }
+
+               public override bool XmlCompare(XmlDocument d1, XmlDocument d2, 
bool ignoreAlmost)
+               {
                        XmlComparer comparer = new XmlComparer();
-                       if (ignoreAlmost == false)
-                       {
-                               DoAlmost(d1);
-                               DoAlmost(d2);
-                       }
-                       bool c = comparer.AreEqual(d1, d2);
-                       _compareStatus = comparer.LastCompare;
-                       return c;
-               }
-
-               public string HtmltoXml(string html)
-               {
-                       HtmlAgilityPack.HtmlDocument doc = new 
HtmlAgilityPack.HtmlDocument();
-                       doc.LoadHtml(html);
-
-                       StringBuilder fixedxml = new StringBuilder();
-                       StringWriter sw = new StringWriter(fixedxml);
-
-                       try
-                       {
-                               StringBuilder tempxml = new StringBuilder();
-                               StringWriter tsw = new StringWriter(tempxml);
-
-                               doc.OptionOutputAsXml = true;
-                               doc.Save(tsw);
-
-                               // fix style attribute
-                               // the reason is that style attribute 
name-value pairs come in different order
-                               // in .NET and GH
-                               // Here I will sort the values of style 
attribute
-                               XmlDocument tempDoc = new XmlDocument();
-                               tempDoc.LoadXml(tempxml.ToString());
-
-                               XmlNodeList allNodes = 
tempDoc.SelectNodes("//*");
-                               foreach (XmlNode n in allNodes)
-                               {
-                                       if (n.Attributes["style"] != null)
-                                       {
-                                               string att = 
n.Attributes["style"].Value;
-                                               string [] style = att.Trim(new 
char[]{' ', ';'}).Split(';');
-
-                                               for (int styleIndex=0; 
styleIndex<style.Length; styleIndex++)
-                                               {
-                                                       style[styleIndex] = 
FixStyleNameValue(style[styleIndex]);
-                                               }
-                                               Array.Sort(style);
-                                               n.Attributes["style"].Value = 
string.Join(";", style);
-                                       }
-                               }
-                               tempDoc.Save(sw);
-                       }
-                       catch (Exception)
-                       {
-                               Console.WriteLine("Error parsing html 
response...");
-                               Console.WriteLine("Test case aborted");
-                               return "<TestCaseAborted></TestCaseAborted>";
-                       }
-                       return fixedxml.ToString();
-               }
-
-               private string FixStyleNameValue(string nameValue)
-               {
-                       string [] nv = nameValue.Split(':');
-                       // value may contain spaces in case of
-                       // multiple values for one key
-                       string [] nvalue = nv[1].Trim().Split(' ');
-                       Array.Sort(nvalue);
-                       nv[1] = string.Join(" ", nvalue);
-                       return nv[0].Trim().ToLower() + ":" + 
nv[1].Trim().ToLower();
-               }
-
-               private void DoAlmost(XmlDocument xmlDocument)
-               {
-                       XmlNode XmlIgnoreNode;
-                       IEnumerator xmlIgnoreEnum;
-
-                       if (_xmlIgnoreList == null)
-                       {
+                       if (ignoreAlmost == false)
+                       {
+                               DoAlmost(d1);
+                               DoAlmost(d2);
+                       }
+                       bool c = comparer.AreEqual(d1, d2);
+                       _compareStatus = comparer.LastCompare;
+                       return c;
+               }
+
+               public string HtmltoXml(string html)
+               {
+                       HtmlAgilityPack.HtmlDocument doc = new 
HtmlAgilityPack.HtmlDocument();
+                       doc.LoadHtml(html);
+
+                       StringBuilder fixedxml = new StringBuilder();
+                       StringWriter sw = new StringWriter(fixedxml);
+
+                       try
+                       {
+                               StringBuilder tempxml = new StringBuilder();
+                               StringWriter tsw = new StringWriter(tempxml);
+
+                               doc.OptionOutputAsXml = true;
+                               doc.Save(tsw);
+
+                               // fix style attribute
+                               // the reason is that style attribute 
name-value pairs come in different order
+                               // in .NET and GH
+                               // Here I will sort the values of style 
attribute
+                               XmlDocument tempDoc = new XmlDocument();
+                               tempDoc.LoadXml(tempxml.ToString());
+
+                               XmlNodeList allNodes = 
tempDoc.SelectNodes("//*");
+                               foreach (XmlNode n in allNodes)
+                               {
+                                       if (n.Attributes["style"] != null)
+                                       {
+                                               string att = 
n.Attributes["style"].Value;
+                                               string [] style = att.Trim(new 
char[]{' ', ';'}).Split(';');
+
+                                               for (int styleIndex=0; 
styleIndex<style.Length; styleIndex++)
+                                               {
+                                                       style[styleIndex] = 
FixStyleNameValue(style[styleIndex]);
+                                               }
+                                               Array.Sort(style);
+                                               n.Attributes["style"].Value = 
string.Join(";", style);
+                                       }
+                               }
+                               tempDoc.Save(sw);
+                       }
+                       catch (XmlException e)
+                       {
+                               return "<Exception><![CDATA["+e.Message 
+"]]></Exception>";
+                       }
+                       return fixedxml.ToString();
+               }
+
+               private string FixStyleNameValue(string nameValue)
+               {
+                       string [] nv = nameValue.Split(':');
+                       // value may contain spaces in case of
+                       // multiple values for one key
+                       string [] nvalue = nv[1].Trim().Split(' ');
+                       Array.Sort(nvalue);
+                       nv[1] = string.Join(" ", nvalue);
+                       return nv[0].Trim().ToLower() + ":" + 
nv[1].Trim().ToLower();
+               }
+
+               private void DoAlmost(XmlDocument xmlDocument)
+               {
+                       XmlNode XmlIgnoreNode;
+                       IEnumerator xmlIgnoreEnum;
+
+                       if (_xmlIgnoreList == null)
+                       {
                                _xmlIgnoreList = new XmlDocument();
                                string xml;
-                               using (Stream source = 
System.Reflection.Assembly.GetExecutingAssembly()
-                                       .GetManifestResourceStream 
("HTMLComparer.almost_config.xml")) {
+                               using (Stream source = 
Assembly.GetExecutingAssembly()
+                                       .GetManifestResourceStream 
("nunitweb_config.xml")) {
                                        using (StreamReader sr = new 
StreamReader (source))
                                                xml = sr.ReadToEnd ();
                                }
-                               _xmlIgnoreList.LoadXml (xml);
-                       }
-
-                       // Remove by Id or Name
-                       // search by tag and if id or name match, remove all 
attributes
-                       // must be the first almost since the following almost 
delete the id and name
-                       xmlIgnoreEnum = 
_xmlIgnoreList.SelectSingleNode("Almost/RemoveById").GetEnumerator();
-                       while (xmlIgnoreEnum.MoveNext())
-                       {
-                               XmlNodeList DocNodeList;
-                               XmlIgnoreNode = (XmlNode)xmlIgnoreEnum.Current;
-                               DocNodeList = 
xmlDocument.GetElementsByTagName("*");
-                               if (DocNodeList != null)
-                               {
-                                       foreach (XmlElement tmpXmlElement in 
DocNodeList)
-                                       {
-                                               foreach (XmlAttribute 
tmpIgnoreAttr in XmlIgnoreNode.Attributes)
-                                               {
-                                                       if 
(tmpXmlElement.Name.ToLower() == XmlIgnoreNode.Name.ToLower()) 
-                                                       {
-                                                               if 
(tmpXmlElement.Attributes[tmpIgnoreAttr.Name] != null )
-                                                               {
-                                                                       if 
(tmpXmlElement.Attributes[tmpIgnoreAttr.Name].Value.ToLower() == 
tmpIgnoreAttr.Value.ToLower())
-                                                                       {
-                                                                               
tmpXmlElement.RemoveAllAttributes();
-                                                                       }
-                                                               }
-                                                       }
-                                               }
-                                       }
-                               }       
-                       }
-                       // remove ignored attributes
-                       // search for tag and remove it's attributes
-                       xmlIgnoreEnum = 
_xmlIgnoreList.SelectSingleNode("Almost/IgnoreList").GetEnumerator(); 
//FirstChild.GetEnumerator
-                       while (xmlIgnoreEnum.MoveNext())
-                       {
-                               XmlIgnoreNode = (XmlNode)xmlIgnoreEnum.Current;
-                               XmlNodeList DocNodeList;
-                               //clean specific element
-
-                               DocNodeList = 
xmlDocument.GetElementsByTagName("*");
-                               if (DocNodeList != null)
-                               {
-                                       foreach (XmlElement tmpXmlElement in 
DocNodeList)
-                                       {
-                                               if 
(tmpXmlElement.Name.ToLower() == XmlIgnoreNode.Name.ToLower()) 
-                                               {
-                                                       foreach (XmlAttribute 
tmpIgnoreAttr in XmlIgnoreNode.Attributes)
-                                                       {
-                                                               
tmpXmlElement.RemoveAttribute(tmpIgnoreAttr.Name);
-                                                       }
-                                               }
-                                       }
-                               }
-                       }
-
-                       // clean javascript attribute value
-                       xmlIgnoreEnum = 
_xmlIgnoreList.SelectSingleNode("Almost/CleanJavaScriptValueList").GetEnumerator();
 //FirstChild.GetEnumerator
-                       while (xmlIgnoreEnum.MoveNext())
-                       {
-                               XmlIgnoreNode = (XmlNode)xmlIgnoreEnum.Current;
-                               XmlNodeList DocNodeList;
-                               //clean Java Script attribute values
-                               DocNodeList = 
xmlDocument.GetElementsByTagName("*");
-                               if (DocNodeList != null)
-                               {
-                                       foreach (XmlElement tmpXmlElement in 
DocNodeList)
-                                       {
-                                               if 
(tmpXmlElement.Name.ToLower() == XmlIgnoreNode.Name.ToLower()) 
-                                               {
-                                                       foreach (XmlAttribute 
tmpIgnoreAttr in XmlIgnoreNode.Attributes)
-                                                       {
-                                                               if 
(tmpXmlElement.Attributes[tmpIgnoreAttr.Name] != null )
-                                                               {
-                                                                       if 
(tmpXmlElement.Attributes[tmpIgnoreAttr.Name].Value.ToLower().IndexOf("javascript")
 >= 0 )
-                                                                       {
-                                                                               
tmpXmlElement.SetAttribute(tmpIgnoreAttr.Name, "");
-                                                                       }
-                                                               }
-                                                       }
-                                               }
-                                       }
-                               }
-                       }
-               }
-       }
-}
+                               _xmlIgnoreList.LoadXml (xml);
+                       }
+
+                       // Remove by Id or Name
+                       // search by tag and if id or name match, remove all 
attributes
+                       // must be the first almost since the following almost 
delete the id and name
+                       xmlIgnoreEnum = 
_xmlIgnoreList.SelectSingleNode("Almost/RemoveById").GetEnumerator();
+                       while (xmlIgnoreEnum.MoveNext())
+                       {
+                               XmlNodeList DocNodeList;
+                               XmlIgnoreNode = (XmlNode)xmlIgnoreEnum.Current;
+                               DocNodeList = 
xmlDocument.GetElementsByTagName("*");
+                               if (DocNodeList != null)
+                               {
+                                       foreach (XmlElement tmpXmlElement in 
DocNodeList)
+                                       {
+                                               foreach (XmlAttribute 
tmpIgnoreAttr in XmlIgnoreNode.Attributes)
+                                               {
+                                                       if 
(tmpXmlElement.Name.ToLower() == XmlIgnoreNode.Name.ToLower()) 
+                                                       {
+                                                               if 
(tmpXmlElement.Attributes[tmpIgnoreAttr.Name] != null )
+                                                               {
+                                                                       if 
(tmpXmlElement.Attributes[tmpIgnoreAttr.Name].Value.ToLower() == 
tmpIgnoreAttr.Value.ToLower())
+                                                                       {
+                                                                               
tmpXmlElement.RemoveAllAttributes();
+                                                                       }
+                                                               }
+                                                       }
+                                               }
+                                       }
+                               }       
+                       }
+                       // remove ignored attributes
+                       // search for tag and remove it's attributes
+                       xmlIgnoreEnum = 
_xmlIgnoreList.SelectSingleNode("Almost/IgnoreList").GetEnumerator(); 
//FirstChild.GetEnumerator
+                       while (xmlIgnoreEnum.MoveNext())
+                       {
+                               XmlIgnoreNode = (XmlNode)xmlIgnoreEnum.Current;
+                               XmlNodeList DocNodeList;
+                               //clean specific element
+
+                               DocNodeList = 
xmlDocument.GetElementsByTagName("*");
+                               if (DocNodeList != null)
+                               {
+                                       foreach (XmlElement tmpXmlElement in 
DocNodeList)
+                                       {
+                                               if 
(tmpXmlElement.Name.ToLower() == XmlIgnoreNode.Name.ToLower()) 
+                                               {
+                                                       foreach (XmlAttribute 
tmpIgnoreAttr in XmlIgnoreNode.Attributes)
+                                                       {
+                                                               
tmpXmlElement.RemoveAttribute(tmpIgnoreAttr.Name);
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
+
+                       // clean javascript attribute value
+                       xmlIgnoreEnum = 
_xmlIgnoreList.SelectSingleNode("Almost/CleanJavaScriptValueList").GetEnumerator();
 //FirstChild.GetEnumerator
+                       while (xmlIgnoreEnum.MoveNext())
+                       {
+                               XmlIgnoreNode = (XmlNode)xmlIgnoreEnum.Current;
+                               XmlNodeList DocNodeList;
+                               //clean Java Script attribute values
+                               DocNodeList = 
xmlDocument.GetElementsByTagName("*");
+                               if (DocNodeList != null)
+                               {
+                                       foreach (XmlElement tmpXmlElement in 
DocNodeList)
+                                       {
+                                               if 
(tmpXmlElement.Name.ToLower() == XmlIgnoreNode.Name.ToLower()) 
+                                               {
+                                                       foreach (XmlAttribute 
tmpIgnoreAttr in XmlIgnoreNode.Attributes)
+                                                       {
+                                                               if 
(tmpXmlElement.Attributes[tmpIgnoreAttr.Name] != null )
+                                                               {
+                                                                       if 
(tmpXmlElement.Attributes[tmpIgnoreAttr.Name].Value.ToLower().IndexOf("javascript")
 >= 0 )
+                                                                       {
+                                                                               
tmpXmlElement.SetAttribute(tmpIgnoreAttr.Name, "");
+                                                                       }
+                                                               }
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+}

Added: 
trunk/mcs/class/System.Web/Test/mainsoft/MainsoftWebTest/nunitweb_config.xml
===================================================================
--- 
trunk/mcs/class/System.Web/Test/mainsoft/MainsoftWebTest/nunitweb_config.xml    
    2006-05-17 14:52:15 UTC (rev 60780)
+++ 
trunk/mcs/class/System.Web/Test/mainsoft/MainsoftWebTest/nunitweb_config.xml    
    2006-05-17 14:56:26 UTC (rev 60781)
@@ -0,0 +1,36 @@
+<Almost>
+       <IgnoreList>
+               <div id="" visible="" name="" onmouseover="" onmouseout="" 
style="" />"
+               <span id="" visible="" name="" src=""/>
+               <input id="" visible="" name="" __EVENTARGUMENT="" 
__EVENTTARGET="" __VIEWSTATE="" causesvalidation=""/>
+               <table id="" visible="" name=""/>
+               <td id="" visible="" name=""/>
+               <th id="" visible="" name=""/>
+               <tr id="" visible="" name=""/>
+               <table id="" visible="" name=""/>
+               <img id="" visible="" name="" disabled="" src=""/>
+               <a id="" visible="" name="" href=""/>
+               <select id="" visible="" name=""/>
+               <textarea id="" visible="" name=""/>
+               <button id="" visible="" name="" causesvalidation=""/>
+               <p visible=""/>
+               <form visible=""/>
+               <label for=""/>
+               <select language="" onchange=""/>
+               <input language="" onchange=""/>
+               <table bordercolor=""/>
+    <tr onmouseover="" onmouseout=""  onkeyup="" id="" />
+  </IgnoreList>
+
+       <!--delete Java Script attribute value-->
+       <CleanJavaScriptValueList>
+               <a href=""/>
+               <a onclick=""/>
+       </CleanJavaScriptValueList>
+
+       <!--remove tags by attribute Id or name-->
+       <RemoveById>
+               <input id="__VIEWSTATE" name="__VIEWSTATE"/>
+       </RemoveById>
+</Almost>
+

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

Reply via email to