Damjan Jovanovic : shell32/tests: Fix test failures from ad412b11a7ea17b708994ed6609f8ed0cbfb169b.
Module: wine Branch: master Commit: a3295e383116f1644cad88519c05e6c2ac7f3200 URL: https://source.winehq.org/git/wine.git/?a=commit;h=a3295e383116f1644cad88519... Author: Damjan Jovanovic <damjan.jov(a)gmail.com> Date: Tue May 4 21:31:06 2021 +0200 shell32/tests: Fix test failures from ad412b11a7ea17b708994ed6609f8ed0cbfb169b. Signed-off-by: Damjan Jovanovic <damjan.jov(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/shell32/tests/shlfolder.c | 66 +++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 37 deletions(-) diff --git a/dlls/shell32/tests/shlfolder.c b/dlls/shell32/tests/shlfolder.c index 51776f050ae..8e92a0896b5 100644 --- a/dlls/shell32/tests/shlfolder.c +++ b/dlls/shell32/tests/shlfolder.c @@ -4479,46 +4479,38 @@ static void test_CreateViewObject_contextmenu(void) LPITEMIDLIST pidl; HRESULT hr; DWORD ret; + int i; - hr = CoCreateInstance(&CLSID_ControlPanel, NULL, CLSCTX_INPROC_SERVER, &IID_IShellFolder, (void**)&folder); - ok(SUCCEEDED(hr), "got 0x%08x\n", hr); - hr = IShellFolder_CreateViewObject(folder, NULL, &IID_IContextMenu, (void**)&cmenu); - ok(hr == E_NOINTERFACE, "got 0x%08x\n", hr); - if (SUCCEEDED(hr)) - IContextMenu_Release(cmenu); - IShellFolder_Release(folder); - - hr = CoCreateInstance(&CLSID_MyComputer, NULL, CLSCTX_INPROC_SERVER, &IID_IShellFolder, (void**)&folder); - ok(SUCCEEDED(hr), "got 0x%08x\n", hr); - hr = IShellFolder_CreateViewObject(folder, NULL, &IID_IContextMenu, (void**)&cmenu); - ok(hr == S_OK, "got 0x%08x\n", hr); - if (SUCCEEDED(hr)) - IContextMenu_Release(cmenu); - IShellFolder_Release(folder); - - hr = CoCreateInstance(&CLSID_NetworkPlaces, NULL, CLSCTX_INPROC_SERVER, &IID_IShellFolder, (void**)&folder); - ok(SUCCEEDED(hr), "got 0x%08x\n", hr); - hr = IShellFolder_CreateViewObject(folder, NULL, &IID_IContextMenu, (void**)&cmenu); - ok(hr == E_NOINTERFACE, "got 0x%08x\n", hr); - if (SUCCEEDED(hr)) - IContextMenu_Release(cmenu); - IShellFolder_Release(folder); + static const CLSID *folders[] = + { + &CLSID_MyComputer, + &CLSID_MyDocuments, + &CLSID_ControlPanel, + &CLSID_NetworkPlaces, + &CLSID_Printers, + &CLSID_RecycleBin + }; - hr = CoCreateInstance(&CLSID_Printers, NULL, CLSCTX_INPROC_SERVER, &IID_IShellFolder, (void**)&folder); - ok(SUCCEEDED(hr), "got 0x%08x\n", hr); - hr = IShellFolder_CreateViewObject(folder, NULL, &IID_IContextMenu, (void**)&cmenu); - ok(hr == E_NOINTERFACE, "got 0x%08x\n", hr); - if (SUCCEEDED(hr)) - IContextMenu_Release(cmenu); - IShellFolder_Release(folder); + for (i = 0; i < ARRAY_SIZE(folders); i++) + { + hr = CoCreateInstance(folders[i], NULL, CLSCTX_INPROC_SERVER, &IID_IShellFolder, (void**)&folder); + if (hr != S_OK) + { + win_skip("Failed to create folder %s, hr %#x.\n", wine_dbgstr_guid(folders[i]), hr); + continue; + } - hr = CoCreateInstance(&CLSID_RecycleBin, NULL, CLSCTX_INPROC_SERVER, &IID_IShellFolder, (void**)&folder); - ok(SUCCEEDED(hr), "got 0x%08x\n", hr); - hr = IShellFolder_CreateViewObject(folder, NULL, &IID_IContextMenu, (void**)&cmenu); - ok(hr == E_NOINTERFACE, "got 0x%08x\n", hr); - if (SUCCEEDED(hr)) - IContextMenu_Release(cmenu); - IShellFolder_Release(folder); + hr = IShellFolder_CreateViewObject(folder, NULL, &IID_IContextMenu, (void**)&cmenu); + if (IsEqualIID(folders[i], &CLSID_MyDocuments)) + ok(hr == S_OK, "got 0x%08x\n", hr); + else if (IsEqualIID(folders[i], &CLSID_MyComputer)) + ok(hr == S_OK || broken(hr == E_NOINTERFACE /* win10 */), "got 0x%08x\n", hr); + else + ok(hr == E_NOINTERFACE || broken(FAILED(hr)), "got 0x%08x for %s\n", hr, wine_dbgstr_guid(folders[i])); + if (SUCCEEDED(hr)) + IContextMenu_Release(cmenu); + IShellFolder_Release(folder); + } hr = SHGetDesktopFolder(&desktop); ok(hr == S_OK, "got 0x%08x\n", hr);
participants (1)
-
Alexandre Julliard