mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 16:36:33 +00:00
[WBEMDISP_WINETEST] Sync with Wine Staging 4.0. CORE-15682
This commit is contained in:
parent
8786e12d13
commit
e054ebd54c
1 changed files with 89 additions and 5 deletions
|
@ -48,6 +48,11 @@ static void test_ParseDisplayName(void)
|
||||||
static const WCHAR name4[] =
|
static const WCHAR name4[] =
|
||||||
{'w','i','n','m','g','m','t','s',':','\\','\\','.','\\','r','o','o','t','\\','c','i','m','v','2',':',
|
{'w','i','n','m','g','m','t','s',':','\\','\\','.','\\','r','o','o','t','\\','c','i','m','v','2',':',
|
||||||
'W','i','n','3','2','_','S','e','r','v','i','c','e',0};
|
'W','i','n','3','2','_','S','e','r','v','i','c','e',0};
|
||||||
|
static const WCHAR stdregprovW[] =
|
||||||
|
{'w','i','n','m','g','m','t','s',':','\\','\\','.','\\','r','o','o','t','\\','d','e','f','a','u','l','t',':',
|
||||||
|
'S','t','d','R','e','g','P','r','o','v',0};
|
||||||
|
static const WCHAR getstringvalueW[] =
|
||||||
|
{'G','e','t','S','t','r','i','n','g','V','a','l','u','e',0};
|
||||||
static const struct
|
static const struct
|
||||||
{
|
{
|
||||||
const WCHAR *name;
|
const WCHAR *name;
|
||||||
|
@ -56,10 +61,10 @@ static void test_ParseDisplayName(void)
|
||||||
ULONG eaten;
|
ULONG eaten;
|
||||||
} tests[] =
|
} tests[] =
|
||||||
{
|
{
|
||||||
{ name1, S_OK, &IID_ISWbemServices, sizeof(name1)/sizeof(name1[0]) - 1 },
|
{ name1, S_OK, &IID_ISWbemServices, ARRAY_SIZE( name1 ) - 1 },
|
||||||
{ name2, S_OK, &IID_ISWbemServices, sizeof(name2)/sizeof(name2[0]) - 1 },
|
{ name2, S_OK, &IID_ISWbemServices, ARRAY_SIZE( name2 ) - 1 },
|
||||||
{ name3, S_OK, &IID_ISWbemObject, sizeof(name3)/sizeof(name3[0]) - 1 },
|
{ name3, S_OK, &IID_ISWbemObject, ARRAY_SIZE( name3 ) - 1 },
|
||||||
{ name4, S_OK, &IID_ISWbemObject, sizeof(name4)/sizeof(name4[0]) - 1 }
|
{ name4, S_OK, &IID_ISWbemObject, ARRAY_SIZE( name4 ) - 1 }
|
||||||
};
|
};
|
||||||
IParseDisplayName *displayname;
|
IParseDisplayName *displayname;
|
||||||
IBindCtx *ctx;
|
IBindCtx *ctx;
|
||||||
|
@ -79,7 +84,7 @@ static void test_ParseDisplayName(void)
|
||||||
hr = CreateBindCtx( 0, &ctx );
|
hr = CreateBindCtx( 0, &ctx );
|
||||||
ok( hr == S_OK, "got %x\n", hr );
|
ok( hr == S_OK, "got %x\n", hr );
|
||||||
|
|
||||||
for (i =0; i < sizeof(tests)/sizeof(tests[0]); i++)
|
for (i =0; i < ARRAY_SIZE( tests ); i++)
|
||||||
{
|
{
|
||||||
str = SysAllocString( tests[i].name );
|
str = SysAllocString( tests[i].name );
|
||||||
eaten = 0xdeadbeef;
|
eaten = 0xdeadbeef;
|
||||||
|
@ -241,6 +246,36 @@ static void test_ParseDisplayName(void)
|
||||||
IMoniker_Release( moniker );
|
IMoniker_Release( moniker );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IBindCtx_Release( ctx );
|
||||||
|
|
||||||
|
hr = CreateBindCtx( 0, &ctx );
|
||||||
|
ok( hr == S_OK, "got %x\n", hr );
|
||||||
|
|
||||||
|
str = SysAllocString( stdregprovW );
|
||||||
|
hr = IParseDisplayName_ParseDisplayName( displayname, NULL, str, &eaten, &moniker );
|
||||||
|
ok( hr == S_OK, "got %x\n", hr );
|
||||||
|
SysFreeString( str );
|
||||||
|
|
||||||
|
if (moniker)
|
||||||
|
{
|
||||||
|
ISWbemObject *sobj = NULL;
|
||||||
|
hr = IMoniker_BindToObject( moniker, ctx, NULL, &IID_ISWbemObject, (void **)&sobj );
|
||||||
|
ok( hr == S_OK, "got %x\n",hr );
|
||||||
|
if (sobj)
|
||||||
|
{
|
||||||
|
DISPID dispid = 0xdeadbeef;
|
||||||
|
|
||||||
|
str = SysAllocString( getstringvalueW );
|
||||||
|
hr = ISWbemObject_GetIDsOfNames( sobj, &IID_NULL, &str, 1, english, &dispid );
|
||||||
|
ok( hr == S_OK, "got %x\n", hr );
|
||||||
|
ok( dispid == 0x1000001, "got %x\n", dispid );
|
||||||
|
|
||||||
|
ISWbemObject_Release( sobj );
|
||||||
|
SysFreeString( str );
|
||||||
|
}
|
||||||
|
IMoniker_Release( moniker );
|
||||||
|
}
|
||||||
|
|
||||||
IBindCtx_Release(ctx);
|
IBindCtx_Release(ctx);
|
||||||
IParseDisplayName_Release( displayname );
|
IParseDisplayName_Release( displayname );
|
||||||
}
|
}
|
||||||
|
@ -265,7 +300,11 @@ static void test_locator(void)
|
||||||
ISWbemObject *object;
|
ISWbemObject *object;
|
||||||
ISWbemPropertySet *prop_set;
|
ISWbemPropertySet *prop_set;
|
||||||
ISWbemProperty *prop;
|
ISWbemProperty *prop;
|
||||||
|
ISWbemSecurity *security;
|
||||||
VARIANT var;
|
VARIANT var;
|
||||||
|
LONG count;
|
||||||
|
WbemImpersonationLevelEnum imp_level;
|
||||||
|
WbemAuthenticationLevelEnum auth_level;
|
||||||
|
|
||||||
hr = CoCreateInstance( &CLSID_SWbemLocator, NULL, CLSCTX_INPROC_SERVER, &IID_ISWbemLocator, (void **)&locator );
|
hr = CoCreateInstance( &CLSID_SWbemLocator, NULL, CLSCTX_INPROC_SERVER, &IID_ISWbemLocator, (void **)&locator );
|
||||||
ok( hr == S_OK, "got %x\n", hr );
|
ok( hr == S_OK, "got %x\n", hr );
|
||||||
|
@ -284,6 +323,34 @@ static void test_locator(void)
|
||||||
SysFreeString( lang_bstr );
|
SysFreeString( lang_bstr );
|
||||||
SysFreeString( query_bstr );
|
SysFreeString( query_bstr );
|
||||||
|
|
||||||
|
hr = ISWbemLocator_get_Security_( locator, &security );
|
||||||
|
ok( hr == S_OK, "got %x\n", hr );
|
||||||
|
imp_level = 0xdeadbeef;
|
||||||
|
hr = ISWbemSecurity_get_ImpersonationLevel( security, &imp_level );
|
||||||
|
ok( hr == S_OK, "got %x\n", hr );
|
||||||
|
ok( imp_level == wbemImpersonationLevelImpersonate, "got %u\n", imp_level );
|
||||||
|
hr = ISWbemSecurity_put_ImpersonationLevel( security, wbemImpersonationLevelAnonymous );
|
||||||
|
ok( hr == S_OK, "got %x\n", hr );
|
||||||
|
imp_level = 0xdeadbeef;
|
||||||
|
hr = ISWbemSecurity_get_ImpersonationLevel( security, &imp_level );
|
||||||
|
ok( hr == S_OK, "got %x\n", hr );
|
||||||
|
ok( imp_level == wbemImpersonationLevelAnonymous, "got %u\n", imp_level );
|
||||||
|
|
||||||
|
auth_level = 0xdeadbeef;
|
||||||
|
hr = ISWbemSecurity_get_AuthenticationLevel( security, &auth_level );
|
||||||
|
todo_wine {
|
||||||
|
ok( hr == WBEM_E_FAILED, "got %x\n", hr );
|
||||||
|
ok( auth_level == 0xdeadbeef, "got %u\n", auth_level );
|
||||||
|
}
|
||||||
|
hr = ISWbemSecurity_put_AuthenticationLevel( security, wbemAuthenticationLevelNone );
|
||||||
|
ok( hr == S_OK, "got %x\n", hr );
|
||||||
|
auth_level = 0xdeadbeef;
|
||||||
|
hr = ISWbemSecurity_get_AuthenticationLevel( security, &auth_level );
|
||||||
|
ok( hr == S_OK, "got %x\n", hr );
|
||||||
|
ok( auth_level == wbemAuthenticationLevelNone, "got %u\n", auth_level );
|
||||||
|
ISWbemSecurity_Release( security );
|
||||||
|
security = NULL;
|
||||||
|
|
||||||
hr = ISWbemObjectSet_get__NewEnum( object_set, (IUnknown**)&enum_var );
|
hr = ISWbemObjectSet_get__NewEnum( object_set, (IUnknown**)&enum_var );
|
||||||
ok( hr == S_OK, "got %x\n", hr );
|
ok( hr == S_OK, "got %x\n", hr );
|
||||||
|
|
||||||
|
@ -313,11 +380,28 @@ static void test_locator(void)
|
||||||
ok( hr == S_OK, "got %x\n", hr );
|
ok( hr == S_OK, "got %x\n", hr );
|
||||||
SysFreeString( procid_bstr );
|
SysFreeString( procid_bstr );
|
||||||
|
|
||||||
|
count = 0;
|
||||||
|
hr = ISWbemPropertySet_get_Count( prop_set, &count );
|
||||||
|
ok( hr == S_OK, "got %x\n", hr );
|
||||||
|
ok( count > 0, "got %d\n", count );
|
||||||
|
|
||||||
hr = ISWbemProperty_get_Value( prop, &var );
|
hr = ISWbemProperty_get_Value( prop, &var );
|
||||||
ok( hr == S_OK, "got %x\n", hr );
|
ok( hr == S_OK, "got %x\n", hr );
|
||||||
ok( V_VT(&var) == VT_BSTR, "got %x\n", V_VT(&var) );
|
ok( V_VT(&var) == VT_BSTR, "got %x\n", V_VT(&var) );
|
||||||
VariantClear( &var );
|
VariantClear( &var );
|
||||||
|
|
||||||
|
hr = ISWbemServices_get_Security_( services, &security );
|
||||||
|
ok( hr == S_OK, "got %x\n", hr );
|
||||||
|
imp_level = 0xdeadbeef;
|
||||||
|
hr = ISWbemSecurity_get_ImpersonationLevel( security, &imp_level );
|
||||||
|
ok( hr == S_OK, "got %x\n", hr );
|
||||||
|
ok( imp_level == wbemImpersonationLevelImpersonate, "got %u\n", imp_level );
|
||||||
|
auth_level = 0xdeadbeef;
|
||||||
|
hr = ISWbemSecurity_get_AuthenticationLevel( security, &auth_level );
|
||||||
|
ok( hr == S_OK, "got %x\n", hr );
|
||||||
|
ok( auth_level == wbemAuthenticationLevelPktPrivacy, "got %u\n", auth_level );
|
||||||
|
|
||||||
|
ISWbemSecurity_Release(security);
|
||||||
ISWbemProperty_Release( prop );
|
ISWbemProperty_Release( prop );
|
||||||
ISWbemPropertySet_Release( prop_set );
|
ISWbemPropertySet_Release( prop_set );
|
||||||
ISWbemObject_Release( object );
|
ISWbemObject_Release( object );
|
||||||
|
|
Loading…
Reference in a new issue