using NUnit.Framework;
using System.IO;
using System.Xml;
using System.Xml.XPath;
using System.Xml.Xsl;
namespace MonoTests.System.Xml.Xsl
{
[TestFixture]
public class XslCompiledTransformTests
{
[Test]
public void GlobalVariableReferencesAnotherGlobalVariable ()
{
string xsl = @"
:
";
StringWriter sw = new StringWriter ();
XslCompiledTransform t = new XslCompiledTransform ();
t.Load (new XPathDocument (new StringReader (xsl)));
t.Transform (new XPathDocument (new XmlTextReader (new StringReader (""))), null, sw);
Assert.AreEqual ("foo: B", sw.ToString ());
}
[Test]
[Category ("MobileNotWorking")]
public void MSXslNodeSetAcceptsNodeSet ()
{
string xsl = @"
:
";
StringWriter sw = new StringWriter ();
XslCompiledTransform t = new XslCompiledTransform ();
t.Load (new XPathDocument (new StringReader (xsl)));
// should transform without an exception
t.Transform (new XPathDocument (new XmlTextReader (new StringReader (""))), null, sw);
}
[Test]
[Category ("MobileNotWorking")]
public void MSXslNodeSetAcceptsEmptyString ()
{
string xsl = @"
:
";
StringWriter sw = new StringWriter ();
XslCompiledTransform t = new XslCompiledTransform ();
t.Load (new XPathDocument (new StringReader (xsl)));
// should transform without an exception
t.Transform (new XPathDocument (new XmlTextReader (new StringReader (""))), null, sw);
}
[Test]
public void ValueOfElementWithInsignificantWhitespace ()
{
string xsl = @"
,
:
";
StringWriter sw = new StringWriter ();
XslCompiledTransform t = new XslCompiledTransform ();
t.Load (new XmlTextReader(new StringReader(xsl)));
t.Transform (new XPathDocument (new XmlTextReader (new StringReader (""))), null, sw);
Assert.AreEqual ("Dfoo: A,foo: B,foo: C", sw.ToString ());
}
[Test]
public void ElementToAttribute ()
{
var xsl = @"
";
var t = new XslCompiledTransform ();
t.Load (new XmlTextReader (new StringReader (xsl)));
var source = "123";
#if MOBILE
var expected = "";
#else
var expected = "";
#endif
StringWriter sw = new StringWriter ();
var xp = new XPathDocument (new XmlTextReader (new StringReader (source)));
t.Transform (xp, null, sw);
Assert.AreEqual (expected, sw.ToString ());
}
[Test] // bug 2917
[Category ("MobileNotWorking")]
public void XslOutputSettings ()
{
XslCompiledTransform xslCompiledTransform = new XslCompiledTransform();
string xsl =
@"
";
var xmlReader = XmlReader.Create(new StringReader(xsl));
xslCompiledTransform.Load(xmlReader);
// Returns true on .NET and False on mono 2.10.2
Assert.IsTrue (xslCompiledTransform.OutputSettings.Indent, "#1");
}
[Test] // Bug 36436
public void TransformWithXmlDocument ()
{
XmlDocument doc = new XmlDocument ();
doc.LoadXml (@"");
XmlDocument st = new XmlDocument ();
st.LoadXml (@"
");
XslCompiledTransform xsl = new XslCompiledTransform ();
xsl.Load (st);
XsltArgumentList args = new XsltArgumentList ();
MemoryStream mstr = new MemoryStream ();
xsl.Transform (doc, args, mstr);
}
}
}