Module: wine Branch: master Commit: 3ca5f8bbf99b311792cb1b6a4d706376c88b5b9a URL: http://source.winehq.org/git/wine.git/?a=commit;h=3ca5f8bbf99b311792cb1b6a4d...
Author: Mike McCormack mike@codeweavers.com Date: Wed Feb 7 20:21:11 2007 +0900
msi: Add a test for the version method.
---
dlls/msi/tests/iface.c | 39 +++++++++++++++++++++++++++------------ 1 files changed, 27 insertions(+), 12 deletions(-)
diff --git a/dlls/msi/tests/iface.c b/dlls/msi/tests/iface.c index 9a0742b..8a18e34 100644 --- a/dlls/msi/tests/iface.c +++ b/dlls/msi/tests/iface.c @@ -170,32 +170,47 @@ static void test_msi_invoke(void) r = IDispatch_Invoke( installer, dispid, &IID_NULL, 0, DISPATCH_METHOD, ¶m, &result, NULL, NULL); todo_wine ok( r == S_OK, "dispatch failed %08x\n", r); - if (FAILED(r)) + if (SUCCEEDED(r)) { - skip( "failed to create record\n"); - return; - } + ok( V_VT(&result) == VT_DISPATCH, "type wrong\n"); + + record = V_DISPATCH(&result);
- ok( V_VT(&result) == VT_DISPATCH, "type wrong\n"); + memset( &result, 0, sizeof result ); + dispid = get_dispid( record, "FieldCount" );
- record = V_DISPATCH(&result); + param.cArgs = 0; + param.cNamedArgs = 0; + param.rgvarg = &varg; + param.rgdispidNamedArgs = &arg; + + r = IDispatch_Invoke( record, dispid, &IID_NULL, 0, + DISPATCH_PROPERTYGET, ¶m, &result, NULL, NULL ); + ok( r == S_OK, "dispatch failed %08x\n", r); + + ok( V_VT(&result) == VT_I4, "type wrong\n"); + ok( V_I4(&result) == 1, "field count wrong\n"); + + IDispatch_Release( record ); + } + else + skip( "failed to create record\n");
memset( &result, 0, sizeof result ); - dispid = get_dispid( record, "FieldCount" ); + dispid = get_dispid( installer, "Version" );
param.cArgs = 0; param.cNamedArgs = 0; param.rgvarg = &varg; param.rgdispidNamedArgs = &arg;
- r = IDispatch_Invoke( record, dispid, &IID_NULL, 0, + r = IDispatch_Invoke( installer, dispid, &IID_NULL, 0, DISPATCH_PROPERTYGET, ¶m, &result, NULL, NULL ); + todo_wine { ok( r == S_OK, "dispatch failed %08x\n", r); + ok( V_VT(&result) == VT_BSTR, "type wrong %d\n", V_VT(&result)); + }
- ok( V_VT(&result) == VT_I4, "type wrong\n"); - ok( V_I4(&result) == 1, "field count wrong\n"); - - IDispatch_Release( record ); IDispatch_Release( installer ); }