Piotr Caban : vbscript: Added tests for invalid parameters in regular expression functions.

Alexandre Julliard julliard at winehq.org
Tue Feb 19 13:33:04 CST 2013


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Tue Feb 19 12:42:41 2013 +0100

vbscript: Added tests for invalid parameters in regular expression functions.

---

 dlls/vbscript/tests/vbscript.c |   75 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 75 insertions(+), 0 deletions(-)

diff --git a/dlls/vbscript/tests/vbscript.c b/dlls/vbscript/tests/vbscript.c
index 40b03ae..a4b447f 100644
--- a/dlls/vbscript/tests/vbscript.c
+++ b/dlls/vbscript/tests/vbscript.c
@@ -797,8 +797,15 @@ static void test_vbscript_initializing(void)
 static void test_RegExp(void)
 {
     IRegExp2 *regexp;
+    IMatchCollection2 *mc;
+    IMatch2 *match;
+    ISubMatches *sm;
     IUnknown *unk;
+    IDispatch *disp;
     HRESULT hres;
+    BSTR bstr;
+    LONG count;
+    VARIANT v;
 
     hres = CoCreateInstance(&CLSID_VBScriptRegExp, NULL,
             CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER,
@@ -824,6 +831,74 @@ static void test_RegExp(void)
     hres = IRegExp2_QueryInterface(regexp, &IID_IDispatchEx, (void**)&unk);
     ok(hres == E_NOINTERFACE, "QueryInterface(IID_IDispatchEx) returned %x\n", hres);
 
+    hres = IRegExp2_get_Pattern(regexp, &bstr);
+    ok(bstr == NULL, "bstr != NULL\n");
+    ok(hres == S_OK, "get_Pattern returned %x, expected S_OK\n", hres);
+
+    hres = IRegExp2_get_Pattern(regexp, NULL);
+    ok(hres == E_POINTER, "get_Pattern returned %x, expected E_POINTER\n", hres);
+
+    hres = IRegExp2_get_IgnoreCase(regexp, NULL);
+    ok(hres == E_POINTER, "get_IgnoreCase returned %x, expected E_POINTER\n", hres);
+
+    hres = IRegExp2_get_Global(regexp, NULL);
+    ok(hres == E_POINTER, "get_Global returned %x, expected E_POINTER\n", hres);
+
+    hres = IRegExp2_Execute(regexp, NULL, &disp);
+    ok(hres == S_OK, "Execute returned %x, expected S_OK\n", hres);
+    hres = IDispatch_QueryInterface(disp, &IID_IMatchCollection2, (void**)&mc);
+    ok(hres == S_OK, "QueryInterface(IID_IMatchCollection2) returned %x\n", hres);
+    IDispatch_Release(disp);
+
+    hres = IMatchCollection2_get_Count(mc, NULL);
+    ok(hres == E_POINTER, "get_Count returned %x, expected E_POINTER\n", hres);
+
+    hres = IMatchCollection2_get_Count(mc, &count);
+    ok(hres == S_OK, "get_Count returned %x, expected S_OK\n", hres);
+    ok(count == 1, "count = %d\n", count);
+
+    hres = IMatchCollection2_get_Item(mc, 1, &disp);
+    ok(hres == E_INVALIDARG, "get_Item returned %x, expected E_INVALIDARG\n", hres);
+
+    hres = IMatchCollection2_get_Item(mc, 1, NULL);
+    ok(hres == E_POINTER, "get_Item returned %x, expected E_POINTER\n", hres);
+
+    hres = IMatchCollection2_get_Item(mc, 0, &disp);
+    ok(hres == S_OK, "get_Item returned %x, expected S_OK\n", hres);
+    IMatchCollection2_Release(mc);
+    hres = IDispatch_QueryInterface(disp, &IID_IMatch2, (void**)&match);
+    ok(hres == S_OK, "QueryInterface(IID_IMatch2) returned %x\n", hres);
+    IDispatch_Release(disp);
+
+    hres = IMatch2_get_Value(match, NULL);
+    ok(hres == E_POINTER, "get_Value returned %x, expected E_POINTER\n", hres);
+
+    hres = IMatch2_get_FirstIndex(match, NULL);
+    ok(hres == E_POINTER, "get_FirstIndex returned %x, expected E_POINTER\n", hres);
+
+    hres = IMatch2_get_Length(match, NULL);
+    ok(hres == E_POINTER, "get_Length returned %x, expected E_POINTER\n", hres);
+
+    hres = IMatch2_get_SubMatches(match, NULL);
+    ok(hres == E_POINTER, "get_SubMatches returned %x, expected E_POINTER\n", hres);
+
+    hres = IMatch2_get_SubMatches(match, &disp);
+    ok(hres == S_OK, "get_SubMatches returned %x, expected S_OK\n", hres);
+    IMatch2_Release(match);
+    hres = IDispatch_QueryInterface(disp, &IID_ISubMatches, (void**)&sm);
+    ok(hres == S_OK, "QueryInterface(IID_ISubMatches) returned %x\n", hres);
+    IDispatch_Release(disp);
+
+    hres = ISubMatches_get_Item(sm, 0, &v);
+    ok(hres == E_INVALIDARG, "get_Item returned %x, expected E_INVALIDARG\n", hres);
+
+    hres = ISubMatches_get_Item(sm, 0, NULL);
+    ok(hres == E_POINTER, "get_Item returned %x, expected E_POINTER\n", hres);
+
+    hres = ISubMatches_get_Count(sm, NULL);
+    ok(hres == E_POINTER, "get_Count returned %x, expected E_POINTER\n", hres);
+    ISubMatches_Release(sm);
+
     IRegExp2_Release(regexp);
 }
 




More information about the wine-cvs mailing list