Added some tests for RtlGetFullPathName_U.

diff --git a/dlls/ntdll/tests/path.c b/dlls/ntdll/tests/path.c
index 8991135..702762e 100644
--- a/dlls/ntdll/tests/path.c
+++ b/dlls/ntdll/tests/path.c
@@ -30,10 +30,13 @@
 
 static NTSTATUS (WINAPI *pRtlMultiByteToUnicodeN)( LPWSTR dst, DWORD dstlen, LPDWORD reslen,
                                                    LPCSTR src, DWORD srclen );
+static NTSTATUS (WINAPI *pRtlUnicodeToMultiByteN)(LPSTR,DWORD,LPDWORD,LPCWSTR,DWORD);
 static UINT (WINAPI *pRtlDetermineDosPathNameType_U)( PCWSTR path );
 static ULONG (WINAPI *pRtlIsDosDeviceName_U)( PCWSTR dos_name );
 static NTSTATUS (WINAPI *pRtlOemStringToUnicodeString)(UNICODE_STRING *, const STRING *, BOOLEAN );
 static BOOLEAN (WINAPI *pRtlIsNameLegalDOS8Dot3)(const UNICODE_STRING*,POEM_STRING,PBOOLEAN);
+static DWORD (WINAPI *pRtlGetFullPathName_U)(const WCHAR*,ULONG,WCHAR*,WCHAR**);
+
 
 static void test_RtlDetermineDosPathNameType(void)
 {
@@ -224,20 +227,77 @@
         }
     }
 }
+static void test_RtlGetFullPathName_U()
+{
+    struct test
+    {
+        const char *path;
+        const char *rname;
+        const char *rfile;
+    };
 
+    static const struct test tests[] =
+        {
+            { "c:/test",                     "c:\\test",         "test"},
+            { "c:/TEST",                     "c:\\test",         "test"},
+            { "c:/test/file",                "c:\\test\\file",   "file"},
+            { "c:/test/././file",            "c:\\test\\file",   "file"},
+            { "c:/test\\.\\.\\file",         "c:\\test\\file",   "file"},
+            { "c:/test/\\.\\.\\file",        "c:\\test\\file",   "file"},
+            { "c:/test\\\\.\\.\\file",       "c:\\test\\file",   "file"},
+            { "c:/test\\test1\\..\\.\\file", "c:\\test\\file",   "file"},
+            { "c:///test\\.\\.\\file//",     "c:\\test\\file\\", NULL},
+            { "c:///test\\..\\file\\..\\//", "c:\\",             NULL},
+            { NULL, NULL, NULL}
+        };
+
+    const struct test *test;
+    WCHAR pathbufW[2*MAX_PATH], rbufferW[MAX_PATH];
+    CHAR  rbufferA[MAX_PATH], rfileA[MAX_PATH];
+    ULONG ret;
+    WCHAR *file_part;
+    DWORD reslen;
+    int len;
+
+    for (test = tests; test->path; test++)
+    {
+        len= strlen(test->rname) * sizeof(WCHAR);
+        pRtlMultiByteToUnicodeN(pathbufW , sizeof(pathbufW), NULL, test->path, strlen(test->path)+1 );
+        ret = pRtlGetFullPathName_U( pathbufW,MAX_PATH, rbufferW, &file_part);
+        ok( ret == len, "Wrong result %ld/%d for %s\n", ret, len, test->path );
+        ok(pRtlUnicodeToMultiByteN(rbufferA,MAX_PATH,&reslen,rbufferW,MAX_PATH) == STATUS_SUCCESS,
+           "RtlUnicodeToMultiByteN failed\n");
+        ok(strcasecmp(rbufferA,test->rname) == 0, "Got \"%s\" expected \"%s\"\n",rbufferA,test->rname);
+        if (file_part)
+        {
+            ok(pRtlUnicodeToMultiByteN(rfileA,MAX_PATH,&reslen,file_part,MAX_PATH) == STATUS_SUCCESS,
+               "RtlUnicodeToMultiByteN failed\n");
+            ok(test->rfile && !strcasecmp(rfileA,test->rfile), "Got \"%s\" expected \"%s\"\n",rfileA,test->rfile);
+        }
+        else
+        {
+            ok( !test->rfile, "Got NULL expected \"%s\"\n", test->rfile );
+        }
+    }
+
+}
 
 START_TEST(path)
 {
     HMODULE mod = GetModuleHandleA("ntdll.dll");
     pRtlMultiByteToUnicodeN = (void *)GetProcAddress(mod,"RtlMultiByteToUnicodeN");
+    pRtlUnicodeToMultiByteN = (void *)GetProcAddress(mod,"RtlUnicodeToMultiByteN");
     pRtlDetermineDosPathNameType_U = (void *)GetProcAddress(mod,"RtlDetermineDosPathNameType_U");
     pRtlIsDosDeviceName_U = (void *)GetProcAddress(mod,"RtlIsDosDeviceName_U");
     pRtlOemStringToUnicodeString = (void *)GetProcAddress(mod,"RtlOemStringToUnicodeString");
     pRtlIsNameLegalDOS8Dot3 = (void *)GetProcAddress(mod,"RtlIsNameLegalDOS8Dot3");
+    pRtlGetFullPathName_U = (void *)GetProcAddress(mod,"RtlGetFullPathName_U");
     if (pRtlDetermineDosPathNameType_U)
         test_RtlDetermineDosPathNameType();
     if (pRtlIsDosDeviceName_U)
         test_RtlIsDosDeviceName();
     if (pRtlIsNameLegalDOS8Dot3)
         test_RtlIsNameLegalDOS8Dot3();
+    if (pRtlGetFullPathName_U && pRtlMultiByteToUnicodeN)
+        test_RtlGetFullPathName_U();
 }