mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 10:04:49 +00:00
[SHELL32_APITEST] Add test for Control Panel's GetDisplayNameOf (#5495)
New regression test for shell32!GetDisplayNameOf, showing that the return value of the function will be 'S_FALSE' when the first argument is NULL. Also, the returned STRRET structure data is not modified by this call. CORE-18841
This commit is contained in:
parent
329df0a9e6
commit
21e30f3f67
3 changed files with 47 additions and 0 deletions
|
@ -15,6 +15,7 @@ list(APPEND SOURCE
|
|||
DragDrop.cpp
|
||||
ExtractIconEx.cpp
|
||||
FindExecutable.cpp
|
||||
GetDisplayNameOf.cpp
|
||||
IShellFolderViewCB.cpp
|
||||
OpenAs_RunDLL.cpp
|
||||
PathResolve.cpp
|
||||
|
|
44
modules/rostests/apitests/shell32/GetDisplayNameOf.cpp
Normal file
44
modules/rostests/apitests/shell32/GetDisplayNameOf.cpp
Normal file
|
@ -0,0 +1,44 @@
|
|||
/*
|
||||
* PROJECT: ReactOS API tests
|
||||
* LICENSE: LGPL-2.1+ (https://spdx.org/licenses/LGPL-2.1+)
|
||||
* PURPOSE: Test for GetDisplayNameOf
|
||||
* COPYRIGHT: Copyright 2023 Mark Jansen <mark.jansen@reactos.org>
|
||||
* Copyright 2023 Doug Lyons <douglyons@douglyons.com>
|
||||
*/
|
||||
|
||||
#include "shelltest.h"
|
||||
#include <stdio.h>
|
||||
#include <shellutils.h>
|
||||
|
||||
START_TEST(GetDisplayNameOf)
|
||||
{
|
||||
HRESULT hr;
|
||||
CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
|
||||
|
||||
CComPtr<IShellFolder> spPanel;
|
||||
|
||||
hr = CoCreateInstance(CLSID_ControlPanel, NULL, CLSCTX_ALL,
|
||||
IID_PPV_ARG(IShellFolder, &spPanel));
|
||||
ok_hr(hr, S_OK);
|
||||
if (SUCCEEDED(hr))
|
||||
{
|
||||
STRRET ret, expected;
|
||||
|
||||
memset(&ret, 'a', sizeof(ret));
|
||||
memset(&expected, 'a', sizeof(expected));
|
||||
hr = spPanel->GetDisplayNameOf(NULL, SHGDN_NORMAL, &ret);
|
||||
|
||||
/* Return value is expected to be 'S_FALSE', which is out-of-spec behavior.
|
||||
* The data after function call is expected to be unchanged. */
|
||||
ok_hex(hr, S_FALSE);
|
||||
ok(memcmp(&ret, &expected, sizeof(ret)) == 0, "Data was changed!\n");
|
||||
|
||||
/* Repeat the same test with SHGDN_FORPARSING */
|
||||
memset(&ret, 'a', sizeof(ret));
|
||||
memset(&expected, 'a', sizeof(expected));
|
||||
hr = spPanel->GetDisplayNameOf(NULL, SHGDN_FORPARSING, &ret);
|
||||
|
||||
ok_hex(hr, S_FALSE);
|
||||
ok(memcmp(&ret, &expected, sizeof(ret)) == 0, "Data was changed!\n");
|
||||
}
|
||||
}
|
|
@ -16,6 +16,7 @@ extern void func_CUserNotification(void);
|
|||
extern void func_DragDrop(void);
|
||||
extern void func_ExtractIconEx(void);
|
||||
extern void func_FindExecutable(void);
|
||||
extern void func_GetDisplayNameOf(void);
|
||||
extern void func_IShellFolderViewCB(void);
|
||||
extern void func_menu(void);
|
||||
extern void func_OpenAs_RunDLL(void);
|
||||
|
@ -49,6 +50,7 @@ const struct test winetest_testlist[] =
|
|||
{ "DragDrop", func_DragDrop },
|
||||
{ "ExtractIconEx", func_ExtractIconEx },
|
||||
{ "FindExecutable", func_FindExecutable },
|
||||
{ "GetDisplayNameOf", func_GetDisplayNameOf },
|
||||
{ "IShellFolderViewCB", func_IShellFolderViewCB },
|
||||
{ "menu", func_menu },
|
||||
{ "OpenAs_RunDLL", func_OpenAs_RunDLL },
|
||||
|
|
Loading…
Reference in a new issue