https://git.reactos.org/?p=reactos.git;a=commitdiff;h=e08ae510d5bec1851fdca…
commit e08ae510d5bec1851fdca824c8b03750a576dc29
Author: Amine Khaldi <amine.khaldi(a)reactos.org>
AuthorDate: Mon Oct 1 12:45:40 2018 +0100
Commit: Amine Khaldi <amine.khaldi(a)reactos.org>
CommitDate: Mon Oct 1 12:45:40 2018 +0100
[COMDLG32_WINETEST] Sync with Wine Staging 3.17. CORE-15127
---
modules/rostests/winetests/comdlg32/filedlg.c | 3 ---
modules/rostests/winetests/comdlg32/itemdlg.c | 35 ++++++++++++++++++++++-----
2 files changed, 29 insertions(+), 9 deletions(-)
diff --git a/modules/rostests/winetests/comdlg32/filedlg.c
b/modules/rostests/winetests/comdlg32/filedlg.c
index 4cad889050..fbfd857e2a 100644
--- a/modules/rostests/winetests/comdlg32/filedlg.c
+++ b/modules/rostests/winetests/comdlg32/filedlg.c
@@ -1120,9 +1120,6 @@ static void test_extension(void)
test_extension_helper(&ofn, "TestFilter (*.*.def)\0*.*.def\0",
"deadbeef.xyz");
}
-#undef ARRAY_SIZE
-
-
static BOOL WINAPI test_null_enum(HWND hwnd, LPARAM lParam)
{
/* Find the textbox and send a filename so IDOK will work.
diff --git a/modules/rostests/winetests/comdlg32/itemdlg.c
b/modules/rostests/winetests/comdlg32/itemdlg.c
index d28e682b49..787c4e48e8 100644
--- a/modules/rostests/winetests/comdlg32/itemdlg.c
+++ b/modules/rostests/winetests/comdlg32/itemdlg.c
@@ -536,6 +536,8 @@ static void test_basics(void)
const WCHAR fname2[] =
{'f','n','a','m','e','2', 0};
const WCHAR fspec2[] =
{'*','.','e','x','e',0};
COMDLG_FILTERSPEC filterspec[2] = {{fname1, fspec1}, {fname2, fspec2}};
+ const DWORD invalid_fos[] = {0x1, 0x10, 0x400, 0x80000, 0x400000, 0x800000,
0x1000000, 0x4000000, 0x8000000};
+ INT i;
/* This should work on every platform with IFileDialog */
SHGetDesktopFolder(&psfdesktop);
@@ -586,6 +588,23 @@ static void test_basics(void)
ok(fdoptions == (FOS_OVERWRITEPROMPT | FOS_NOREADONLYRETURN | FOS_PATHMUSTEXIST |
FOS_NOCHANGEDIR),
"Unexpected default options: 0x%08x\n", fdoptions);
+ /* Check SetOptions invalid options handling */
+ for (i = 0; i < ARRAY_SIZE(invalid_fos); i++)
+ {
+ hr = IFileOpenDialog_SetOptions(pfod, invalid_fos[i]);
+ ok(hr == E_INVALIDARG, "got 0x%08x.\n", hr);
+ hr = IFileOpenDialog_GetOptions(pfod, &fdoptions);
+ ok(hr == S_OK, "got 0x%08x.\n", hr);
+ ok(fdoptions == (FOS_PATHMUSTEXIST | FOS_FILEMUSTEXIST | FOS_NOCHANGEDIR),
"got %08x\n", fdoptions);
+
+ hr = IFileSaveDialog_SetOptions(pfsd, invalid_fos[i]);
+ ok(hr == E_INVALIDARG, "got 0x%08x.\n", hr);
+ hr = IFileSaveDialog_GetOptions(pfsd, &fdoptions);
+ ok(hr == S_OK, "got 0x%08x.\n", hr);
+ ok(fdoptions == (FOS_OVERWRITEPROMPT | FOS_NOREADONLYRETURN | FOS_PATHMUSTEXIST |
FOS_NOCHANGEDIR),
+ "got %08x\n", fdoptions);
+ }
+
/* GetResult */
hr = IFileOpenDialog_GetResult(pfod, NULL);
ok(hr == E_INVALIDARG, "got 0x%08x.\n", hr);
@@ -1032,10 +1051,14 @@ static void test_advise_helper(IFileDialog *pfd)
pfde = IFileDialogEvents_Constructor();
pfdeimpl = impl_from_IFileDialogEvents(pfde);
- hr = IFileDialog_Advise(pfd, NULL, NULL);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
- hr = IFileDialog_Advise(pfd, pfde, NULL);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ /* Null pointer tests crash on Windows 10 16299 or newer */
+ if (0)
+ {
+ hr = IFileDialog_Advise(pfd, NULL, NULL);
+ ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ hr = IFileDialog_Advise(pfd, pfde, NULL);
+ ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ }
hr = IFileDialog_Advise(pfd, NULL, &cookie[0]);
ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
ok(pfdeimpl->ref == 1, "got ref %d\n", pfdeimpl->ref);
@@ -1046,7 +1069,7 @@ static void test_advise_helper(IFileDialog *pfd)
for(i = 0; i < 10; i++) {
hr = IFileDialog_Advise(pfd, pfde, &cookie[i]);
ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(cookie[i] == i+1, "Got cookie: %d\n", cookie[i]);
+ ok(cookie[i] == i+cookie[0], "Got cookie: %d\n", cookie[i]);
}
ok(pfdeimpl->ref == 10+1, "got ref %d\n", pfdeimpl->ref);
ensure_zero_events(pfdeimpl);
@@ -1079,7 +1102,7 @@ static void test_advise_helper(IFileDialog *pfd)
hr = IFileDialog_Advise(pfd, pfde, &cookie[0]);
ok(hr == S_OK, "got 0x%08x\n", hr);
- todo_wine ok(cookie[0] == 1, "got cookie: %d\n", cookie[0]);
+ ok(cookie[0] >= 1, "got cookie: %d\n", cookie[0]);
ok(pfdeimpl->ref == 1+1, "got ref %d\n", pfdeimpl->ref);
ensure_zero_events(pfdeimpl);