From: Amine Khaldi Date: Sat, 26 Jan 2019 12:07:24 +0000 (+0100) Subject: [HLINK_WINETEST] Sync with Wine Staging 4.0. CORE-15682 X-Git-Tag: 0.4.13-dev~608 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=99138ae93e6408ec5f5a7f09476cef809618c4bf [HLINK_WINETEST] Sync with Wine Staging 4.0. CORE-15682 --- diff --git a/modules/rostests/winetests/hlink/hlink.c b/modules/rostests/winetests/hlink/hlink.c index 265dea3f458..ccbbd889d5c 100644 --- a/modules/rostests/winetests/hlink/hlink.c +++ b/modules/rostests/winetests/hlink/hlink.c @@ -81,9 +81,16 @@ DEFINE_EXPECT(HT_GetFriendlyName); DEFINE_EXPECT(HLF_UpdateHlink); +DEFINE_EXPECT(BindStatusCallback_GetBindInfo); +DEFINE_EXPECT(BindStatusCallback_OnObjectAvailable); +DEFINE_EXPECT(BindStatusCallback_OnStartBinding); +DEFINE_EXPECT(BindStatusCallback_OnStopBinding); + DEFINE_GUID(CLSID_IdentityUnmarshal,0x0000001b,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); DEFINE_GUID(IID_IHlinkHistory,0x79eac9c8,0xbaf9,0x11ce,0x8c,0x82,0x00,0xaa,0x00,0x4b,0xa9,0x0b); +static IHlinkTarget HlinkTarget; + static const WCHAR winehq_urlW[] = {'h','t','t','p',':','/','/','t','e','s','t','.','w','i','n','e','h','q','.','o','r','g', '/','t','e','s','t','s','/','h','e','l','l','o','.','h','t','m','l',0}; @@ -120,7 +127,7 @@ static void test_HlinkIsShortcut(void) {NULL, E_INVALIDARG} }; - for(i=0; i 1, "Got unexpected refcount %d.\n", browse_ctx_refs); + + hres = IHlink_Navigate(hlink, 0, pbc, NULL, &HlinkBrowseContext); + ok(hres == E_UNEXPECTED, "Got hr %#x.\n", hres); + + hres = IBindStatusCallback_GetBindInfo(async_bind_callback, &bind_flags, &bind_info); + ok(hres == S_OK, "Got hr %#x.\n", hres); + + hres = IBindStatusCallback_OnStartBinding(async_bind_callback, 0, NULL); + ok(hres == S_OK, "Got hr %#x.\n", hres); + + SET_EXPECT(HT_QueryInterface_IHlinkTarget); + SET_EXPECT(HT_GetBrowseContext); + SET_EXPECT(HT_SetBrowseContext); + SET_EXPECT(HBC_QueryInterface_IHlinkHistory); + SET_EXPECT(HT_Navigate); + SET_EXPECT(HT_GetFriendlyName); + hres = IBindStatusCallback_OnObjectAvailable(async_bind_callback, &IID_IUnknown, + (IUnknown *)&HlinkTarget); + ok(hres == S_OK, "Got hr %#x.\n", hres); + CHECK_CALLED(HT_QueryInterface_IHlinkTarget); +todo_wine + CHECK_CALLED(HT_GetBrowseContext); + CHECK_CALLED(HT_SetBrowseContext); +todo_wine + CHECK_CALLED(HBC_QueryInterface_IHlinkHistory); + CHECK_CALLED(HT_Navigate); +todo_wine + CHECK_CALLED(HT_GetFriendlyName); + + hres = IHlink_Navigate(hlink, 0, pbc, NULL, &HlinkBrowseContext); + ok(hres == E_UNEXPECTED, "Got hr %#x.\n", hres); + + ok(browse_ctx_refs > 1, "Got unexpected refcount %d.\n", browse_ctx_refs); + + hres = IBindStatusCallback_OnStopBinding(async_bind_callback, S_OK, NULL); + ok(hres == S_OK, "Got hr %#x.\n", hres); + + ok(browse_ctx_refs == 1, "Got unexpected refcount %d.\n", browse_ctx_refs); + + IBindStatusCallback_Release(async_bind_callback); + + SET_EXPECT(IsSystemMoniker); + SET_EXPECT(GetDisplayName); + SET_EXPECT(BindStatusCallback_GetBindInfo); + SET_EXPECT(HBC_GetObject); + SET_EXPECT(Reduce); + SET_EXPECT(BindToObject); + hres = IHlink_Navigate(hlink, 0, pbc, &BindStatusCallback, &HlinkBrowseContext); + ok(hres == MK_S_ASYNCHRONOUS, "Navigate failed: %#x\n", hres); + CHECK_CALLED(IsSystemMoniker); + CHECK_CALLED(GetDisplayName); +todo_wine + CHECK_CALLED(BindStatusCallback_GetBindInfo); + CHECK_CALLED(HBC_GetObject); +todo_wine + CHECK_CALLED(Reduce); + CHECK_CALLED(BindToObject); + + ok(bind_callback_refs > 1, "Got unexpected refcount %d.\n", bind_callback_refs); + ok(browse_ctx_refs > 1, "Got unexpected refcount %d.\n", browse_ctx_refs); + + hres = IHlink_Navigate(hlink, 0, pbc, NULL, &HlinkBrowseContext); + ok(hres == E_UNEXPECTED, "Got hr %#x.\n", hres); + + SET_EXPECT(BindStatusCallback_GetBindInfo); + hres = IBindStatusCallback_GetBindInfo(async_bind_callback, &bind_flags, &bind_info); + ok(hres == E_NOTIMPL, "Got hr %#x.\n", hres); + CHECK_CALLED(BindStatusCallback_GetBindInfo); + + SET_EXPECT(BindStatusCallback_OnStartBinding); + hres = IBindStatusCallback_OnStartBinding(async_bind_callback, 0, NULL); + ok(hres == S_OK, "Got hr %#x.\n", hres); + CHECK_CALLED(BindStatusCallback_OnStartBinding); + + SET_EXPECT(BindStatusCallback_OnObjectAvailable); + SET_EXPECT(HT_QueryInterface_IHlinkTarget); + SET_EXPECT(HT_GetBrowseContext); + SET_EXPECT(HT_SetBrowseContext); + SET_EXPECT(HBC_QueryInterface_IHlinkHistory); + SET_EXPECT(HT_Navigate); + SET_EXPECT(HT_GetFriendlyName); + hres = IBindStatusCallback_OnObjectAvailable(async_bind_callback, &IID_IUnknown, + (IUnknown *)&HlinkTarget); + ok(hres == S_OK, "Got hr %#x.\n", hres); + CHECK_CALLED(BindStatusCallback_OnObjectAvailable); + CHECK_CALLED(HT_QueryInterface_IHlinkTarget); +todo_wine + CHECK_CALLED(HT_GetBrowseContext); + CHECK_CALLED(HT_SetBrowseContext); +todo_wine + CHECK_CALLED(HBC_QueryInterface_IHlinkHistory); + CHECK_CALLED(HT_Navigate); +todo_wine + CHECK_CALLED(HT_GetFriendlyName); + + hres = IHlink_Navigate(hlink, 0, pbc, NULL, &HlinkBrowseContext); + ok(hres == E_UNEXPECTED, "Got hr %#x.\n", hres); + + ok(bind_callback_refs > 1, "Got unexpected refcount %d.\n", bind_callback_refs); + ok(browse_ctx_refs > 1, "Got unexpected refcount %d.\n", browse_ctx_refs); + + SET_EXPECT(BindStatusCallback_OnStopBinding); + hres = IBindStatusCallback_OnStopBinding(async_bind_callback, S_OK, NULL); + ok(hres == S_OK, "Got hr %#x.\n", hres); + CHECK_CALLED(BindStatusCallback_OnStopBinding); + + ok(bind_callback_refs == 1, "Got unexpected refcount %d.\n", bind_callback_refs); + ok(browse_ctx_refs == 1, "Got unexpected refcount %d.\n", browse_ctx_refs); + + IBindStatusCallback_Release(async_bind_callback); + IHlink_Release(hlink); IBindCtx_Release(pbc); _bctx = NULL;