netprofm/tests: Add tests for ConnectionPointContainer::FindConnectionPoint.

The refcounting is also tested because some apps depend on that.
This commit is contained in:
Michael Müller 2015-03-25 12:03:48 +01:00 committed by Alexandre Julliard
parent 8e99972204
commit d07f76e39a
1 changed files with 27 additions and 1 deletions

View File

@ -27,12 +27,15 @@
static void test_INetworkListManager( void ) static void test_INetworkListManager( void )
{ {
IConnectionPointContainer *cpc; IConnectionPointContainer *cpc, *cpc2;
INetworkListManager *mgr; INetworkListManager *mgr;
INetworkCostManager *cost_mgr; INetworkCostManager *cost_mgr;
NLM_CONNECTIVITY connectivity; NLM_CONNECTIVITY connectivity;
VARIANT_BOOL connected; VARIANT_BOOL connected;
IConnectionPoint *pt;
HRESULT hr; HRESULT hr;
ULONG ref1, ref2;
IID iid;
hr = CoCreateInstance( &CLSID_NetworkListManager, NULL, CLSCTX_INPROC_SERVER, hr = CoCreateInstance( &CLSID_NetworkListManager, NULL, CLSCTX_INPROC_SERVER,
&IID_INetworkListManager, (void **)&mgr ); &IID_INetworkListManager, (void **)&mgr );
@ -78,8 +81,31 @@ static void test_INetworkListManager( void )
hr = INetworkListManager_QueryInterface( mgr, &IID_IConnectionPointContainer, (void**)&cpc ); hr = INetworkListManager_QueryInterface( mgr, &IID_IConnectionPointContainer, (void**)&cpc );
ok( hr == S_OK, "got %08x\n", hr ); ok( hr == S_OK, "got %08x\n", hr );
ref1 = IConnectionPointContainer_AddRef( cpc );
hr = IConnectionPointContainer_FindConnectionPoint( cpc, &IID_INetworkListManagerEvents, &pt );
ok( hr == S_OK, "got %08x\n", hr );
ref2 = IConnectionPointContainer_AddRef( cpc );
ok( ref2 == ref1 + 2, "Expected refcount %d, got %d\n", ref1 + 2, ref2 );
IConnectionPointContainer_Release( cpc );
IConnectionPointContainer_Release( cpc ); IConnectionPointContainer_Release( cpc );
hr = IConnectionPoint_GetConnectionPointContainer( pt, &cpc2 );
ok( hr == S_OK, "got %08x\n", hr );
ok( cpc2 == cpc, "Expected cpc2 == %p, but got %p\n", cpc, cpc2 );
IConnectionPointContainer_Release( cpc2 );
memset( &iid, 0, sizeof(iid) );
hr = IConnectionPoint_GetConnectionInterface( pt, &iid );
ok( hr == S_OK, "got %08x\n", hr );
ok( !memcmp( &iid, &IID_INetworkListManagerEvents, sizeof(iid) ),
"Expected iid to be IID_INetworkListManagerEvents\n" );
IConnectionPoint_Release( pt );
IConnectionPointContainer_Release( cpc );
INetworkListManager_Release( mgr ); INetworkListManager_Release( mgr );
} }