Piotr Caban : msxml3/tests: Added test for ISAXXMLReader_parse with SafeArray as argument.

Alexandre Julliard julliard at winehq.org
Mon Jul 21 08:51:38 CDT 2008


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

Author: Piotr Caban <piotr.caban at gmail.com>
Date:   Sat Jul 19 22:32:26 2008 +0200

msxml3/tests: Added test for ISAXXMLReader_parse with SafeArray as argument.

---

 dlls/msxml3/tests/saxreader.c |   26 ++++++++++++++++++++++++++
 1 files changed, 26 insertions(+), 0 deletions(-)

diff --git a/dlls/msxml3/tests/saxreader.c b/dlls/msxml3/tests/saxreader.c
index 3bb7983..26f232b 100644
--- a/dlls/msxml3/tests/saxreader.c
+++ b/dlls/msxml3/tests/saxreader.c
@@ -52,6 +52,13 @@ static const WCHAR szSimpleXML[] = {
 '<','/','B','a','n','k','A','c','c','o','u','n','t','>','\n','\0'
 };
 
+static CHAR szTestXML[] =
+"<?xml version=\"1.0\" ?>\n"
+"<BankAccount>\n"
+"   <Number>1234</Number>\n"
+"   <Name>Captain Ahab</Name>\n"
+"</BankAccount>\n";
+
 typedef struct _contenthandlercheck {
     CH id;
     int line;
@@ -434,6 +441,9 @@ static void test_saxreader(void)
     VARIANT var;
     ISAXContentHandler *lpContentHandler;
     ISAXErrorHandler *lpErrorHandler;
+    SAFEARRAY *pSA;
+    SAFEARRAYBOUND SADim[1];
+    char *pSAData = NULL;
 
     hr = CoCreateInstance(&CLSID_SAXXMLReader, NULL, CLSCTX_INPROC_SERVER,
             &IID_ISAXXMLReader, (LPVOID*)&reader);
@@ -479,6 +489,22 @@ static void test_saxreader(void)
     ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
     test_expect_call(CH_ENDTEST);
 
+    SADim[0].lLbound= 0;
+    SADim[0].cElements= sizeof(szTestXML)-1;
+    pSA = SafeArrayCreate(VT_UI1, 1, SADim);
+    SafeArrayAccessData(pSA, (void**)&pSAData);
+    memcpy(pSAData, szTestXML, sizeof(szTestXML)-1);
+    SafeArrayUnaccessData(pSA);
+    V_VT(&var) = VT_ARRAY|VT_UI1;
+    V_ARRAY(&var) = pSA;
+
+    expectCall = contentHandlerTest1;
+    hr = ISAXXMLReader_parse(reader, var);
+    ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+    test_expect_call(CH_ENDTEST);
+
+    SafeArrayDestroy(pSA);
+
     ISAXXMLReader_Release(reader);
 }
 




More information about the wine-cvs mailing list