[WBEMDISP_WINETEST] Sync with Wine Staging 4.0. CORE-15682

This commit is contained in:
Amine Khaldi 2019-02-04 13:10:24 +01:00
parent 8786e12d13
commit e054ebd54c

View file

@ -48,6 +48,11 @@ static void test_ParseDisplayName(void)
static const WCHAR name4[] =
{'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};
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
{
const WCHAR *name;
@ -56,10 +61,10 @@ static void test_ParseDisplayName(void)
ULONG eaten;
} tests[] =
{
{ name1, S_OK, &IID_ISWbemServices, sizeof(name1)/sizeof(name1[0]) - 1 },
{ name2, S_OK, &IID_ISWbemServices, sizeof(name2)/sizeof(name2[0]) - 1 },
{ name3, S_OK, &IID_ISWbemObject, sizeof(name3)/sizeof(name3[0]) - 1 },
{ name4, S_OK, &IID_ISWbemObject, sizeof(name4)/sizeof(name4[0]) - 1 }
{ name1, S_OK, &IID_ISWbemServices, ARRAY_SIZE( name1 ) - 1 },
{ name2, S_OK, &IID_ISWbemServices, ARRAY_SIZE( name2 ) - 1 },
{ name3, S_OK, &IID_ISWbemObject, ARRAY_SIZE( name3 ) - 1 },
{ name4, S_OK, &IID_ISWbemObject, ARRAY_SIZE( name4 ) - 1 }
};
IParseDisplayName *displayname;
IBindCtx *ctx;
@ -79,7 +84,7 @@ static void test_ParseDisplayName(void)
hr = CreateBindCtx( 0, &ctx );
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 );
eaten = 0xdeadbeef;
@ -241,6 +246,36 @@ static void test_ParseDisplayName(void)
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);
IParseDisplayName_Release( displayname );
}
@ -265,7 +300,11 @@ static void test_locator(void)
ISWbemObject *object;
ISWbemPropertySet *prop_set;
ISWbemProperty *prop;
ISWbemSecurity *security;
VARIANT var;
LONG count;
WbemImpersonationLevelEnum imp_level;
WbemAuthenticationLevelEnum auth_level;
hr = CoCreateInstance( &CLSID_SWbemLocator, NULL, CLSCTX_INPROC_SERVER, &IID_ISWbemLocator, (void **)&locator );
ok( hr == S_OK, "got %x\n", hr );
@ -284,6 +323,34 @@ static void test_locator(void)
SysFreeString( lang_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 );
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 );
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 );
ok( hr == S_OK, "got %x\n", hr );
ok( V_VT(&var) == VT_BSTR, "got %x\n", V_VT(&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 );
ISWbemPropertySet_Release( prop_set );
ISWbemObject_Release( object );