Module: wine Branch: master Commit: b02ea57e043c4ddac7a396ae5eaa52caeb6eaa9b URL: http://source.winehq.org/git/wine.git/?a=commit;h=b02ea57e043c4ddac7a396ae5e...
Author: Dmitry Timoshkov dmitry@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); }