Commit Graph

3282 Commits

Author SHA1 Message Date
Francois Gouget 5af9c123f6 shell32/tests: Allow the short and long forms when checking a ShellExecute() path.
ShellExecute() sometimes converts a short path to a long one so always accept the long form.
Windows XP SP1 often converts them to short paths instead but consider this behavior to be broken.

Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-08 20:03:33 +09:00
Francois Gouget bfc1244381 shell32/tests: Fix the ShellExecute() environment variable inheritance checks.
The child process does not inherit environment variables when the
calling process does not have elevated privileges and specifies
SEE_MASK_NOZONECHECKS.

Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-08 20:03:33 +09:00
Francois Gouget c1636cd279 shell32/tests: Move a test_argify() check so it is run even if we could not create associations.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-08 20:03:33 +09:00
Francois Gouget 96baeb72c2 shell32/tests: Skip a few ShellExecute() tests when the process has insufficient privileges.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-08 20:03:33 +09:00
Francois Gouget 13fdfedead shell32/tests: Remove support for a todo_wine flag in ShellExecute()'s test_lnks() loop.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-08 20:03:33 +09:00
Francois Gouget f4130de33e shell32/tests: Fix a ShellExecute() race condition.
On Windows XP SP1 a ShellExecute() call that is supposed to fail
succeeds instead. This means the child process is started but
ShellExecute() returns without waiting for it, resulting in a race
condition on the child's results file. So use our shell_execute_ex()
wrapper instead as it always waits for the child process.

Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-08 20:03:33 +09:00
Francois Gouget cc240bdb14 shell32/tests: Fix test_dde_default_app() on Windows XP SP1.
There are three possible sets of results: Windows <= 2000, XP SP1 and >= XP SP2.
Use the first two tests to figure out which results to expect.
Only accept the >= XP SP2 results in Wine.

Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-08 20:03:32 +09:00
Francois Gouget b742145cab shell32/tests: Fix the DDE tests on Windows 10.
Windows 10 does not call WaitForInputIdle() if the DDE server is a
console application. So force the call by adding
SEE_MASK_WAITFORINPUTIDLE.  Also Windows calls WaitForInputIdle() with a
60s timeout and while we should not hit it, trace and cap it to 5s
anyway.

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-08 20:03:32 +09:00
Francois Gouget a090eff243 shell32/tests: Fix okShell()'s tracing so it takes todo and other flags into account.
This also causes the ShellExecute() and association descriptions to be
printed with each failing test. This makes the messages more readable in
TestBot's abbreviated logs, at the cost of a lot more redundancy.

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-08 13:46:02 +09:00
Huw Davies 77c313b8d6 shell32: Set the stream and storage attributes where needed.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-29 21:25:21 +09:00
Huw Davies a77c0ebc80 shell32: The attributes is not an array, so don't label it as such.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-29 21:25:21 +09:00
Francois Gouget 805b5e36a9 shell32/tests: Add server-side DDE checks.
Should something go wrong a failed ok() call will leave a clearer trace
in the log than an assert.

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-29 21:25:20 +09:00
Francois Gouget 446ade3b3c shell32/tests: Test environment variable inheritance with ShellExecute().
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-29 21:25:20 +09:00
Francois Gouget bdfaa8c807 shell32/tests: Check for failures in the child process.
Return the number of failures through both the child result file and the process exit code.
Also rename the child result file section to 'Child' since it no longer only contains 'Arguments'.

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-29 21:25:19 +09:00
Francois Gouget 30230fae5f shell32/tests: Check the child process exit code and close the process handle.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-29 21:25:19 +09:00
Francois Gouget 3a9b09aa7d shell32/tests: Declare childPrintf() as a printf-style function.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-29 21:25:18 +09:00
Francois Gouget 38ad0ee01d shell32/tests: Reorder the functions to avoid forward declarations.
This also groups the helpers in a more logical fashion.

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-29 21:25:18 +09:00
Francois Gouget 759bd96ac2 shell32/tests: Add traces to the WaitForInputIdle() hooking process.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-29 21:25:17 +09:00
Francois Gouget 78ada2e154 shell32/tests: Fix a couple of okChildPath()/okChildString() mixups.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-28 15:51:07 +09:00
Francois Gouget 3079179753 shell32/tests: Show that verbs and classes override ShellExecute()'s normal handling of executables.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-28 15:51:04 +09:00
Francois Gouget 2c0daad786 shell32/tests: Test handling of nonexistent verbs in ShellExecute() & co.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-28 15:51:00 +09:00
Francois Gouget 198e0d5d78 shell32/tests: Trace the association properties for the DDE tests.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-26 23:17:57 +09:00
Francois Gouget 7e000abeda shell32/tests: Call okShell() after a shell_execute{_ex}() test.
This ensures all the failed call parameters will be traced.

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-26 23:17:24 +09:00
Francois Gouget c133ef7326 shell32/tests: Trace the last ShellExecute command whenever a corresponding test fails.
okShell() serves to encapsulate handling of shell_call and also provides a means for further extensions.

Remove the shell_call static initialization to not hide potential
use-before-assignment compiler warnings.

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-26 23:17:05 +09:00
Francois Gouget 09dac2f482 shell32/tests: Use the shell_execute{_ex}() call site for its traces and error messages.
This makes it easier to match their internal test failures with the site of the real test.

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-19 21:44:15 +09:00
Francois Gouget 9cc07a2b31 shell32/tests: Trace the effective ShellExecuteEx() flags.
shell_execute_ex() adds some flags for its own internal needs. The
traces should reflect that.

Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-13 23:47:04 +09:00
Francois Gouget f816bc93b0 shell32/tests: Tweak some overly optimistic ok() messages.
ShellExecute() is more likely to have returned an unexpected error code
than it is to have succeeded.

Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-13 23:46:53 +09:00
Francois Gouget 3dff8bc213 shell32/tests: Fix the shortcut vs. class interaction test.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-12 19:10:04 +09:00
Francois Gouget 201de16e30 shell32/tests: Create_test_association() should either succeed or fail due to insufficient permissions.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-12 19:10:04 +09:00
Francois Gouget 0a867de22d shell32/tests: Check the hProcess field when ShellExecuteEx() fails.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-12 19:10:04 +09:00
Francois Gouget 2fb84d5c50 shell32/tests: The expectedArgs parameter of the DDE tests is an argument count, not a boolean.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-12 19:10:03 +09:00
Nikolay Sivov ccc6cfc1de shell32/tests: Explicitly compare to HRESULT values.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-03 20:04:40 +01:00
Nikolay Sivov 2e4954eb69 shell32/tests: Basic tests for SHCreateSessionKey().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-29 17:09:18 +01:00
André Hentschel 2cff59ed5c shell32: Minor cleanup of SHELL_execute (Clang).
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-22 20:18:56 +01:00
Francois Gouget 413c6f60cf Assorted spelling fixes.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-02 12:59:52 +09:00
Piotr Caban 3a6ac60555 shell32: Improved IDataObject::QueryGetData implementation.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-25 01:28:32 +09:00
Nikolay Sivov 5cf9539650 shell32: Return as soon as requested CLSID is located (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-11 22:08:45 +09:00
Andrew Eikum aaafeb4cec shell32: Implement IShellDispatch2::ShellExecute.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-03 00:33:23 +09:00
Nikolay Sivov 4e88852415 shell32: Fix temporary item array leak (Valgrind).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-29 21:20:07 +09:00
Nikolay Sivov 2fff77a0ee shell32/tests: Fix prototype to match implementation (PVS-Studio).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-21 21:09:13 +09:00
Nikolay Sivov 186bed3d16 shell32: Properly handle SHGetPathFromIDListW failure (PVS-Studio).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-21 01:04:29 +09:00
Nikolay Sivov 4ee4c06410 shell32: Cleanup ReadCabinetState exports.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-21 00:25:35 +09:00
Nikolay Sivov 95ecc29a50 shell32: Remove another recurring return code check (PVS-Studio).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-21 00:25:34 +09:00
Nikolay Sivov e2275b0a2a shell32: Remove recurring return value check (PVS-Studio).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-19 12:22:39 +09:00
Nikolay Sivov 5853e7769c shell32: Simplify conditional expression (PVS-Studio).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-15 19:18:26 +09:00
Nikolay Sivov 972a74ddfe shell32: Added dll manifest file.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2015-10-01 16:33:28 +09:00
Nikolay Sivov e585d17ff3 shell32/tests: Test icon ids that are invalid on all systems. 2015-09-16 22:11:09 +09:00
Vincent Povirk 69d57ee72f shell32: Do nothing if we can't convert PIDL to path in SHAddToRecentDocs. 2015-09-15 17:55:19 +09:00
Zhenbo Li 637bcd5de9 shell32: Fix return type for helper functions of SHFileOption. 2015-09-01 21:11:16 +09:00
Vincent Povirk 8657547d9e shell32: Fix getting parent shell folder when it's the desktop folder.
BindToObject fails in this case.
2015-08-17 14:47:37 +09:00
Vincent Povirk 642b2fe789 shell32: Use return value from IShellFolder_GetAttributesOf. 2015-08-17 14:47:30 +09:00
Hans Leidekker 7ec5f555b0 shell32: Add a stub implementation of SHQueryUserNotificationState. 2015-08-06 21:42:30 +09:00
Mark Harmstone 77b75ca14b shell32: Don't hardcode icon sizes in SIC_LoadIcon. 2015-08-03 11:00:54 +02:00
Nikolay Sivov e46c32ab46 shell32/ebrowser: Implement EBO_NOBORDER option. 2015-08-03 10:57:46 +02:00
Nikolay Sivov 118c469598 shell32/ebrowser: Use proper color for pane separator. 2015-08-03 10:57:37 +02:00
Nikolay Sivov e7acfee978 shell32: Added GetCurrentProcessExplicitAppUserModelID() stub. 2015-07-22 16:42:42 +02:00
Sebastian Lackner 7d3f13a129 shell32: Ensure that commandline is null-terminated when no parameters are given. 2015-07-17 14:28:17 +09:00
Piotr Caban 943ead5022 shell32: Fix SHELL_execute code that removes quote arround file name. 2015-07-16 16:29:12 +09:00
Piotr Caban 663f9f4b21 shell32: Handle executable with space in path in SHELL_execute. 2015-07-16 16:29:09 +09:00
Piotr Caban 8e853a3e90 shell32: Remove code for separating arguments from file path. 2015-07-16 16:29:06 +09:00
Huw Davies 0b9737b1ea shell32: Fix threading model for the Known Folder Manager and Shell Link objects. 2015-07-08 16:02:23 +09:00
Thomas Faber 360cf273ae shell32/tests: Test that shell view windows reference their shell view. 2015-07-07 16:52:21 +09:00
Nikolay Sivov 28caa68d41 shell32/tests: Try harder to close Open With window. 2015-07-07 16:52:20 +09:00
Huw Davies f5e16e0638 shell32/tests: Win 2k doesn't cope with spaces in the path. 2015-07-07 16:52:20 +09:00
Huw Davies c5053f5712 shell32/tests: Win XP splits the args if there are spaces in the path.
This isn't seen on winetest runs, but is when jobs are submitted to
the testbot.  Presumably the path of the executable is different in
the two cases.
2015-07-07 16:52:19 +09:00
Thomas Faber eff884f19b shell32/tests: Destroy shell view windows. 2015-07-06 17:09:50 +09:00
Thomas Faber 71f1c90628 shell32/tests: Fix an ok() print. 2015-07-06 17:09:50 +09:00
Nikolay Sivov 69733d65e8 shell32: Handle string-to-guid conversion errors (Coverity). 2015-07-06 15:13:24 +09:00
Thomas Faber 9551179c0b shell32/tests: Remove a misleading test. 2015-06-30 14:41:43 +09:00
Thomas Faber e582495927 shell32: Use QueryInterface in FolderView_GetFolder.
test_IFolderView has a test that shows that the shell folder's reference
count before and after the call to IFolderView_GetFolder is the same.
However this is misleading because it is not a property of the
IFolderView_GetFolder method, but of the desktop shell folder object
that's used in the folder view. Windows <=2003 uses a cached object and
its AddRef/Release methods return constants.
2015-06-30 14:41:43 +09:00
Thomas Faber c0cd954f98 shell32: Add missing parameter check in ISF_Desktop_fnQueryInterface. 2015-06-30 14:40:43 +09:00
Thomas Faber 9353a36d8f shell32/tests: Do not leak shell folder references. 2015-06-29 21:15:10 +09:00
Nikolay Sivov 7ca31b8119 shell32: Fix memory leak on NULL return length (Coverity). 2015-06-29 18:51:02 +09:00
Huw Davies da5151fd54 shell32/tests: Don't leave behind open explorer windows. 2015-06-23 21:59:40 +09:00
Huw Davies 905e7aad0e shell32/tests: Fix failing test on Win 2k. 2015-06-11 21:05:34 +09:00
Nikolay Sivov 1de3aec336 shell32/tests: Fix error code on win2k. 2015-06-08 15:26:53 +09:00
Nikolay Sivov d5d49464d3 shell32/tests: Fix tests failures on win2k. 2015-06-05 14:11:02 +09:00
Nikolay Sivov 8c11e6b2f0 shell32/tests: Fix one of test failures on win2k. 2015-06-04 15:55:57 +09:00
Nikolay Sivov 98da69a83f shell32/tests: Fix Verbs instance leak (Valgrind). 2015-06-04 15:55:45 +09:00
Akihiro Sagawa d2e9856a56 shell32: Skip buffer allocation when querying drop file numbers. 2015-06-02 20:53:43 +09:00
Akihiro Sagawa 37d7d6f81c shell32/tests: Add tests for DragQueryFile. 2015-06-02 20:53:43 +09:00
Akihiro Sagawa 4c31892ea5 shell32/tests: Make tests run on win2k again. 2015-06-02 14:09:12 +09:00
Nikolay Sivov bf41160c65 shell32: Implement FolderItemVerbs::Item(). 2015-05-11 15:39:26 +09:00
Nikolay Sivov 8f72117f19 shell32: Added FolderItemVerb stub. 2015-05-11 15:39:25 +09:00
Nikolay Sivov 77c2892d87 shell32: Implement FolderItemVerbs_get_Count(). 2015-05-11 15:39:25 +09:00
Nikolay Sivov 540171bc91 shell32: Added FolderItemVerbs stub. 2015-05-11 15:39:25 +09:00
Nikolay Sivov e013a7e584 shell32: Implement ParseName(). 2015-05-11 15:39:25 +09:00
Alexandre Julliard ed700d16f7 shell32/tests: Avoid duplicate const. 2015-05-11 15:39:25 +09:00
Nikolay Sivov 80d28abdc8 shell32: Partially implement SHGetKnownFolderIDList(). 2015-05-11 15:39:25 +09:00
Nikolay Sivov 4367f4b230 shell32: Silence IMarshal requests to IKnownFolder and IKnownFolderManager. 2015-05-11 15:39:25 +09:00
Nikolay Sivov 594e0b674f shell32: Forward couple of IKnownFolder methods to regular API equivalents. 2015-05-11 15:39:24 +09:00
Nikolay Sivov 3ec3fa5eb7 explorer: Return desktop shellview interface. 2015-05-08 18:33:51 +09:00
Nikolay Sivov 7ce1813fed shell32: Added IDispatch support for IShellFolderViewDual3. 2015-05-08 18:33:41 +09:00
Nikolay Sivov c2ecf3b0bf shell32: Update to IShellDispatch6. 2015-05-06 18:14:22 +09:00
Nikolay Sivov ce87d64ab4 shell32: Implement Application property of IShellFolderViewDual. 2015-05-06 18:13:59 +09:00
Nikolay Sivov a6163247cd shell32: Implement GetSelectedCount() using IFolderView2::GetSelection(). 2015-05-05 10:16:37 +09:00
Nikolay Sivov be6e022f2d shell32: Forward SetRedraw to IFolderView2. 2015-05-05 10:16:33 +09:00
Nikolay Sivov 7e0e82bc9c shell32: Forward AutoArrange() to IFolderView2. 2015-05-05 10:16:29 +09:00
Nikolay Sivov a897adb67b shell32: Fix multiline trace message and some magic numbers. 2015-05-05 10:16:25 +09:00
Nikolay Sivov a7b99a1f89 shell32/tests: A test for shellview QI for IOleWindow. 2015-05-05 10:16:16 +09:00