From 357e2fccaac4dbe2a168f727435af5ee52ebbd55 Mon Sep 17 00:00:00 2001 From: Gert Driesen Date: Fri, 23 Dec 2005 20:42:46 +0000 Subject: * XslTransformTests.cs: Added working XML/HTML indentation tests. svn path=/trunk/mcs/; revision=54803 --- mcs/class/System.XML/Test/System.Xml.Xsl/ChangeLog | 4 + .../Test/System.Xml.Xsl/XslTransformTests.cs | 129 ++++++++++++++++++++- 2 files changed, 131 insertions(+), 2 deletions(-) (limited to 'mcs/class/System.XML') diff --git a/mcs/class/System.XML/Test/System.Xml.Xsl/ChangeLog b/mcs/class/System.XML/Test/System.Xml.Xsl/ChangeLog index 8b7a9f8d25f..a87e54670e3 100644 --- a/mcs/class/System.XML/Test/System.Xml.Xsl/ChangeLog +++ b/mcs/class/System.XML/Test/System.Xml.Xsl/ChangeLog @@ -1,3 +1,7 @@ +2005-12-23 Gert Driesen + + * XslTransformTests.cs: Added working XML/HTML indentation tests. + 2005-12-23 Gert Driesen * XslTransformTests.cs: Added bug numbers to test cases. diff --git a/mcs/class/System.XML/Test/System.Xml.Xsl/XslTransformTests.cs b/mcs/class/System.XML/Test/System.Xml.Xsl/XslTransformTests.cs index 1e8f9dacf58..02d58c65d81 100644 --- a/mcs/class/System.XML/Test/System.Xml.Xsl/XslTransformTests.cs +++ b/mcs/class/System.XML/Test/System.Xml.Xsl/XslTransformTests.cs @@ -886,7 +886,7 @@ xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:msxsl='urn:schemas-micros [Test] [Category ("NotWorking")] // bug #77082: mono does not output newline after xml declaration - public void Output_Indent_Xml () + public void Output_Indent_Xml_DocType () { XsltArgumentList xsltArgs = new XsltArgumentList (); XslTransform xsltProcessor = new XslTransform (); @@ -954,7 +954,7 @@ xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:msxsl='urn:schemas-micros [Test] [Category ("NotWorking")] // bug #77081: mono does not output newline and indentation for non-html elements - public void Output_Indent_Html () + public void Output_Indent_Html_DocType () { XsltArgumentList xsltArgs = new XsltArgumentList (); XslTransform xsltProcessor = new XslTransform (); @@ -1023,6 +1023,131 @@ xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:msxsl='urn:schemas-micros "", Environment.NewLine), sw.ToString (), "#3"); } + [Test] + public void Output_Indent_Xml () + { + XsltArgumentList xsltArgs = new XsltArgumentList (); + XslTransform xsltProcessor = new XslTransform (); + + string xsltFragment = @" + + + + + + + + + + "; + + XmlDocument xmlDoc = new XmlDocument (); + xmlDoc.LoadXml (""); + + // set indent to yes + StringWriter sw = new StringWriter (); + xsltProcessor.Load (new XmlTextReader (new StringReader ( + string.Format (xsltFragment, "indent=\"yes\""))), + new XmlUrlResolver (), AppDomain.CurrentDomain.Evidence); + xsltProcessor.Transform (xmlDoc, xsltArgs, sw, new XmlUrlResolver ()); + + Assert.AreEqual (string.Format (CultureInfo.InvariantCulture, + "{0}" + + "{0}" + + " {0}" + + " {0}" + + " {0}" + + "", Environment.NewLine), sw.ToString (), "#1"); + + // set indent to no + sw.GetStringBuilder ().Length = 0; + xsltProcessor.Load (new XmlTextReader (new StringReader ( + string.Format (xsltFragment, "indent=\"no\""))), + new XmlUrlResolver (), AppDomain.CurrentDomain.Evidence); + xsltProcessor.Transform (xmlDoc, xsltArgs, sw, new XmlUrlResolver ()); + + Assert.AreEqual ( + "" + + "", sw.ToString (), + "#2"); + + // indent not set + sw.GetStringBuilder ().Length = 0; + xsltProcessor.Load (new XmlTextReader (new StringReader ( + string.Format (xsltFragment, ""))), + new XmlUrlResolver (), AppDomain.CurrentDomain.Evidence); + xsltProcessor.Transform (xmlDoc, xsltArgs, sw, new XmlUrlResolver ()); + + Assert.AreEqual ( + "" + + "", sw.ToString (), + "#3"); + } + + [Test] + public void Output_Indent_Html () + { + XsltArgumentList xsltArgs = new XsltArgumentList (); + XslTransform xsltProcessor = new XslTransform (); + + string xsltFragment = @" + + + + + + + + + + "; + + XmlDocument xmlDoc = new XmlDocument (); + xmlDoc.LoadXml (""); + + // set indent to yes + StringWriter sw = new StringWriter (); + xsltProcessor.Load (new XmlTextReader (new StringReader ( + string.Format (xsltFragment, "indent=\"yes\""))), + new XmlUrlResolver (), AppDomain.CurrentDomain.Evidence); + xsltProcessor.Transform (xmlDoc, xsltArgs, sw, new XmlUrlResolver ()); + + Assert.AreEqual (string.Format (CultureInfo.InvariantCulture, + "{0}" + + " {0}" + + "

{0}" + + " {0}" + + "", Environment.NewLine), sw.ToString (), "#1"); + + // set indent to no + sw.GetStringBuilder ().Length = 0; + xsltProcessor.Load (new XmlTextReader (new StringReader ( + string.Format (xsltFragment, "indent=\"no\""))), + new XmlUrlResolver (), AppDomain.CurrentDomain.Evidence); + xsltProcessor.Transform (xmlDoc, xsltArgs, sw, new XmlUrlResolver ()); + + Assert.AreEqual (string.Format (CultureInfo.InvariantCulture, + "

", + Environment.NewLine), sw.ToString (), "#2"); + + // indent not set + sw.GetStringBuilder ().Length = 0; + xsltProcessor.Load (new XmlTextReader (new StringReader ( + string.Format (xsltFragment, ""))), + new XmlUrlResolver (), AppDomain.CurrentDomain.Evidence); + xsltProcessor.Transform (xmlDoc, xsltArgs, sw, new XmlUrlResolver ()); + + Assert.AreEqual (string.Format (CultureInfo.InvariantCulture, + "{0}" + + " {0}" + + "

{0}" + + " {0}" + + "", Environment.NewLine), sw.ToString (), "#3"); + } + [Test] [ExpectedException (typeof (XsltCompileException))] public void Output_Indent_Invalid () -- cgit v1.2.3