shlwapi: Add tests for PathAddBackslash.

This commit is contained in:
James Hawkins 2006-06-26 14:41:22 -07:00 committed by Alexandre Julliard
parent 7412bddd36
commit 251d76888d
1 changed files with 63 additions and 0 deletions

View File

@ -1072,6 +1072,68 @@ static void test_PathCombineA(void)
ok(GetLastError() == 0xdeadbeef, "Expected 0xdeadbeef, got %ld\n", GetLastError());
}
static void test_PathAddBackslash(void)
{
LPSTR str;
char path[MAX_PATH];
char too_long[LONG_LEN];
/* try a NULL path */
SetLastError(0xdeadbeef);
str = PathAddBackslashA(NULL);
ok(str == NULL, "Expected str == NULL, got %p\n", str);
ok(GetLastError() == 0xdeadbeef, "Expected 0xdeadbeef, got %ld\n", GetLastError());
/* try an empty path */
path[0] = '\0';
SetLastError(0xdeadbeef);
str = PathAddBackslashA(path);
ok(str == (path + lstrlenA(path)), "Expected str to point to end of path, got %p\n", str);
ok(lstrlenA(path) == 0, "Expected empty string, got %i\n", lstrlenA(path));
ok(GetLastError() == 0xdeadbeef, "Expected 0xdeadbeef, got %ld\n", GetLastError());
/* try a relative path */
lstrcpyA(path, "one\\two");
SetLastError(0xdeadbeef);
str = PathAddBackslashA(path);
ok(str == (path + lstrlenA(path)), "Expected str to point to end of path, got %p\n", str);
ok(!lstrcmp(path, "one\\two\\"), "Expected one\\two\\, got %s\n", path);
ok(GetLastError() == 0xdeadbeef, "Expected 0xdeadbeef, got %ld\n", GetLastError());
/* try periods */
lstrcpyA(path, "one\\..\\two");
SetLastError(0xdeadbeef);
str = PathAddBackslashA(path);
ok(str == (path + lstrlenA(path)), "Expected str to point to end of path, got %p\n", str);
ok(!lstrcmp(path, "one\\..\\two\\"), "Expected one\\..\\two\\, got %s\n", path);
ok(GetLastError() == 0xdeadbeef, "Expected 0xdeadbeef, got %ld\n", GetLastError());
/* try just a space */
lstrcpyA(path, " ");
SetLastError(0xdeadbeef);
str = PathAddBackslashA(path);
ok(str == (path + lstrlenA(path)), "Expected str to point to end of path, got %p\n", str);
ok(!lstrcmp(path, " \\"), "Expected \\, got %s\n", path);
ok(GetLastError() == 0xdeadbeef, "Expected 0xdeadbeef, got %ld\n", GetLastError());
/* path already has backslash */
lstrcpyA(path, "C:\\one\\");
SetLastError(0xdeadbeef);
str = PathAddBackslashA(path);
ok(str == (path + lstrlenA(path)), "Expected str to point to end of path, got %p\n", str);
ok(!lstrcmp(path, "C:\\one\\"), "Expected C:\\one\\, got %s\n", path);
ok(GetLastError() == 0xdeadbeef, "Expected 0xdeadbeef, got %ld\n", GetLastError());
memset(too_long, 'a', LONG_LEN);
too_long[LONG_LEN - 1] = '\0';
/* path is longer than MAX_PATH */
SetLastError(0xdeadbeef);
str = PathAddBackslashA(too_long);
ok(str == NULL, "Expected str == NULL, got %p\n", str);
ok(GetLastError() == 0xdeadbeef, "Expected 0xdeadbeef, got %ld\n", GetLastError());
}
START_TEST(path)
{
hShlwapi = LoadLibraryA("shlwapi.dll");
@ -1090,6 +1152,7 @@ START_TEST(path)
test_PathCreateFromUrl();
test_PathIsUrl();
test_PathAddBackslash();
test_PathMakePretty();
test_PathMatchSpec();