Francois Gouget : shell32/tests: Show that verbs and classes override ShellExecute()' s normal handling of executables.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Jan 28 10:06:45 CST 2016


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

Author: Francois Gouget <fgouget at codeweavers.com>
Date:   Wed Jan 27 15:41:19 2016 +0100

shell32/tests: Show that verbs and classes override ShellExecute()'s normal handling of executables.

Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/shell32/tests/shlexec.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/dlls/shell32/tests/shlexec.c b/dlls/shell32/tests/shlexec.c
index a063488..4b721ef 100644
--- a/dlls/shell32/tests/shlexec.c
+++ b/dlls/shell32/tests/shlexec.c
@@ -2196,6 +2196,20 @@ static void test_exes(void)
     sprintf(filename, "\"%s\" shlexec \"%s\" Exec", argv0, child_file);
     rc = shell_execute(NULL, filename, NULL, NULL);
     okShell(rc == SE_ERR_FNF, "returned %lu\n", rc);
+
+    /* A verb, even if invalid, overrides the normal handling of executables */
+    todo_wait rc = shell_execute_ex(SEE_MASK_FLAG_NO_UI,
+                                    "notaverb", argv0, NULL, NULL, NULL);
+    todo_wine okShell(rc == SE_ERR_NOASSOC, "returned %lu\n", rc);
+
+    /* A class overrides the normal handling of executables too */
+    /* FIXME SEE_MASK_FLAG_NO_UI is only needed due to Wine's bug */
+    rc = shell_execute_ex(SEE_MASK_CLASSNAME | SEE_MASK_FLAG_NO_UI,
+                          NULL, argv0, NULL, NULL, ".shlexec");
+    todo_wine okShell(rc > 32, "returned %lu\n", rc);
+    okChildInt("argcA", 5);
+    todo_wine okChildString("argvA3", "Open");
+    todo_wine okChildPath("argvA4", argv0);
 }
 
 typedef struct




More information about the wine-cvs mailing list