// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.IO;
using System.Xml;
using Microsoft.Test.ModuleCore;
namespace CoreXml.Test.XLinq
{
public partial class FunctionalTests : TestModule
{
public partial class XNodeReaderTests : XLinqTestCase
{
public partial class TCDepth : BridgeHelpers
{
//[Variation("XmlReader Depth at the Root", Priority = 0)]
public void TestDepth1()
{
XmlReader DataReader = GetReader();
int iDepth = 0;
PositionOnElement(DataReader, "PLAY");
TestLog.Compare(DataReader.Depth, iDepth, "Depth should be " + iDepth);
DataReader.Dispose();
}
//[Variation("XmlReader Depth at Empty Tag")]
public void TestDepth2()
{
XmlReader DataReader = GetReader();
int iDepth = 2;
PositionOnElement(DataReader, "EMPTY1");
TestLog.Compare(DataReader.Depth, iDepth, "Depth should be " + iDepth);
}
//[Variation("XmlReader Depth at Empty Tag with Attributes")]
public void TestDepth3()
{
XmlReader DataReader = GetReader();
int iDepth = 2;
PositionOnElement(DataReader, "ACT1");
TestLog.Compare(DataReader.Depth, iDepth, "Element Depth should be " + (iDepth).ToString());
while (DataReader.MoveToNextAttribute() == true)
{
TestLog.Compare(DataReader.Depth, iDepth + 1, "Attr Depth should be " + (iDepth + 1).ToString());
}
}
//[Variation("XmlReader Depth at Non Empty Tag with Text")]
public void TestDepth4()
{
XmlReader DataReader = GetReader();
int iDepth = 2;
PositionOnElement(DataReader, "NONEMPTY1");
TestLog.Compare(DataReader.Depth, iDepth, "Depth should be " + iDepth);
while (true == DataReader.Read())
{
if (DataReader.NodeType == XmlNodeType.Text)
TestLog.Compare(DataReader.Depth, iDepth + 1, "Depth should be " + (iDepth + 1).ToString());
if (DataReader.Name == "NONEMPTY1" && (DataReader.NodeType == XmlNodeType.EndElement)) break;
}
TestLog.Compare(DataReader.Depth, iDepth, "Depth should be " + iDepth);
}
}
public partial class TCNamespace : BridgeHelpers
{
public static string pNONAMESPACE = "NONAMESPACE";
//[Variation("Namespace test within a scope (no nested element)", Priority = 0)]
public void TestNamespace1()
{
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "NAMESPACE0");
while (true == DataReader.Read())
{
if (DataReader.Name == "NAMESPACE1") break;
if (DataReader.NodeType == XmlNodeType.Element)
{
TestLog.Compare(DataReader.NamespaceURI, "1", "Compare Namespace");
TestLog.Compare(DataReader.Name, "bar:check", "Compare Name");
TestLog.Compare(DataReader.LocalName, "check", "Compare LocalName");
TestLog.Compare(DataReader.Prefix, "bar", "Compare Prefix");
}
}
}
//[Variation("Namespace test within a scope (with nested element)", Priority = 0)]
public void TestNamespace2()
{
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "NAMESPACE1");
while (true == DataReader.Read())
{
if (DataReader.Name == "NONAMESPACE") break;
if ((DataReader.NodeType == XmlNodeType.Element) && (DataReader.LocalName == "check"))
{
TestLog.Compare(DataReader.NamespaceURI, "1", "Compare Namespace");
TestLog.Compare(DataReader.Name, "bar:check", "Compare Name");
TestLog.Compare(DataReader.LocalName, "check", "Compare LocalName");
TestLog.Compare(DataReader.Prefix, "bar", "Compare Prefix");
}
}
TestLog.Compare(DataReader.NamespaceURI, String.Empty, "Compare Namespace with String.Empty");
}
//[Variation("Namespace test immediately outside the Namespace scope")]
public void TestNamespace3()
{
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, pNONAMESPACE);
TestLog.Compare(DataReader.NamespaceURI, String.Empty, "Compare Namespace with EmptyString");
TestLog.Compare(DataReader.Name, pNONAMESPACE, "Compare Name");
TestLog.Compare(DataReader.LocalName, pNONAMESPACE, "Compare LocalName");
TestLog.Compare(DataReader.Prefix, String.Empty, "Compare Prefix");
}
//[Variation("Namespace test Attribute should has no default namespace", Priority = 0)]
public void TestNamespace4()
{
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "NONAMESPACE1");
TestLog.Compare(DataReader.NamespaceURI, "1000", "Compare Namespace for Element");
if (DataReader.MoveToFirstAttribute())
{
TestLog.Compare(DataReader.NamespaceURI, String.Empty, "Compare Namespace for Attr");
}
}
//[Variation("Namespace test with multiple Namespace declaration", Priority = 0)]
public void TestNamespace5()
{
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "NAMESPACE2");
while (true == DataReader.Read())
{
if (DataReader.Name == "NAMESPACE3") break;
if ((DataReader.NodeType == XmlNodeType.Element) && (DataReader.LocalName == "check"))
{
TestLog.Compare(DataReader.NamespaceURI, "2", "Compare Namespace");
TestLog.Compare(DataReader.Name, "bar:check", "Compare Name");
TestLog.Compare(DataReader.LocalName, "check", "Compare LocalName");
TestLog.Compare(DataReader.Prefix, "bar", "Compare Prefix");
}
}
}
//[Variation("Namespace test with multiple Namespace declaration, including default namespace")]
public void TestNamespace6()
{
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "NAMESPACE3");
while (true == DataReader.Read())
{
if (DataReader.Name == "NONAMESPACE") break;
if (DataReader.NodeType == XmlNodeType.Element)
{
if (DataReader.LocalName == "check")
{
TestLog.Compare(DataReader.NamespaceURI, "1", "Compare Namespace");
TestLog.Compare(DataReader.Name, "check", "Compare Name");
TestLog.Compare(DataReader.LocalName, "check", "Compare LocalName");
TestLog.Compare(DataReader.Prefix, String.Empty, "Compare Prefix");
}
else if (DataReader.LocalName == "check1")
{
TestLog.Compare(DataReader.NamespaceURI, "1", "Compare Namespace");
TestLog.Compare(DataReader.Name, "check1", "Compare Name");
TestLog.Compare(DataReader.LocalName, "check1", "Compare LocalName");
TestLog.Compare(DataReader.Prefix, String.Empty, "Compare Prefix");
}
else if (DataReader.LocalName == "check8")
{
TestLog.Compare(DataReader.NamespaceURI, "8", "Compare Namespace");
TestLog.Compare(DataReader.Name, "d:check8", "Compare Name");
TestLog.Compare(DataReader.LocalName, "check8", "Compare LocalName");
TestLog.Compare(DataReader.Prefix, "d", "Compare Prefix");
}
else if (DataReader.LocalName == "check100")
{
TestLog.Compare(DataReader.NamespaceURI, "100", "Compare Namespace");
TestLog.Compare(DataReader.Name, "check100", "Compare Name");
TestLog.Compare(DataReader.LocalName, "check100", "Compare LocalName");
TestLog.Compare(DataReader.Prefix, String.Empty, "Compare Prefix");
}
else if (DataReader.LocalName == "check5")
{
TestLog.Compare(DataReader.NamespaceURI, "5", "Compare Namespace");
TestLog.Compare(DataReader.Name, "d:check5", "Compare Name");
TestLog.Compare(DataReader.LocalName, "check5", "Compare LocalName");
TestLog.Compare(DataReader.Prefix, "d", "Compare Prefix");
}
else if (DataReader.LocalName == "check14")
{
TestLog.Compare(DataReader.NamespaceURI, "14", "Compare Namespace");
TestLog.Compare(DataReader.Name, "check14", "Compare Name");
TestLog.Compare(DataReader.LocalName, "check14", "Compare LocalName");
TestLog.Compare(DataReader.Prefix, String.Empty, "Compare Prefix");
}
else if (DataReader.LocalName == "a13")
{
TestLog.Compare(DataReader.NamespaceURI, "1", "Compare Namespace1");
TestLog.Compare(DataReader.Name, "a13", "Compare Name1");
TestLog.Compare(DataReader.LocalName, "a13", "Compare LocalName1");
TestLog.Compare(DataReader.Prefix, String.Empty, "Compare Prefix1");
DataReader.MoveToFirstAttribute();
TestLog.Compare(DataReader.NamespaceURI, "13", "Compare Namespace2");
TestLog.Compare(DataReader.Name, "a:check", "Compare Name2");
TestLog.Compare(DataReader.LocalName, "check", "Compare LocalName2");
TestLog.Compare(DataReader.Prefix, "a", "Compare Prefix2");
TestLog.Compare(DataReader.Value, "Namespace=13", "Compare Name2");
}
}
}
}
//[Variation("Namespace URI for xml prefix", Priority = 0)]
public void TestNamespace7()
{
string strxml = "";
XmlReader DataReader = GetReader(new StringReader(strxml));
PositionOnElement(DataReader, "ROOT");
DataReader.MoveToFirstAttribute();
TestLog.Compare(DataReader.NamespaceURI, "http://www.w3.org/XML/1998/namespace", "xml");
}
}
public partial class TCLookupNamespace : BridgeHelpers
{
//[Variation("LookupNamespace test within EmptyTag")]
public void LookupNamespace1()
{
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "EMPTY_NAMESPACE");
do
{
TestLog.Compare(DataReader.LookupNamespace("bar"), "1", "Compare LookupNamespace");
} while (DataReader.MoveToNextAttribute() == true);
}
//[Variation("LookupNamespace test with Default namespace within EmptyTag", Priority = 0)]
public void LookupNamespace2()
{
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "EMPTY_NAMESPACE1");
do
{
TestLog.Compare(DataReader.LookupNamespace(String.Empty), "14", "Compare LookupNamespace");
} while (DataReader.MoveToNextAttribute() == true);
}
//[Variation("LookupNamespace test within a scope (no nested element)", Priority = 0)]
public void LookupNamespace3()
{
XmlReader DataReader = GetReader();
while (true == DataReader.Read())
{
if (DataReader.Name == "NAMESPACE0") break;
TestLog.Compare(DataReader.LookupNamespace("bar"), null, "Compare LookupNamespace");
}
while (true == DataReader.Read())
{
TestLog.Compare(DataReader.LookupNamespace("bar"), "1", "Compare LookupNamespace");
if (DataReader.Name == "NAMESPACE0" && DataReader.NodeType == XmlNodeType.EndElement) break;
}
}
//[Variation("LookupNamespace test within a scope (with nested element)", Priority = 0)]
public void LookupNamespace4()
{
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "NAMESPACE1");
while (true == DataReader.Read())
{
TestLog.Compare(DataReader.LookupNamespace("bar"), "1", "Compare LookupNamespace");
if (DataReader.Name == "NAMESPACE1" && DataReader.NodeType == XmlNodeType.EndElement)
{
DataReader.Read();
break;
}
}
TestLog.Compare(DataReader.LookupNamespace("bar"), null, "Compare LookupNamespace with String.Empty");
}
//[Variation("LookupNamespace test immediately outside the Namespace scope")]
public void LookupNamespace5()
{
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "NONAMESPACE");
TestLog.Compare(DataReader.LookupNamespace("bar"), null, "Compare LookupNamespace with null");
}
//[Variation("LookupNamespace test with multiple Namespace declaration", Priority = 0)]
public void LookupNamespace6()
{
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "NAMESPACE2");
string strValue = "1";
while (true == DataReader.Read())
{
if (DataReader.Name == "c")
{
strValue = "2";
TestLog.Compare(DataReader.LookupNamespace("bar"), strValue, "Compare LookupNamespace-a");
if (DataReader.NodeType == XmlNodeType.EndElement)
strValue = "1";
}
else
TestLog.Compare(DataReader.LookupNamespace("bar"), strValue, "Compare LookupNamespace-a");
if (DataReader.Name == "NAMESPACE2" && DataReader.NodeType == XmlNodeType.EndElement)
{
TestLog.Compare(DataReader.LookupNamespace("bar"), strValue, "Compare LookupNamespace-a");
DataReader.Read();
break;
}
}
}
void CompareAllNS(XmlReader DataReader, string strDef, string strA, string strB, string strC, string strD, string strE, string strF, string strG, string strH)
{
TestLog.Compare(DataReader.LookupNamespace(String.Empty), strDef, "Compare LookupNamespace-default");
TestLog.Compare(DataReader.LookupNamespace("a"), strA, "Compare LookupNamespace-a");
TestLog.Compare(DataReader.LookupNamespace("b"), strB, "Compare LookupNamespace-b");
TestLog.Compare(DataReader.LookupNamespace("c"), strC, "Compare LookupNamespace-c");
TestLog.Compare(DataReader.LookupNamespace("d"), strD, "Compare LookupNamespace-d");
TestLog.Compare(DataReader.LookupNamespace("e"), strE, "Compare LookupNamespace-e");
TestLog.Compare(DataReader.LookupNamespace("f"), strF, "Compare LookupNamespace-f");
TestLog.Compare(DataReader.LookupNamespace("g"), strG, "Compare LookupNamespace-g");
TestLog.Compare(DataReader.LookupNamespace("h"), strH, "Compare LookupNamespace-h");
}
//[Variation("Namespace test with multiple Namespace declaration, including default namespace")]
public void LookupNamespace7()
{
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "NAMESPACE3");
string strDef = "1";
string strA = null;
string strB = null;
string strC = null;
string strD = null;
string strE = null;
string strF = null;
string strG = null;
string strH = null;
while (true == DataReader.Read())
{
if (DataReader.Name == "a")
{
strA = "2";
strB = "3";
strC = "4";
CompareAllNS(DataReader, strDef, strA, strB, strC, strD, strE, strF, strG, strH);
if (DataReader.NodeType == XmlNodeType.EndElement)
{
strA = null;
strB = null;
strC = null;
}
}
else if (DataReader.Name == "b")
{
strD = "5";
strE = "6";
strF = "7";
CompareAllNS(DataReader, strDef, strA, strB, strC, strD, strE, strF, strG, strH);
if (DataReader.NodeType == XmlNodeType.EndElement)
{
strD = null;
strE = null;
strF = null;
}
}
else if (DataReader.Name == "c")
{
strD = "8";
strE = "9";
strF = "10";
CompareAllNS(DataReader, strDef, strA, strB, strC, strD, strE, strF, strG, strH);
if (DataReader.NodeType == XmlNodeType.EndElement)
{
strD = "5";
strE = "6";
strF = "7";
}
}
else if (DataReader.Name == "d")
{
strG = "11";
strH = "12";
CompareAllNS(DataReader, strDef, strA, strB, strC, strD, strE, strF, strG, strH);
if (DataReader.NodeType == XmlNodeType.EndElement)
{
strG = null;
strH = null;
}
}
else if (DataReader.Name == "testns")
{
strDef = "100";
CompareAllNS(DataReader, strDef, strA, strB, strC, strD, strE, strF, strG, strH);
if (DataReader.NodeType == XmlNodeType.EndElement)
{
strDef = "1";
}
}
else if (DataReader.Name == "a13")
{
strA = "13";
CompareAllNS(DataReader, strDef, strA, strB, strC, strD, strE, strF, strG, strH);
do
{
CompareAllNS(DataReader, strDef, strA, strB, strC, strD, strE, strF, strG, strH);
} while (DataReader.MoveToNextAttribute() == true);
strA = null;
}
else if (DataReader.Name == "check14")
{
strDef = "14";
CompareAllNS(DataReader, strDef, strA, strB, strC, strD, strE, strF, strG, strH);
if (DataReader.NodeType == XmlNodeType.EndElement)
{
strDef = "1";
}
}
else
CompareAllNS(DataReader, strDef, strA, strB, strC, strD, strE, strF, strG, strH);
if (DataReader.Name == "NAMESPACE3" && DataReader.NodeType == XmlNodeType.EndElement)
{
CompareAllNS(DataReader, strDef, strA, strB, strC, strD, strE, strF, strG, strH);
DataReader.Read();
break;
}
}
}
//[Variation("LookupNamespace on whitespace node PreserveWhitespaces = true", Priority = 0)]
public void LookupNamespace8()
{
string strxml = "\n";
XmlReader DataReader = GetReaderStr(strxml);
PositionOnNodeType(DataReader, XmlNodeType.Text);
string ns = DataReader.LookupNamespace("p");
TestLog.Compare(ns, "1", "ln");
}
//[Variation("Different prefix on inner element for the same namespace", Priority = 0)]
public void LookupNamespace9()
{
string ns = "http://www.w3.org/1999/XMLSchema";
string filename = Path.Combine("TestData", "XmlReader", "Common", "bug_57723.xml");
XmlReader DataReader = GetReader(filename);
PositionOnElement(DataReader, "element");
TestLog.Compare(DataReader.LookupNamespace("q1"), ns, "q11");
TestLog.Compare(DataReader.LookupNamespace("q2"), null, "q21");
DataReader.Read();
PositionOnElement(DataReader, "element");
TestLog.Compare(DataReader.LookupNamespace("q1"), ns, "q12");
TestLog.Compare(DataReader.LookupNamespace("q2"), ns, "q22");
}
//[Variation("LookupNamespace when Namespaces = false", Priority = 0)]
public void LookupNamespace10()
{
string strxml = "\n";
XmlReader DataReader = GetReaderStr(strxml);
PositionOnElement(DataReader, "ROOT");
TestLog.Compare(DataReader.LookupNamespace("p"), "1", "ln ROOT");
PositionOnElement(DataReader, "E1");
TestLog.Compare(DataReader.LookupNamespace("p"), "1", "ln E1");
DataReader.Read();
TestLog.Compare(DataReader.LookupNamespace("p"), "1", "ln /ROOT");
}
}
public partial class TCHasValue : BridgeHelpers
{
//[Variation("HasValue On None")]
public void TestHasValueNodeType_None()
{
XmlReader DataReader = GetReader();
bool b = DataReader.HasValue;
if (b)
throw new TestException(TestResult.Failed, "");
}
//[Variation("HasValue On Element", Priority = 0)]
public void TestHasValueNodeType_Element()
{
XmlReader DataReader = GetReader();
while (FindNodeType(DataReader, XmlNodeType.Element))
{
bool b = DataReader.HasValue;
if (b)
throw new TestFailedException("HasValue returns True");
else
return;
}
}
//[Variation("Get node with a scalar value, verify the value with valid ReadString")]
public void TestHasValue1()
{
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "NONEMPTY1");
DataReader.Read();
TestLog.Compare(DataReader.HasValue, true, "HasValue test");
}
//[Variation("HasValue On Attribute", Priority = 0)]
public void TestHasValueNodeType_Attribute()
{
XmlReader DataReader = GetReader();
while (FindNodeType(DataReader, XmlNodeType.Attribute))
{
bool b = DataReader.HasValue;
if (!b)
throw new TestFailedException("HasValue for Attribute returns false");
else
return;
}
}
//[Variation("HasValue On Text", Priority = 0)]
public void TestHasValueNodeType_Text()
{
XmlReader DataReader = GetReader();
while (FindNodeType(DataReader, XmlNodeType.Text))
{
bool b = DataReader.HasValue;
if (!b)
throw new TestFailedException("HasValue for Text returns false");
else
return;
}
}
//[Variation("HasValue On CDATA", Priority = 0)]
public void TestHasValueNodeType_CDATA()
{
XmlReader DataReader = GetReader();
while (FindNodeType(DataReader, XmlNodeType.CDATA))
{
bool b = DataReader.HasValue;
if (!b)
throw new TestFailedException("HasValue for CDATA returns false");
else
return;
}
}
//[Variation("HasValue On ProcessingInstruction", Priority = 0)]
public void TestHasValueNodeType_ProcessingInstruction()
{
XmlReader DataReader = GetReader();
while (FindNodeType(DataReader, XmlNodeType.ProcessingInstruction))
{
bool b = DataReader.HasValue;
if (!b)
throw new TestException(TestResult.Failed, "HasValue for PI returns false");
else
return;
}
}
//[Variation("HasValue On Comment", Priority = 0)]
public void TestHasValueNodeType_Comment()
{
XmlReader DataReader = GetReader();
while (FindNodeType(DataReader, XmlNodeType.Comment))
{
bool b = DataReader.HasValue;
if (!b)
throw new TestException(TestResult.Failed, "HasValue for Comment returns false");
else
return;
}
}
//[Variation("HasValue On DocumentType", Priority = 0)]
public void TestHasValueNodeType_DocumentType()
{
XmlReader DataReader = GetReader();
if (FindNodeType(DataReader, XmlNodeType.DocumentType))
{
bool b = DataReader.HasValue;
if (!b)
throw new TestException(TestResult.Failed, "HasValue returns True");
else
return;
}
}
//[Variation("HasValue On Whitespace PreserveWhitespaces = true", Priority = 0)]
public void TestHasValueNodeType_Whitespace()
{
XmlReader DataReader = GetReader();
while (FindNodeType(DataReader, XmlNodeType.Whitespace))
{
bool b = DataReader.HasValue;
if (!b)
throw new TestException(TestResult.Failed, "HasValue returns False");
else
return;
}
}
//[Variation("HasValue On EndElement")]
public void TestHasValueNodeType_EndElement()
{
XmlReader DataReader = GetReader();
while (FindNodeType(DataReader, XmlNodeType.EndElement))
{
bool b = DataReader.HasValue;
if (b)
throw new TestException(TestResult.Failed, "HasValue returns True");
else
return;
}
}
//[Variation("HasValue On XmlDeclaration", Priority = 0)]
public void TestHasValueNodeType_XmlDeclaration()
{
XmlReader DataReader = GetReader();
if (FindNodeType(DataReader, XmlNodeType.XmlDeclaration))
{
bool b = DataReader.HasValue;
if (!b)
throw new TestException(TestResult.Failed, "HasValue returns False");
else
return;
}
}
//[Variation("HasValue On EntityReference")]
public void TestHasValueNodeType_EntityReference()
{
XmlReader DataReader = GetReader();
if (FindNodeType(DataReader, XmlNodeType.EntityReference))
{
bool b = DataReader.HasValue;
if (b)
throw new TestException(TestResult.Failed, "HasValue returns True");
else
return;
}
}
//[Variation("HasValue On EndEntity")]
public void TestHasValueNodeType_EndEntity()
{
XmlReader DataReader = GetReader();
while (FindNodeType(DataReader, XmlNodeType.EndEntity))
{
bool b = DataReader.HasValue;
if (b)
throw new TestException(TestResult.Failed, "HasValue returns True");
else
return;
}
}
//[Variation("PI Value containing surrogates", Priority = 0)]
public void v13()
{
string strxml = "";
XmlReader DataReader = GetReaderStr(strxml);
DataReader.Read();
DataReader.Read();
TestLog.Compare(DataReader.NodeType, XmlNodeType.ProcessingInstruction, "nt");
TestLog.Compare(DataReader.Value, "\uD800\uDC00\uDBFF\uDFFF", "piv");
}
}
public partial class TCIsEmptyElement2 : BridgeHelpers
{
//[Variation("Set and Get an element that ends with />", Priority = 0)]
public void TestEmpty1()
{
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "EMPTY1");
bool b = DataReader.IsEmptyElement;
if (!b)
throw new TestException(TestResult.Failed, "DataReader is NOT_EMPTY, supposed to be EMPTY");
}
//[Variation("Set and Get an element with an attribute that ends with />", Priority = 0)]
public void TestEmpty2()
{
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "EMPTY2");
bool b = DataReader.IsEmptyElement;
if (!b)
throw new TestException(TestResult.Failed, "DataReader is NOT_EMPTY, supposed to be EMPTY");
}
//[Variation("Set and Get an element that ends without />", Priority = 0)]
public void TestEmpty3()
{
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "NONEMPTY1");
bool b = DataReader.IsEmptyElement;
if (b)
throw new TestException(TestResult.Failed, "DataReader is EMPTY, supposed to be NOT_EMPTY");
}
//[Variation("Set and Get an element with an attribute that ends with />", Priority = 0)]
public void TestEmpty4()
{
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "NONEMPTY2");
bool b = DataReader.IsEmptyElement;
if (b)
throw new TestException(TestResult.Failed, "DataReader is EMPTY, supposed to be NOT_EMPTY");
}
//[Variation("IsEmptyElement On Element", Priority = 0)]
public void TestEmptyNodeType_Element()
{
XmlReader DataReader = GetReader();
while (FindNodeType(DataReader, XmlNodeType.Element))
{
bool b = DataReader.IsEmptyElement;
if (b)
throw new TestException(TestResult.Failed, "IsEmptyElement returns True");
else
return;
}
}
//[Variation("IsEmptyElement On None")]
public void TestEmptyNodeType_None()
{
XmlReader DataReader = GetReader();
bool b = DataReader.IsEmptyElement;
if (b)
throw new TestException(TestResult.Failed, "");
}
//[Variation("IsEmptyElement On Text")]
public void TestEmptyNodeType_Text()
{
XmlReader DataReader = GetReader();
while (FindNodeType(DataReader, XmlNodeType.Text))
{
bool b = DataReader.IsEmptyElement;
if (b)
throw new TestException(TestResult.Failed, "IsEmptyElement returns True");
else
return;
}
}
//[Variation("IsEmptyElement On CDATA")]
public void TestEmptyNodeType_CDATA()
{
XmlReader DataReader = GetReader();
while (FindNodeType(DataReader, XmlNodeType.CDATA))
{
bool b = DataReader.IsEmptyElement;
if (b)
throw new TestException(TestResult.Failed, "IsEmptyElement returns True");
else
return;
}
}
//[Variation("IsEmptyElement On ProcessingInstruction")]
public void TestEmptyNodeType_ProcessingInstruction()
{
XmlReader DataReader = GetReader();
while (FindNodeType(DataReader, XmlNodeType.ProcessingInstruction))
{
bool b = DataReader.IsEmptyElement;
if (b)
throw new TestException(TestResult.Failed, "IsEmptyElement returns True");
else
return;
}
}
//[Variation("IsEmptyElement On Comment")]
public void TestEmptyNodeType_Comment()
{
XmlReader DataReader = GetReader();
while (FindNodeType(DataReader, XmlNodeType.Comment))
{
bool b = DataReader.IsEmptyElement;
if (!b)
return;
else
throw new TestException(TestResult.Failed, "IsEmptyElement returns True");
}
}
//[Variation("IsEmptyElement On DocumentType")]
public void TestEmptyNodeType_DocumentType()
{
XmlReader DataReader = GetReader();
if (FindNodeType(DataReader, XmlNodeType.DocumentType))
{
bool b = DataReader.IsEmptyElement;
if (!b)
return;
else
throw new TestException(TestResult.Failed, "IsEmptyElement returns True");
}
}
//[Variation("IsEmptyElement On Whitespace PreserveWhitespaces = true")]
public void TestEmptyNodeType_Whitespace()
{
XmlReader DataReader = GetReader();
while (FindNodeType(DataReader, XmlNodeType.Whitespace))
{
bool b = DataReader.IsEmptyElement;
if (!b)
return;
else
throw new TestException(TestResult.Failed, "IsEmptyElement returns True");
}
}
//[Variation("IsEmptyElement On EndElement")]
public void TestEmptyNodeType_EndElement()
{
XmlReader DataReader = GetReader();
while (FindNodeType(DataReader, XmlNodeType.EndElement))
{
bool b = DataReader.IsEmptyElement;
if (!b)
return;
else
throw new TestException(TestResult.Failed, "IsEmptyElement returns True");
}
}
//[Variation("IsEmptyElement On EntityReference")]
public void TestEmptyNodeType_EntityReference()
{
XmlReader DataReader = GetReader();
while (FindNodeType(DataReader, XmlNodeType.EntityReference))
{
bool b = DataReader.IsEmptyElement;
if (!b)
return;
else
throw new TestException(TestResult.Failed, "IsEmptyElement returns True");
}
}
//[Variation("IsEmptyElement On EndEntity")]
public void TestEmptyNodeType_EndEntity()
{
XmlReader DataReader = GetReader();
while (FindNodeType(DataReader, XmlNodeType.EndEntity))
{
bool b = DataReader.IsEmptyElement;
if (!b)
return;
else
throw new TestException(TestResult.Failed, "IsEmptyElement returns True");
}
}
}
public partial class TCXmlSpace : BridgeHelpers
{
//[Variation("XmlSpace test within EmptyTag")]
public void TestXmlSpace1()
{
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "EMPTY_XMLSPACE");
do
{
TestLog.Compare(DataReader.XmlSpace, XmlSpace.Default, "Compare XmlSpace with Default");
} while (DataReader.MoveToNextAttribute() == true);
}
//[Variation("Xmlspace test within a scope (no nested element)", Priority = 0)]
public void TestXmlSpace2()
{
XmlReader DataReader = GetReader();
while (true == DataReader.Read())
{
if (DataReader.Name == "XMLSPACE1") break;
TestLog.Compare(DataReader.XmlSpace, XmlSpace.None, "Compare XmlSpace with None");
}
while (true == DataReader.Read())
{
if (DataReader.Name == "XMLSPACE1" && (DataReader.NodeType == XmlNodeType.EndElement)) break;
TestLog.Compare(DataReader.XmlSpace, XmlSpace.Default, "Compare XmlSpace with Default");
}
}
//[Variation("Xmlspace test within a scope (with nested element)", Priority = 0)]
public void TestXmlSpace3()
{
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "XMLSPACE2");
while (true == DataReader.Read())
{
if (DataReader.Name == "NOSPACE") break;
TestLog.Compare(DataReader.XmlSpace, XmlSpace.Preserve, "Compare XmlSpace with Preserve");
}
TestLog.Compare(DataReader.XmlSpace, XmlSpace.None, "Compare XmlSpace outside scope");
}
//[Variation("Xmlspace test immediately outside the XmlSpace scope")]
public void TestXmlSpace4()
{
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "NOSPACE");
TestLog.Compare(DataReader.XmlSpace, XmlSpace.None, "Compare XmlSpace with None");
}
//[Variation("XmlSpace test with multiple XmlSpace declaration")]
public void TestXmlSpace5()
{
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "XMLSPACE2A");
while (true == DataReader.Read())
{
if (DataReader.Name == "XMLSPACE3") break;
TestLog.Compare(DataReader.XmlSpace, XmlSpace.Default, "Compare XmlSpace with Default");
}
while (true == DataReader.Read())
{
if (DataReader.Name == "XMLSPACE4")
{
while (true == DataReader.Read())
{
TestLog.Compare(DataReader.XmlSpace, XmlSpace.Default, "Compare XmlSpace with Default");
if (DataReader.Name == "XMLSPACE4" && DataReader.NodeType == XmlNodeType.EndElement)
{
DataReader.Read();
break;
}
}
}
TestLog.Compare(DataReader.XmlSpace, XmlSpace.Preserve, "Compare XmlSpace with Preserve");
if (DataReader.Name == "XMLSPACE3" && DataReader.NodeType == XmlNodeType.EndElement)
{
DataReader.Read();
break;
}
}
do
{
TestLog.Compare(DataReader.XmlSpace, XmlSpace.Default, "Compare XmlSpace with Default");
if (DataReader.Name == "XMLSPACE2A" && DataReader.NodeType == XmlNodeType.EndElement)
{
DataReader.Read();
break;
}
} while (true == DataReader.Read());
TestLog.Compare(DataReader.XmlSpace, XmlSpace.None, "Compare XmlSpace outside scope");
}
}
public partial class TCXmlLang : BridgeHelpers
{
//[Variation("XmlLang test within EmptyTag")]
public void TestXmlLang1()
{
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "EMPTY_XMLLANG");
do
{
TestLog.Compare(DataReader.XmlLang, "en-US", "Compare XmlLang with en-US");
} while (DataReader.MoveToNextAttribute() == true);
}
//[Variation("XmlLang test within a scope (no nested element)", Priority = 0)]
public void TestXmlLang2()
{
XmlReader DataReader = GetReader();
while (true == DataReader.Read())
{
if (DataReader.Name == "XMLLANG0") break;
TestLog.Compare(DataReader.XmlLang, String.Empty, "Compare XmlLang with String.Empty");
}
while (true == DataReader.Read())
{
if (DataReader.Name == "XMLLANG0" && (DataReader.NodeType == XmlNodeType.EndElement)) break;
if (DataReader.NodeType == XmlNodeType.EntityReference)
{
TestLog.Compare(DataReader.XmlLang, "en-US", "Compare XmlLang with EntityRef");
if (DataReader.CanResolveEntity)
{
DataReader.ResolveEntity();
TestLog.Compare(DataReader.XmlLang, "en-US", "Compare XmlLang after ResolveEntity");
while (DataReader.Read() && DataReader.NodeType != XmlNodeType.EndEntity)
{
TestLog.Compare(DataReader.XmlLang, "en-US", "Compare XmlLang While Read ");
}
if (DataReader.NodeType == XmlNodeType.EndEntity)
{
TestLog.Compare(DataReader.XmlLang, "en-US", "Compare XmlLang at EndEntity ");
}
}
}
else
TestLog.Compare(DataReader.XmlLang, "en-US", "Compare XmlLang with Preserve");
}
}
//[Variation("XmlLang test within a scope (with nested element)", Priority = 0)]
public void TestXmlLang3()
{
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "XMLLANG1");
while (true == DataReader.Read())
{
if (DataReader.Name == "NOXMLLANG") break;
TestLog.Compare(DataReader.XmlLang, "en-GB", "Compare XmlLang with en-GB");
}
}
//[Variation("XmlLang test immediately outside the XmlLang scope")]
public void TestXmlLang4()
{
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "NOXMLLANG");
TestLog.Compare(DataReader.XmlLang, String.Empty, "Compare XmlLang with EmptyString");
}
//[Variation("XmlLang test with multiple XmlLang declaration")]
public void TestXmlLang5()
{
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "XMLLANG2");
while (true == DataReader.Read())
{
if (DataReader.Name == "XMLLANG1") break;
TestLog.Compare(DataReader.XmlLang, "en-US", "Compare XmlLang with Preserve");
}
while (true == DataReader.Read())
{
if (DataReader.Name == "XMLLANG0")
{
while (true == DataReader.Read())
{
TestLog.Compare(DataReader.XmlLang, "en-US", "Compare XmlLang with en-US");
if (DataReader.Name == "XMLLANG0" && DataReader.NodeType == XmlNodeType.EndElement)
{
DataReader.Read();
break;
}
}
}
TestLog.Compare(DataReader.XmlLang, "en-GB", "Compare XmlLang with en_GB");
if (DataReader.Name == "XMLLANG1" && DataReader.NodeType == XmlNodeType.EndElement)
{
DataReader.Read();
break;
}
}
do
{
TestLog.Compare(DataReader.XmlLang, "en-US", "Compare XmlLang with en-US");
if (DataReader.Name == "XMLLANG2" && DataReader.NodeType == XmlNodeType.EndElement)
{
DataReader.Read();
break;
}
} while (true == DataReader.Read());
}
// XML 1.0 SE
//[Variation("XmlLang valid values", Priority = 0)]
public void TestXmlLang6()
{
const string ST_VALIDXMLLANG = "VALIDXMLLANG";
string[] aValidLang = { "a", "", "ab-cd-", "a b-cd" };
XmlReader DataReader = GetReader();
for (int i = 0; i < aValidLang.Length; i++)
{
string strelem = ST_VALIDXMLLANG + i;
PositionOnElement(DataReader, strelem);
//DataReader.Read();
TestLog.Compare(DataReader.XmlLang, aValidLang[i], "XmlLang");
}
}
// XML 1.0 SE
//[Variation("More XmlLang valid values")]
public void TestXmlTextReaderLang1()
{
string[] aValidLang = { "", "ab-cd-", "abcdefghi", "ab-cdefghijk", "a b-cd", "ab-c d" };
for (int i = 0; i < aValidLang.Length; i++)
{
string strxml = String.Format("", aValidLang[i]);
XmlReader DataReader = GetReaderStr(strxml);
while (DataReader.Read()) ;
}
}
}
public partial class TCSkip : BridgeHelpers
{
public bool VerifySkipOnNodeType(XmlNodeType testNodeType)
{
bool bPassed = false;
XmlNodeType actNodeType;
String strActName;
String strActValue;
XmlReader DataReader = GetReader();
PositionOnNodeType(DataReader, testNodeType);
DataReader.Read();
actNodeType = DataReader.NodeType;
strActName = DataReader.Name;
strActValue = DataReader.Value;
DataReader = GetReader();
PositionOnNodeType(DataReader, testNodeType);
DataReader.Skip();
bPassed = VerifyNode(DataReader, actNodeType, strActName, strActValue);
return bPassed;
}
//[Variation("Call Skip on empty element", Priority = 0)]
public void TestSkip1()
{
bool bPassed = false;
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "SKIP1");
DataReader.Skip();
bPassed = VerifyNode(DataReader, XmlNodeType.Element, "AFTERSKIP1", String.Empty);
BoolToLTMResult(bPassed);
}
//[Variation("Call Skip on element", Priority = 0)]
public void TestSkip2()
{
bool bPassed = false;
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "SKIP2");
DataReader.Skip();
bPassed = VerifyNode(DataReader, XmlNodeType.Element, "AFTERSKIP2", String.Empty);
BoolToLTMResult(bPassed);
}
//[Variation("Call Skip on element with content", Priority = 0)]
public void TestSkip3()
{
bool bPassed = false;
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "SKIP3");
DataReader.Skip();
bPassed = VerifyNode(DataReader, XmlNodeType.Element, "AFTERSKIP3", String.Empty);
BoolToLTMResult(bPassed);
}
//[Variation("Call Skip on text node (leave node)", Priority = 0)]
public void TestSkip4()
{
bool bPassed = false;
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "SKIP3");
PositionOnElement(DataReader, "ELEM2");
DataReader.Read();
bPassed = (DataReader.NodeType == XmlNodeType.Text);
DataReader.Skip();
bPassed = VerifyNode(DataReader, XmlNodeType.EndElement, "ELEM2", String.Empty) && bPassed;
BoolToLTMResult(bPassed);
}
//[Variation("Call Skip in while read loop", Priority = 0)]
public void skip307543()
{
XmlReader DataReader = GetReader(Path.Combine("TestData", "XmlReader", "Common", "skip307543.xml"));
while (DataReader.Read())
DataReader.Skip();
}
//[Variation("Call Skip on text node with another element: text")]
public void TestSkip5()
{
bool bPassed = false;
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "SKIP4");
PositionOnElement(DataReader, "ELEM2");
DataReader.Read();
bPassed = (DataReader.NodeType == XmlNodeType.Text);
DataReader.Skip();
bPassed = VerifyNode(DataReader, XmlNodeType.Element, "ELEM3", String.Empty) && bPassed;
BoolToLTMResult(bPassed);
}
//[Variation("Call Skip on attribute", Priority = 0)]
public void TestSkip6()
{
bool bPassed = false;
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, ST_ENTTEST_NAME);
bPassed = DataReader.MoveToFirstAttribute();
DataReader.Skip();
bPassed = VerifyNode(DataReader, XmlNodeType.Element, "ENTITY2", String.Empty) && bPassed;
BoolToLTMResult(bPassed);
}
//[Variation("Call Skip on text node of attribute")]
public void TestSkip7()
{
bool bPassed = false;
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, ST_ENTTEST_NAME);
bPassed = DataReader.MoveToFirstAttribute();
bPassed = DataReader.ReadAttributeValue() && bPassed;
bPassed = (DataReader.NodeType == XmlNodeType.Text) && bPassed;
DataReader.Skip();
bPassed = VerifyNode(DataReader, XmlNodeType.Element, "ENTITY2", String.Empty) && bPassed;
BoolToLTMResult(bPassed);
}
//[Variation("Call Skip on CDATA", Priority = 0)]
public void TestSkip8()
{
XmlReader DataReader = GetReader();
BoolToLTMResult(VerifySkipOnNodeType(XmlNodeType.CDATA));
}
//[Variation("Call Skip on Processing Instruction", Priority = 0)]
public void TestSkip9()
{
BoolToLTMResult(VerifySkipOnNodeType(XmlNodeType.ProcessingInstruction));
}
//[Variation("Call Skip on Comment", Priority = 0)]
public void TestSkip10()
{
BoolToLTMResult(VerifySkipOnNodeType(XmlNodeType.Comment));
}
//[Variation("Call Skip on Whitespace", Priority = 0)]
public void TestSkip12()
{
XmlReader DataReader = GetReader();
BoolToLTMResult(VerifySkipOnNodeType(XmlNodeType.Whitespace));
}
//[Variation("Call Skip on EndElement", Priority = 0)]
public void TestSkip13()
{
BoolToLTMResult(VerifySkipOnNodeType(XmlNodeType.EndElement));
}
//[Variation("Call Skip on root Element")]
public void TestSkip14()
{
bool bPassed;
XmlReader DataReader = GetReader();
PositionOnNodeType(DataReader, XmlNodeType.Element);
DataReader.Skip();
bPassed = VerifyNode(DataReader, XmlNodeType.None, String.Empty, String.Empty);
BoolToLTMResult(bPassed);
}
//[Variation("XmlTextReader ArgumentOutOfRangeException when handling ampersands")]
public void XmlTextReaderDoesNotThrowWhenHandlingAmpersands()
{
string xmlStr = @"
fffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff
>
fffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff
&
";
XmlReader DataReader = GetReader(new StringReader(xmlStr));
PositionOnElement(DataReader, "a");
DataReader.Skip();
}
}
public partial class TCIsDefault : BridgeHelpers
{
}
public partial class TCBaseURI : BridgeHelpers
{
//[Variation("BaseURI for element node", Priority = 0)]
public void TestBaseURI1()
{
bool bPassed = false;
XmlReader DataReader = GetReader();
PositionOnNodeType(DataReader, XmlNodeType.Element);
bPassed = TestLog.Equals(DataReader.BaseURI, String.Empty, Variation.Desc);
BoolToLTMResult(bPassed);
}
//[Variation("BaseURI for attribute node", Priority = 0)]
public void TestBaseURI2()
{
bool bPassed = false;
XmlReader DataReader = GetReader();
PositionOnNodeType(DataReader, XmlNodeType.Attribute);
bPassed = TestLog.Equals(DataReader.BaseURI, String.Empty, Variation.Desc);
BoolToLTMResult(bPassed);
}
//[Variation("BaseURI for text node", Priority = 0)]
public void TestBaseURI3()
{
bool bPassed = false;
XmlReader DataReader = GetReader();
PositionOnNodeType(DataReader, XmlNodeType.Text);
bPassed = TestLog.Equals(DataReader.BaseURI, String.Empty, Variation.Desc);
BoolToLTMResult(bPassed);
}
//[Variation("BaseURI for CDATA node")]
public void TestBaseURI4()
{
XmlReader DataReader = GetReader();
bool bPassed = false;
PositionOnNodeType(DataReader, XmlNodeType.CDATA);
bPassed = TestLog.Equals(DataReader.BaseURI, String.Empty, Variation.Desc);
BoolToLTMResult(bPassed);
}
//[Variation("BaseURI for PI node")]
public void TestBaseURI6()
{
bool bPassed = false;
XmlReader DataReader = GetReader();
PositionOnNodeType(DataReader, XmlNodeType.ProcessingInstruction);
bPassed = TestLog.Equals(DataReader.BaseURI, String.Empty, Variation.Desc);
BoolToLTMResult(bPassed);
}
//[Variation("BaseURI for Comment node")]
public void TestBaseURI7()
{
bool bPassed = false;
XmlReader DataReader = GetReader();
PositionOnNodeType(DataReader, XmlNodeType.Comment);
bPassed = TestLog.Equals(DataReader.BaseURI, String.Empty, Variation.Desc);
BoolToLTMResult(bPassed);
}
//[Variation("BaseURI for Whitespace node PreserveWhitespaces = true")]
public void TestBaseURI9()
{
bool bPassed = false;
XmlReader DataReader = GetReader();
PositionOnNodeType(DataReader, XmlNodeType.Whitespace);
bPassed = TestLog.Equals(DataReader.BaseURI, String.Empty, Variation.Desc);
BoolToLTMResult(bPassed);
}
//[Variation("BaseURI for EndElement node")]
public void TestBaseURI10()
{
bool bPassed = false;
XmlReader DataReader = GetReader();
PositionOnNodeType(DataReader, XmlNodeType.EndElement);
bPassed = TestLog.Equals(DataReader.BaseURI, String.Empty, Variation.Desc);
BoolToLTMResult(bPassed);
}
//[Variation("BaseURI for external General Entity")]
public void TestTextReaderBaseURI4()
{
bool bPassed = false;
XmlReader DataReader = GetReader();
PositionOnElement(DataReader, "ENTITY5");
DataReader.Read();
bPassed = TestLog.Equals(DataReader.BaseURI, String.Empty, "Before ResolveEntity");
bPassed = VerifyNode(DataReader, XmlNodeType.Text, String.Empty, ST_GEN_ENT_VALUE) && bPassed;
bPassed = TestLog.Equals(DataReader.BaseURI, String.Empty, "After ResolveEntity");
BoolToLTMResult(bPassed);
}
}
}
}
}