Dmitry Timoshkov : xmllite/tests: Add a test for short variant of xml declaration.

Alexandre Julliard julliard at winehq.org
Mon Feb 10 13:06:55 CST 2014


Module: wine
Branch: master
Commit: b02ea57e043c4ddac7a396ae5eaa52caeb6eaa9b
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=b02ea57e043c4ddac7a396ae5eaa52caeb6eaa9b

Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date:   Mon Feb 10 12:44:52 2014 +0900

xmllite/tests: Add a test for short variant of xml declaration.

---

 dlls/xmllite/tests/reader.c |   37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/dlls/xmllite/tests/reader.c b/dlls/xmllite/tests/reader.c
index b7ef862..f4ad466 100644
--- a/dlls/xmllite/tests/reader.c
+++ b/dlls/xmllite/tests/reader.c
@@ -55,6 +55,7 @@ static void free_str(WCHAR *str)
 }
 
 static const char xmldecl_full[] = "\xef\xbb\xbf<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n";
+static const char xmldecl_short[] = "<?xml version=\"1.0\"?>\n";
 
 static IStream *create_stream_on_data(const char *data, int size)
 {
@@ -750,6 +751,42 @@ todo_wine {
     ok(type == XmlNodeType_None, "got %d\n", type);
 }
     IStream_Release(stream);
+
+    /* test short variant */
+    stream = create_stream_on_data(xmldecl_short, sizeof(xmldecl_short));
+
+    hr = IXmlReader_SetInput(reader, (IUnknown *)stream);
+    ok(hr == S_OK, "expected S_OK, got %08x\n", hr);
+
+    type = -1;
+    hr = IXmlReader_Read(reader, &type);
+todo_wine
+    ok(hr == S_OK, "expected S_OK, got %08x\n", hr);
+todo_wine
+    ok(type == XmlNodeType_XmlDeclaration, "expected XmlDeclaration, got %s\n", type_to_str(type));
+    ok_pos(reader, 1, 3, 1, 21, TRUE);
+    test_read_state(reader, XmlReadState_Interactive, -1, TRUE);
+
+    hr = IXmlReader_GetValue(reader, &val, NULL);
+    ok(hr == S_OK, "expected S_OK, got %08x\n", hr);
+todo_wine
+    ok(*val == 0, "got %s\n", wine_dbgstr_w(val));
+
+    /* check attributes */
+    hr = IXmlReader_MoveToNextAttribute(reader);
+    ok(hr == S_OK, "expected S_OK, got %08x\n", hr);
+
+    type = -1;
+    hr = IXmlReader_GetNodeType(reader, &type);
+    ok(hr == S_OK, "expected S_OK, got %08x\n", hr);
+    ok(type == XmlNodeType_Attribute, "got %d\n", type);
+    ok_pos(reader, 1, 7, 1, 21, TRUE);
+
+    /* try to move from last attribute */
+    hr = IXmlReader_MoveToNextAttribute(reader);
+    ok(hr == S_FALSE, "expected S_FALSE, got %08x\n", hr);
+
+    IStream_Release(stream);
     IXmlReader_Release(reader);
 }
 




More information about the wine-cvs mailing list