* XmlReader.cs : ReadContentAsString() does not reject non-elements.
ReadElementContentAsString() rejects non-content nodes.
* XmlReaderCommonTests.cs : added test for ReadContentAsString()
and ReadElementContentAsString() against certain node types.
svn path=/trunk/mcs/; revision=122737
+2009-01-08 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlReader.cs : ReadContentAsString() does not reject non-elements.
+ ReadElementContentAsString() rejects non-content nodes.
+
2008-12-19 Atsushi Enomoto <atsushi@ximian.com>
* XmlNamespaceManager.cs : namespace lookup failed for non-atomic
case XmlNodeType.Whitespace:
case XmlNodeType.CDATA:
break;
- default:
+ case XmlNodeType.Element:
throw new InvalidOperationException (String.Format ("Node type {0} is not supported in this operation.{1}", NodeType, GetLocation ()));
+ default:
+ return String.Empty;
}
}
public virtual string ReadElementContentAsString ()
{
bool isEmpty = IsEmptyElement;
+ // unlike ReadStartElement() it rejects non-content nodes (this check is done before MoveToContent())
+ if (NodeType != XmlNodeType.Element)
+ throw new InvalidOperationException (String.Format ("'{0}' is an element node.", NodeType));
ReadStartElement ();
if (isEmpty)
return String.Empty;
public virtual string ReadElementContentAsString (string localName, string namespaceURI)
{
bool isEmpty = IsEmptyElement;
+ // unlike ReadStartElement() it rejects non-content nodes (this check is done before MoveToContent())
+ if (NodeType != XmlNodeType.Element)
+ throw new InvalidOperationException (String.Format ("'{0}' is an element node.", NodeType));
ReadStartElement (localName, namespaceURI);
if (isEmpty)
return String.Empty;
+2009-01-08 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlReaderCommonTests.cs : added test for ReadContentAsString()
+ and ReadElementContentAsString() against certain node types.
+
2008-12-09 Atsushi Enomoto <atsushi@ximian.com>
* XmlValidatingReaderTests.cs : added test for validating mixed
xr.ReadContentAsString ();\r
}\r
\r
+ [Test]\r
+ public void ReadContentStringOnEndElement ()\r
+ {\r
+ XmlReader xr = XmlReader.Create (new StringReader ("<a>test</a>"));\r
+ xr.Read ();\r
+ xr.Read ();\r
+ xr.Read ();\r
+ AssertEquals (String.Empty, xr.ReadContentAsString ()); // does not fail, unlike at Element!\r
+ }\r
+\r
+ [Test]\r
+ public void ReadContentStringOnPI ()\r
+ {\r
+ XmlReader xr = XmlReader.Create (new StringReader ("<?pi ?><a>test</a>"));\r
+ xr.Read ();\r
+ AssertEquals (String.Empty, xr.ReadContentAsString ());\r
+ }\r
+\r
+ [Test]\r
+ [ExpectedException (typeof (InvalidOperationException))] // unlike ReadContentAsString()\r
+ public void ReadElementContentStringOnPI ()\r
+ {\r
+ XmlReader xr = XmlReader.Create (new StringReader ("<?pi ?><a>test</a>"));\r
+ xr.Read ();\r
+ AssertEquals (XmlNodeType.ProcessingInstruction, xr.NodeType);\r
+ xr.ReadElementContentAsString ();\r
+ }\r
+\r
[Test]\r
[ExpectedException (typeof (XmlException))]\r
public void ReadElementContentStringMixedContent ()\r