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