Module: wine Branch: master Commit: 41b2296ac0d125cc9e0966976c019aaecbf44bb7 URL: http://source.winehq.org/git/wine.git/?a=commit;h=41b2296ac0d125cc9e0966976c...
Author: Nicolas Le Cam niko.lecam@gmail.com Date: Sun Jul 26 22:35:34 2009 +0200
shell32/tests: Add test for shell links to short path containing double backslashes.
---
dlls/shell32/tests/shelllink.c | 22 ++++++++++++++++++++++ 1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/dlls/shell32/tests/shelllink.c b/dlls/shell32/tests/shelllink.c index 3ab3766..15a93db 100644 --- a/dlls/shell32/tests/shelllink.c +++ b/dlls/shell32/tests/shelllink.c @@ -48,6 +48,7 @@ static fnSHILCreateFromPath pSHILCreateFromPath; static fnSHDefExtractIconA pSHDefExtractIconA;
static DWORD (WINAPI *pGetLongPathNameA)(LPCSTR, LPSTR, DWORD); +static DWORD (WINAPI *pGetShortPathNameA)(LPCSTR, LPSTR, DWORD);
static const GUID _IID_IShellLinkDataList = { 0x45e2b4ae, 0xb1c3, 0x11d0, @@ -223,6 +224,7 @@ static void test_get_set(void) r = IShellLinkA_SetPath(sl, ""c:\nonexistent\file""); ok(r==S_FALSE || r == S_OK, "SetPath failed (0x%08x)\n", r);
+ strcpy(buffer,"garbage"); r = IShellLinkA_GetPath(sl, buffer, sizeof(buffer), NULL, SLGP_RAWPATH); ok(r==S_OK, "GetPath failed (0x%08x)\n", r); ok(!lstrcmp(buffer, "C:\nonexistent\file") || @@ -615,6 +617,25 @@ static void test_load_save(void) create_lnk(lnkfile, &desc, 0); check_lnk(lnkfile, &desc, 0x0);
+ r=pGetShortPathNameA(mydir, mypath, sizeof(mypath)); + strcpy(realpath, mypath); + strcat(realpath, "\test.txt"); + strcat(mypath, "\\test.txt"); + + /* Overwrite the existing lnk file and test link to a short path with double backslashes */ + desc.description="non-executable file"; + desc.workdir=mydir; + desc.path=mypath; + desc.pidl=NULL; + desc.arguments=""; + desc.showcmd=SW_SHOWNORMAL; + desc.icon=mypath; + desc.icon_id=0; + desc.hotkey=0x1234; + create_lnk(lnkfile, &desc, 0); + desc.path=realpath; + check_lnk(lnkfile, &desc, 0x0); + r = DeleteFileA(mypath); ok(r, "failed to delete file %s (%d)\n", mypath, GetLastError());
@@ -750,6 +771,7 @@ START_TEST(shelllink) pSHDefExtractIconA = (fnSHDefExtractIconA) GetProcAddress(hmod, "SHDefExtractIconA");
pGetLongPathNameA = (void *)GetProcAddress(hkernel32, "GetLongPathNameA"); + pGetShortPathNameA = (void *)GetProcAddress(hkernel32, "GetShortPathNameA");
r = CoInitialize(NULL); ok(SUCCEEDED(r), "CoInitialize failed (0x%08x)\n", r);