diff options
author | Gert Driesen <drieseng@users.sourceforge.net> | 2005-12-27 21:20:07 +0300 |
---|---|---|
committer | Gert Driesen <drieseng@users.sourceforge.net> | 2005-12-27 21:20:07 +0300 |
commit | d32b9cad5a74a5ad14a39fc2fee620ad40f47da8 (patch) | |
tree | 653041eb4d19ceb6779bc0c89901457d6a4c7cc2 /mcs/class/System.XML | |
parent | c7ae6bcb3b91631bb76d2d904149561c268ecfa9 (diff) |
* XslTransformTests.cs: Extended html indentation test (and marked it
NotWorking). Added tests for MS bugs (that have been fixed since).
svn path=/trunk/mcs/; revision=54881
Diffstat (limited to 'mcs/class/System.XML')
-rw-r--r-- | mcs/class/System.XML/Test/System.Xml.Xsl/ChangeLog | 5 | ||||
-rw-r--r-- | mcs/class/System.XML/Test/System.Xml.Xsl/XslTransformTests.cs | 110 |
2 files changed, 112 insertions, 3 deletions
diff --git a/mcs/class/System.XML/Test/System.Xml.Xsl/ChangeLog b/mcs/class/System.XML/Test/System.Xml.Xsl/ChangeLog index 776b07c304b..3f0a3e39163 100644 --- a/mcs/class/System.XML/Test/System.Xml.Xsl/ChangeLog +++ b/mcs/class/System.XML/Test/System.Xml.Xsl/ChangeLog @@ -1,3 +1,8 @@ +2005-12-27 Gert Driesen <drieseng@users.sourceforge.net> + + * XslTransformTests.cs: Extended html indentation test (and marked + it NotWorking). Added tests for MS bugs (that have been fixed since). + 2005-12-24 Gert Driesen <drieseng@users.sourceforge.net> * XslTransformTests.cs: Enabled forwards compatible tests. 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 758d0fded93..82661e3797a 100644 --- a/mcs/class/System.XML/Test/System.Xml.Xsl/XslTransformTests.cs +++ b/mcs/class/System.XML/Test/System.Xml.Xsl/XslTransformTests.cs @@ -1164,6 +1164,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 () { XsltArgumentList xsltArgs = new XsltArgumentList (); @@ -1178,6 +1179,15 @@ xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:msxsl='urn:schemas-micros <xsl:element name=""html""> <xsl:element name=""body""> <xsl:element name=""p"" /> + <xsl:element name=""p""> + <xsl:text>something</xsl:text> + </xsl:element> + <xsl:element name=""p""> + <xsl:element name=""div"" /> + </xsl:element> + <xsl:element name=""p""> + <xsl:element name=""whatever"" /> + </xsl:element> </xsl:element> </xsl:element> </xsl:template> @@ -1196,7 +1206,17 @@ xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:msxsl='urn:schemas-micros Assert.AreEqual (string.Format (CultureInfo.InvariantCulture, "<html>{0}" + " <body>{0}" + - " <p></p>{0}" + + " <p>{0}" + + " </p>{0}" + + " <p>something</p>{0}" + + " <p>{0}" + + " <div>{0}" + + " </div>{0}" + + " </p>{0}" + + " <p>{0}" + + " <whatever>{0}" + + " </whatever>{0}" + + " </p>{0}" + " </body>{0}" + "</html>", Environment.NewLine), sw.ToString (), "#1"); @@ -1208,7 +1228,8 @@ xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:msxsl='urn:schemas-micros xsltProcessor.Transform (xmlDoc, xsltArgs, sw, new XmlUrlResolver ()); Assert.AreEqual (string.Format (CultureInfo.InvariantCulture, - "<html><body><p></p></body></html>", + "<html><body><p></p><p>something</p><p><div></div></p>" + + "<p><whatever></whatever></p></body></html>", Environment.NewLine), sw.ToString (), "#2"); // indent not set @@ -1221,7 +1242,17 @@ xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:msxsl='urn:schemas-micros Assert.AreEqual (string.Format (CultureInfo.InvariantCulture, "<html>{0}" + " <body>{0}" + - " <p></p>{0}" + + " <p>{0}" + + " </p>{0}" + + " <p>something</p>{0}" + + " <p>{0}" + + " <div>{0}" + + " </div>{0}" + + " </p>{0}" + + " <p>{0}" + + " <whatever>{0}" + + " </whatever>{0}" + + " </p>{0}" + " </body>{0}" + "</html>", Environment.NewLine), sw.ToString (), "#3"); } @@ -1745,5 +1776,78 @@ xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:msxsl='urn:schemas-micros xsltProcessor.Load (new XmlTextReader (new StringReader (xsltFragment)), new XmlUrlResolver (), AppDomain.CurrentDomain.Evidence); } + + // http://support.microsoft.com/kb/832757/en-us + [Test] + public void FormatNumber_KB_832757 () + { + string xsltFragment = @"<?xml version=""1.0"" encoding=""UTF-8""?> + <xsl:stylesheet version=""1.0"" xmlns:xsl=""http://www.w3.org/1999/XSL/Transform""> + <xsl:output method=""xml"" version=""1.0"" encoding=""UTF-8"" indent=""yes"" /> + <xsl:template match=""/""> + <table> + <xsl:apply-templates /> + </table> + </xsl:template> + <xsl:template match=""number""> + <tr><td><xsl:value-of select=""format-number(.,'#,##0;(#,##0)')""/></td></tr> + </xsl:template> + </xsl:stylesheet>"; + + XmlDocument xmlDoc = new XmlDocument (); + xmlDoc.LoadXml ("<root><number>1000</number></root>"); + + StringWriter sw = new StringWriter (); + XslTransform xsltProcessor = new XslTransform (); + xsltProcessor.Load (new XmlTextReader (new StringReader (xsltFragment)), + new XmlUrlResolver (), AppDomain.CurrentDomain.Evidence); + xsltProcessor.Transform (xmlDoc, new XsltArgumentList (), sw, + new XmlUrlResolver ()); + + Assert.AreEqual (string.Format(CultureInfo.InvariantCulture, + "<?xml version=\"1.0\" encoding=\"utf-16\"?>{0}" + + "<table>{0}" + + " <tr>{0}" + + " <td>1,000</td>{0}" + + " </tr>{0}" + + "</table>", Environment.NewLine), sw.ToString ()); + } + + // http://support.microsoft.com/kb/293469/en-us + [Test] + public void FormatNumber_KB_293469 () + { + string xsltFragment = @"<?xml version=""1.0""?> + <xsl:stylesheet version=""1.0"" xmlns:xsl=""http://www.w3.org/1999/XSL/Transform""> + <xsl:output method=""xml"" indent=""yes"" /> + <xsl:decimal-format name=""european"" decimal-separator="","" grouping-separator=""."" /> + <xsl:template match=""/""> + <xsl:element name=""html""> + <xsl:element name=""body""> + <xsl:apply-templates select=""root/amount"" /> + </xsl:element> + </xsl:element> + </xsl:template> + <xsl:template match=""amount""> + <xsl:value-of select=""format-number(., '###.###,00', 'european')""/> + </xsl:template> + </xsl:stylesheet>"; + + XmlDocument xmlDoc = new XmlDocument (); + xmlDoc.LoadXml ("<root><amount currency='USD'>44442.7</amount></root>"); + + StringWriter sw = new StringWriter (); + XslTransform xsltProcessor = new XslTransform (); + xsltProcessor.Load (new XmlTextReader (new StringReader (xsltFragment)), + new XmlUrlResolver (), AppDomain.CurrentDomain.Evidence); + xsltProcessor.Transform (xmlDoc, new XsltArgumentList (), sw, + new XmlUrlResolver ()); + + Assert.AreEqual (string.Format (CultureInfo.InvariantCulture, + "<?xml version=\"1.0\" encoding=\"utf-16\"?>{0}" + + "<html>{0}" + + " <body>44.442,70</body>{0}" + + "</html>", Environment.NewLine), sw.ToString ()); + } } } |