Piotr Caban : msxml3/tests: Added SAXAttributes object pointer tests.
Alexandre Julliard
julliard at winehq.org
Mon Oct 31 12:49:07 CDT 2011
Module: wine
Branch: master
Commit: e6aace7a8572583eba6b383ca5a31e3d13f6ca89
URL: http://source.winehq.org/git/wine.git/?a=commit;h=e6aace7a8572583eba6b383ca5a31e3d13f6ca89
Author: Piotr Caban <piotr at codeweavers.com>
Date: Mon Oct 31 12:32:49 2011 +0100
msxml3/tests: Added SAXAttributes object pointer tests.
---
dlls/msxml3/tests/saxreader.c | 36 ++++++++++++++++++++++++++++++------
1 files changed, 30 insertions(+), 6 deletions(-)
diff --git a/dlls/msxml3/tests/saxreader.c b/dlls/msxml3/tests/saxreader.c
index 973381b..4ad80c6 100644
--- a/dlls/msxml3/tests/saxreader.c
+++ b/dlls/msxml3/tests/saxreader.c
@@ -124,6 +124,7 @@ static const CHAR szTestXML[] =
static const CHAR szTestAttributes[] =
"<?xml version=\"1.0\" ?>\n"
"<document xmlns:test=\"prefix_test\" xmlns=\"prefix\" test:arg1=\"arg1\" arg2=\"arg2\">\n"
+"<node1 xmlns:p=\"test\" />"
"</document>\n";
typedef struct _contenthandlercheck {
@@ -214,9 +215,13 @@ static content_handler_test contentHandlerTestAttributes[] = {
{ CH_STARTPREFIXMAPPING, 2, 80, 2, 79, "", "prefix" },
{ CH_STARTELEMENT, 2, 80, 2, 79, "prefix", "document", "document" },
{ CH_CHARACTERS, 2, 80, 3, 1, "\n" },
- { CH_ENDELEMENT, 3, 3, 3, 11, "prefix", "document", "document" },
- { CH_ENDPREFIXMAPPING, 3, 3, 3, 11, "" },
- { CH_ENDPREFIXMAPPING, 3, 3, 3, 11, "test" },
+ { CH_STARTPREFIXMAPPING, 3, 25, 3, 24, "p", "test" },
+ { CH_STARTELEMENT, 3, 25, 3, 24, "prefix", "node1", "node1" },
+ { CH_ENDELEMENT, 3, 25, 3, 24, "prefix", "node1", "node1" },
+ { CH_ENDPREFIXMAPPING, 3, 25, 3, 24, "p" },
+ { CH_ENDELEMENT, 3, 27, 3, 35, "prefix", "document", "document" },
+ { CH_ENDPREFIXMAPPING, 3, 27, 3, 35, "" },
+ { CH_ENDPREFIXMAPPING, 3, 27, 3, 35, "test" },
{ CH_ENDDOCUMENT, 0, 0, 4, 0 },
{ CH_ENDTEST }
};
@@ -228,9 +233,13 @@ static content_handler_test contentHandlerTestAttributes6[] = {
{ CH_STARTPREFIXMAPPING, 2, 80, 2, 79, "", "prefix" },
{ CH_STARTELEMENT, 2, 80, 2, 79, "prefix", "document", "document" },
{ CH_CHARACTERS, 2, 80, 3, 1, "\n" },
- { CH_ENDELEMENT, 3, 3, 3, 11, "prefix", "document", "document" },
- { CH_ENDPREFIXMAPPING, 3, 3, 3, 11, "test" },
- { CH_ENDPREFIXMAPPING, 3, 3, 3, 11, "" },
+ { CH_STARTPREFIXMAPPING, 3, 25, 3, 24, "p", "test" },
+ { CH_STARTELEMENT, 3, 25, 3, 24, "prefix", "node1", "node1" },
+ { CH_ENDELEMENT, 3, 25, 3, 24, "prefix", "node1", "node1" },
+ { CH_ENDPREFIXMAPPING, 3, 25, 3, 24, "p" },
+ { CH_ENDELEMENT, 3, 27, 3, 35, "prefix", "document", "document" },
+ { CH_ENDPREFIXMAPPING, 3, 27, 3, 35, "test" },
+ { CH_ENDPREFIXMAPPING, 3, 27, 3, 35, "" },
{ CH_ENDDOCUMENT, 0, 0, 4, 0 },
{ CH_ENDTEST }
};
@@ -313,6 +322,9 @@ static HRESULT WINAPI contentHandler_putDocumentLocator(
ISAXContentHandler* iface,
ISAXLocator *pLocator)
{
+ ISAXAttributes *attr;
+ HRESULT hres;
+
if(!test_expect_call(CH_PUTDOCUMENTLOCATOR))
return E_FAIL;
@@ -320,15 +332,23 @@ static HRESULT WINAPI contentHandler_putDocumentLocator(
test_locator(__LINE__, msxml_version>=6 ? expectCall->line_v6 : expectCall->line,
msxml_version>=6 ? expectCall->column_v6 : expectCall->column);
+ if(msxml_version >= 6) {
+ hres = ISAXLocator_QueryInterface(pLocator, &IID_ISAXAttributes, (void**)&attr);
+ ok(hres == S_OK, "QueryInterface failed: %x\n", hres);
+ ISAXAttributes_Release(attr);
+ }
+
return (expectCall++)->ret;
}
+static ISAXAttributes *test_attr_ptr;
static HRESULT WINAPI contentHandler_startDocument(
ISAXContentHandler* iface)
{
if(!test_expect_call(CH_STARTDOCUMENT))
return E_FAIL;
+ test_attr_ptr = NULL;
test_locator(__LINE__, msxml_version>=6 ? expectCall->line_v6 : expectCall->line,
msxml_version>=6 ? expectCall->column_v6 : expectCall->column);
@@ -402,6 +422,10 @@ static HRESULT WINAPI contentHandler_startElement(
test_locator(__LINE__, msxml_version>=6 ? expectCall->line_v6 : expectCall->line,
msxml_version>=6 ? expectCall->column_v6 : expectCall->column);
+ if(!test_attr_ptr)
+ test_attr_ptr = pAttr;
+ ok(test_attr_ptr == pAttr, "Multiple ISAXAttributes instances are used (%p %p)\n", test_attr_ptr, pAttr);
+
if(expectCall == contentHandlerTestAttributes+4) {
int i;
/* msxml3 returns attributes and namespaces in the input order */
More information about the wine-cvs
mailing list