mirror of
https://github.com/reactos/wine.git
synced 2024-11-29 06:30:37 +00:00
shell32/tests: Allow individual tests in check_lnk to be todo_wine'd.
This commit is contained in:
parent
860aa6993b
commit
f8eabe0d37
@ -306,7 +306,13 @@ static void test_get_set(void)
|
||||
*/
|
||||
|
||||
#define lok ok_(__FILE__, line)
|
||||
#define check_lnk(a,b) check_lnk_(__LINE__, (a), (b))
|
||||
#define lok_todo_4(todo_flag,a,b,c,d) \
|
||||
if ((todo & todo_flag) == 0) lok((a), (b), (c), (d)); \
|
||||
else todo_wine lok((a), (b), (c), (d));
|
||||
#define lok_todo_2(todo_flag,a,b) \
|
||||
if ((todo & todo_flag) == 0) lok((a), (b)); \
|
||||
else todo_wine lok((a), (b));
|
||||
#define check_lnk(a,b,c) check_lnk_(__LINE__, (a), (b), (c))
|
||||
|
||||
void create_lnk_(int line, const WCHAR* path, lnk_desc_t* desc, int save_fails)
|
||||
{
|
||||
@ -382,7 +388,7 @@ void create_lnk_(int line, const WCHAR* path, lnk_desc_t* desc, int save_fails)
|
||||
IShellLinkA_Release(sl);
|
||||
}
|
||||
|
||||
static void check_lnk_(int line, const WCHAR* path, lnk_desc_t* desc)
|
||||
static void check_lnk_(int line, const WCHAR* path, lnk_desc_t* desc, int todo)
|
||||
{
|
||||
HRESULT r;
|
||||
IShellLinkA *sl;
|
||||
@ -417,7 +423,7 @@ static void check_lnk_(int line, const WCHAR* path, lnk_desc_t* desc)
|
||||
strcpy(buffer,"garbage");
|
||||
r = IShellLinkA_GetDescription(sl, buffer, sizeof(buffer));
|
||||
lok(SUCCEEDED(r), "GetDescription failed (0x%08x)\n", r);
|
||||
lok(lstrcmp(buffer, desc->description)==0,
|
||||
lok_todo_4(0x1, lstrcmp(buffer, desc->description)==0,
|
||||
"GetDescription returned '%s' instead of '%s'\n",
|
||||
buffer, desc->description);
|
||||
}
|
||||
@ -426,7 +432,7 @@ static void check_lnk_(int line, const WCHAR* path, lnk_desc_t* desc)
|
||||
strcpy(buffer,"garbage");
|
||||
r = IShellLinkA_GetWorkingDirectory(sl, buffer, sizeof(buffer));
|
||||
lok(SUCCEEDED(r), "GetWorkingDirectory failed (0x%08x)\n", r);
|
||||
lok(lstrcmpi(buffer, desc->workdir)==0,
|
||||
lok_todo_4(0x2, lstrcmpi(buffer, desc->workdir)==0,
|
||||
"GetWorkingDirectory returned '%s' instead of '%s'\n",
|
||||
buffer, desc->workdir);
|
||||
}
|
||||
@ -435,7 +441,7 @@ static void check_lnk_(int line, const WCHAR* path, lnk_desc_t* desc)
|
||||
strcpy(buffer,"garbage");
|
||||
r = IShellLinkA_GetPath(sl, buffer, sizeof(buffer), NULL, SLGP_RAWPATH);
|
||||
lok(SUCCEEDED(r), "GetPath failed (0x%08x)\n", r);
|
||||
lok(lstrcmpi(buffer, desc->path)==0,
|
||||
lok_todo_4(0x4, lstrcmpi(buffer, desc->path)==0,
|
||||
"GetPath returned '%s' instead of '%s'\n",
|
||||
buffer, desc->path);
|
||||
}
|
||||
@ -444,7 +450,7 @@ static void check_lnk_(int line, const WCHAR* path, lnk_desc_t* desc)
|
||||
LPITEMIDLIST pidl=NULL;
|
||||
r = IShellLinkA_GetIDList(sl, &pidl);
|
||||
lok(SUCCEEDED(r), "GetIDList failed (0x%08x)\n", r);
|
||||
lok(pILIsEqual(pidl, desc->pidl),
|
||||
lok_todo_2(0x8, pILIsEqual(pidl, desc->pidl),
|
||||
"GetIDList returned an incorrect pidl\n");
|
||||
}
|
||||
if (desc->showcmd)
|
||||
@ -452,7 +458,7 @@ static void check_lnk_(int line, const WCHAR* path, lnk_desc_t* desc)
|
||||
int i=0xdeadbeef;
|
||||
r = IShellLinkA_GetShowCmd(sl, &i);
|
||||
lok(SUCCEEDED(r), "GetShowCmd failed (0x%08x)\n", r);
|
||||
lok(i==desc->showcmd,
|
||||
lok_todo_4(0x10, i==desc->showcmd,
|
||||
"GetShowCmd returned 0x%0x instead of 0x%0x\n",
|
||||
i, desc->showcmd);
|
||||
}
|
||||
@ -462,10 +468,10 @@ static void check_lnk_(int line, const WCHAR* path, lnk_desc_t* desc)
|
||||
strcpy(buffer,"garbage");
|
||||
r = IShellLinkA_GetIconLocation(sl, buffer, sizeof(buffer), &i);
|
||||
lok(SUCCEEDED(r), "GetIconLocation failed (0x%08x)\n", r);
|
||||
lok(lstrcmpi(buffer, desc->icon)==0,
|
||||
lok_todo_4(0x20, lstrcmpi(buffer, desc->icon)==0,
|
||||
"GetIconLocation returned '%s' instead of '%s'\n",
|
||||
buffer, desc->icon);
|
||||
lok(i==desc->icon_id,
|
||||
lok_todo_4(0x20, i==desc->icon_id,
|
||||
"GetIconLocation returned 0x%0x instead of 0x%0x\n",
|
||||
i, desc->icon_id);
|
||||
}
|
||||
@ -474,7 +480,7 @@ static void check_lnk_(int line, const WCHAR* path, lnk_desc_t* desc)
|
||||
WORD i=0xbeef;
|
||||
r = IShellLinkA_GetHotkey(sl, &i);
|
||||
lok(SUCCEEDED(r), "GetHotkey failed (0x%08x)\n", r);
|
||||
lok(i==desc->hotkey,
|
||||
lok_todo_4(0x40, i==desc->hotkey,
|
||||
"GetHotkey returned 0x%04x instead of 0x%04x\n",
|
||||
i, desc->hotkey);
|
||||
}
|
||||
@ -501,7 +507,7 @@ static void test_load_save(void)
|
||||
desc.path="";
|
||||
desc.arguments="";
|
||||
desc.icon="";
|
||||
check_lnk(lnkfile, &desc);
|
||||
check_lnk(lnkfile, &desc, 0x0);
|
||||
|
||||
/* Point a .lnk file to nonexistent files */
|
||||
desc.description="";
|
||||
@ -514,7 +520,7 @@ static void test_load_save(void)
|
||||
desc.icon_id=1234;
|
||||
desc.hotkey=0;
|
||||
create_lnk(lnkfile, &desc, 0);
|
||||
check_lnk(lnkfile, &desc);
|
||||
check_lnk(lnkfile, &desc, 0x0);
|
||||
|
||||
r=GetModuleFileName(NULL, mypath, sizeof(mypath));
|
||||
ok(r>=0 && r<sizeof(mypath), "GetModuleFileName failed (%d)\n", r);
|
||||
@ -534,7 +540,7 @@ static void test_load_save(void)
|
||||
desc.icon_id=0;
|
||||
desc.hotkey=0x1234;
|
||||
create_lnk(lnkfile, &desc, 0);
|
||||
check_lnk(lnkfile, &desc);
|
||||
check_lnk(lnkfile, &desc, 0x0);
|
||||
|
||||
/* Overwrite the existing lnk file and test link to a command on the path */
|
||||
desc.description="command on path";
|
||||
@ -550,7 +556,7 @@ static void test_load_save(void)
|
||||
/* Check that link is created to proper location */
|
||||
SearchPathA( NULL, desc.path, NULL, MAX_PATH, realpath, NULL);
|
||||
desc.path=realpath;
|
||||
check_lnk(lnkfile, &desc);
|
||||
check_lnk(lnkfile, &desc, 0x0);
|
||||
|
||||
/* FIXME: Also test saving a .lnk pointing to a pidl that cannot be
|
||||
* represented as a path.
|
||||
|
Loading…
Reference in New Issue
Block a user