David Hedberg : shell32/tests: Tests for IShellItemGetAttributes.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Aug 4 15:29:38 CDT 2014


Module: wine
Branch: master
Commit: 955b487b20b4436e8aade43d3bd5c8d27e25db6d
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=955b487b20b4436e8aade43d3bd5c8d27e25db6d

Author: David Hedberg <david.hedberg at gmail.com>
Date:   Wed Jul 30 20:43:20 2014 +0200

shell32/tests: Tests for IShellItemGetAttributes.

---

 dlls/shell32/tests/shlfolder.c | 54 ++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 52 insertions(+), 2 deletions(-)

diff --git a/dlls/shell32/tests/shlfolder.c b/dlls/shell32/tests/shlfolder.c
index e58a863..d3b965b 100644
--- a/dlls/shell32/tests/shlfolder.c
+++ b/dlls/shell32/tests/shlfolder.c
@@ -3711,10 +3711,15 @@ static void test_ShellItemBindToHandler(void)
 
 static void test_ShellItemGetAttributes(void)
 {
-    IShellItem *psi;
-    LPITEMIDLIST pidl_desktop;
+    IShellItem *psi, *psi_folder1, *psi_file1;
+    IShellFolder *pdesktopsf;
+    LPITEMIDLIST pidl_desktop, pidl;
     SFGAOF sfgao;
     HRESULT hr;
+    WCHAR curdirW[MAX_PATH];
+    WCHAR buf[MAX_PATH];
+    static const WCHAR testdir1W[] = {'t','e','s','t','d','i','r',0};
+    static const WCHAR testfile1W[] = {'t','e','s','t','d','i','r','\\','t','e','s','t','1','.','t','x','t',0};
 
     if(!pSHCreateShellItem)
     {
@@ -3749,6 +3754,51 @@ static void test_ShellItemGetAttributes(void)
     ok(sfgao == SFGAO_FOLDER || broken(sfgao == 0) /* <Vista */, "Got 0x%08x\n", sfgao);
 
     IShellItem_Release(psi);
+
+    CreateFilesFolders();
+
+    SHGetDesktopFolder(&pdesktopsf);
+
+    GetCurrentDirectoryW(MAX_PATH, curdirW);
+    myPathAddBackslashW(curdirW);
+
+    lstrcpyW(buf, curdirW);
+    lstrcatW(buf, testdir1W);
+    hr = IShellFolder_ParseDisplayName(pdesktopsf, NULL, NULL, buf, NULL, &pidl, NULL);
+    ok(hr == S_OK, "got 0x%08x\n", hr);
+    hr = pSHCreateShellItem(NULL, NULL, pidl, &psi_folder1);
+    ok(hr == S_OK, "Got 0x%08x\n", sfgao);
+    pILFree(pidl);
+
+    lstrcpyW(buf, curdirW);
+    lstrcatW(buf, testfile1W);
+    hr = IShellFolder_ParseDisplayName(pdesktopsf, NULL, NULL, buf, NULL, &pidl, NULL);
+    ok(hr == S_OK, "got 0x%08x\n", hr);
+    hr = pSHCreateShellItem(NULL, NULL, pidl, &psi_file1);
+    ok(hr == S_OK, "Got 0x%08x\n", sfgao);
+    pILFree(pidl);
+
+    IShellFolder_Release(pdesktopsf);
+
+    sfgao = 0xdeadbeef;
+    hr = IShellItem_GetAttributes(psi_folder1, 0, &sfgao);
+    ok(hr == S_OK, "Got 0x%08x\n", hr);
+    todo_wine ok(sfgao == 0, "Got 0x%08x\n", sfgao);
+
+    sfgao = 0xdeadbeef;
+    hr = IShellItem_GetAttributes(psi_folder1, SFGAO_FOLDER, &sfgao);
+    ok(hr == S_OK, "Got 0x%08x\n", hr);
+    todo_wine ok(sfgao == SFGAO_FOLDER, "Got 0x%08x\n", sfgao);
+
+    sfgao = 0xdeadbeef;
+    hr = IShellItem_GetAttributes(psi_file1, SFGAO_FOLDER, &sfgao);
+    todo_wine ok(hr == S_FALSE, "Got 0x%08x\n", hr);
+    todo_wine ok(sfgao == 0, "Got 0x%08x\n", sfgao);
+
+    IShellItem_Release(psi_folder1);
+    IShellItem_Release(psi_file1);
+
+    Cleanup();
 }
 
 static void test_SHParseDisplayName(void)




More information about the wine-cvs mailing list