Author: akhaldi
Date: Fri Nov 28 19:22:34 2014
New Revision: 65512
URL: 
http://svn.reactos.org/svn/reactos?rev=65512&view=rev
Log:
[KERNEL32_WINETEST] Addendum to r65511.
Modified:
    trunk/rostests/winetests/kernel32/actctx.c
Modified: trunk/rostests/winetests/kernel32/actctx.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/kernel32/actctx…
==============================================================================
--- trunk/rostests/winetests/kernel32/actctx.c  [iso-8859-1] (original)
+++ trunk/rostests/winetests/kernel32/actctx.c  [iso-8859-1] Fri Nov 28 19:22:34 2014
@@ -2167,6 +2167,65 @@
     handle = pCreateActCtxA(&actctx);
     ok(handle == INVALID_HANDLE_VALUE, "got handle %p\n", handle);
     ok(GetLastError() == ERROR_RESOURCE_TYPE_NOT_FOUND, "got error %d\n",
GetLastError());
+
+    /* load manifest from lpAssemblyDirectory directory */
+    write_manifest("testdir.manifest", manifest1);
+    GetTempPathA(sizeof(path)/sizeof(path[0]), path);
+    SetCurrentDirectoryA(path);
+    strcat(path, "assembly_dir");
+    strcpy(dir, path);
+    strcat(path, "\\testdir.manifest");
+
+    memset(&actctx, 0, sizeof(actctx));
+    actctx.cbSize = sizeof(actctx);
+    actctx.dwFlags = ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID;
+    actctx.lpSource = "testdir.manifest";
+    actctx.lpAssemblyDirectory = dir;
+
+    SetLastError(0xdeadbeef);
+    handle = pCreateActCtxA(&actctx);
+    ok(handle == INVALID_HANDLE_VALUE, "got handle %p\n", handle);
+    ok(GetLastError()==ERROR_PATH_NOT_FOUND ||
+            broken(GetLastError()==ERROR_FILE_NOT_FOUND) /* WinXP */,
+            "got error %d\n", GetLastError());
+
+    CreateDirectoryA(dir, NULL);
+    memset(&actctx, 0, sizeof(actctx));
+    actctx.cbSize = sizeof(actctx);
+    actctx.dwFlags = ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID;
+    actctx.lpSource = "testdir.manifest";
+    actctx.lpAssemblyDirectory = dir;
+
+    SetLastError(0xdeadbeef);
+    handle = pCreateActCtxA(&actctx);
+    ok(handle == INVALID_HANDLE_VALUE, "got handle %p\n", handle);
+    ok(GetLastError() == ERROR_FILE_NOT_FOUND, "got error %d\n",
GetLastError());
+    SetCurrentDirectoryW(work_dir);
+
+    write_manifest("assembly_dir\\testdir.manifest", manifest1);
+    memset(&actctx, 0, sizeof(actctx));
+    actctx.cbSize = sizeof(actctx);
+    actctx.dwFlags = ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID;
+    actctx.lpSource = "testdir.manifest";
+    actctx.lpAssemblyDirectory = dir;
+
+    handle = pCreateActCtxA(&actctx);
+    ok(handle != INVALID_HANDLE_VALUE, "got handle %p\n", handle);
+    pReleaseActCtx(handle);
+
+    memset(&actctx, 0, sizeof(actctx));
+    actctx.cbSize = sizeof(actctx);
+    actctx.dwFlags = ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID;
+    actctx.lpSource = path;
+    actctx.lpAssemblyDirectory = dir;
+
+    handle = pCreateActCtxA(&actctx);
+    ok(handle != INVALID_HANDLE_VALUE, "got handle %p\n", handle);
+    pReleaseActCtx(handle);
+
+    delete_manifest_file("testdir.manifest");
+    delete_manifest_file("assembly_dir\\testdir.manifest");
+    RemoveDirectoryA(dir);
 }
 static BOOL init_funcs(void)