Zhenbo Li : shlwapi/tests: Add tests for PathIsRelativeA/W.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Jul 2 15:19:15 CDT 2014


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

Author: Zhenbo Li <litimetal at gmail.com>
Date:   Wed Jul  2 23:55:02 2014 +0800

shlwapi/tests: Add tests for PathIsRelativeA/W.

---

 dlls/shlwapi/tests/path.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/dlls/shlwapi/tests/path.c b/dlls/shlwapi/tests/path.c
index a2e5594..9fe70cd 100644
--- a/dlls/shlwapi/tests/path.c
+++ b/dlls/shlwapi/tests/path.c
@@ -36,6 +36,8 @@ static HRESULT (WINAPI *pPathCreateFromUrlAlloc)(LPCWSTR, LPWSTR*, DWORD);
 static BOOL    (WINAPI *pPathAppendA)(LPSTR, LPCSTR);
 static BOOL    (WINAPI *pPathUnExpandEnvStringsA)(LPCSTR, LPSTR, UINT);
 static BOOL    (WINAPI *pPathUnExpandEnvStringsW)(LPCWSTR, LPWSTR, UINT);
+static BOOL    (WINAPI *pPathIsRelativeA)(LPCSTR);
+static BOOL    (WINAPI *pPathIsRelativeW)(LPCWSTR);
 
 /* ################ */
 
@@ -1585,6 +1587,62 @@ static void test_PathUnExpandEnvStrings(void)
     ok(!lstrcmpW(buffW, pathW), "wrong unexpanded string %s, expected %s\n", wine_dbgstr_w(buffW), wine_dbgstr_w(pathW));
 }
 
+static const struct {
+    const char *path;
+    BOOL expect;
+} test_path_is_relative[] = {
+    {NULL, TRUE},
+    {"\0", TRUE},
+    {"test.txt", TRUE},
+    {"\\\\folder\\test.txt", FALSE},
+    {"file://folder/test.txt", TRUE},
+    {"C:\\test.txt", FALSE},
+    {"file:///C:/test.txt", TRUE}
+};
+
+void test_PathIsRelativeA(void)
+{
+    BOOL ret;
+    int i, num;
+
+    if (!pPathIsRelativeA) {
+        win_skip("PathIsRelativeA not available\n");
+        return;
+    }
+
+    num = sizeof(test_path_is_relative) / sizeof(test_path_is_relative[0]);
+    for (i = 0; i < num; i++) {
+        ret = pPathIsRelativeA(test_path_is_relative[i].path);
+        ok(ret == test_path_is_relative[i].expect,
+          "PathIsRelativeA(\"%s\") expects %d, got %d.\n",
+          test_path_is_relative[i].path, test_path_is_relative[i].expect, ret);
+    }
+}
+
+void test_PathIsRelativeW(void)
+{
+    BOOL ret;
+    int i, num;
+    LPWSTR path;
+
+    if (!pPathIsRelativeW) {
+        win_skip("PathIsRelativeA not available\n");
+        return;
+    }
+
+    num = sizeof(test_path_is_relative) / sizeof(test_path_is_relative[0]);
+    for (i = 0; i < num; i++) {
+        path = GetWideString(test_path_is_relative[i].path);
+
+        ret = pPathIsRelativeW(path);
+        ok(ret == test_path_is_relative[i].expect,
+          "PathIsRelativeW(\"%s\") expects %d, got %d.\n",
+          test_path_is_relative[i].path, test_path_is_relative[i].expect, ret);
+
+        FreeWideString(path);
+    }
+}
+
 START_TEST(path)
 {
     HMODULE hShlwapi = GetModuleHandleA("shlwapi.dll");
@@ -1604,6 +1662,8 @@ START_TEST(path)
     pPathAppendA = (void*)GetProcAddress(hShlwapi, "PathAppendA");
     pPathUnExpandEnvStringsA = (void*)GetProcAddress(hShlwapi, "PathUnExpandEnvStringsA");
     pPathUnExpandEnvStringsW = (void*)GetProcAddress(hShlwapi, "PathUnExpandEnvStringsW");
+    pPathIsRelativeA = (void*)GetProcAddress(hShlwapi, "PathIsRelativeA");
+    pPathIsRelativeW = (void*)GetProcAddress(hShlwapi, "PathIsRelativeW");
 
     test_PathSearchAndQualify();
     test_PathCreateFromUrl();
@@ -1626,4 +1686,6 @@ START_TEST(path)
     test_PathUnquoteSpaces();
     test_PathGetDriveNumber();
     test_PathUnExpandEnvStrings();
+    test_PathIsRelativeA();
+    test_PathIsRelativeW();
 }




More information about the wine-cvs mailing list