Author: hbelusca
Date: Mon Jan 16 16:17:59 2017
New Revision: 73559
URL:
http://svn.reactos.org/svn/reactos?rev=73559&view=rev
Log:
[SHELL32_APITEST]
- Fix the names of some expected return values get from the APIs;
- Move a bit the TestShellLink() function.
- When displaying hexadecimal, prepend the "0x" string (otherwise, when you see:
"hr = 10", is it 10 in decimal or in hex??)
- Call CoUninitialize() at the end of the tests.
Modified:
trunk/rostests/apitests/shell32/CShellLink.cpp
Modified: trunk/rostests/apitests/shell32/CShellLink.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/shell32/CShellLi…
==============================================================================
--- trunk/rostests/apitests/shell32/CShellLink.cpp [iso-8859-1] (original)
+++ trunk/rostests/apitests/shell32/CShellLink.cpp [iso-8859-1] Mon Jan 16 16:17:59 2017
@@ -15,25 +15,26 @@
#include <debug.h>
#include <shellutils.h>
-typedef
-struct _TestShellLinkDef
-{
- const WCHAR* pathIn;
+/* Test IShellLink::SetPath with environment-variables, existing, non-existing, ...*/
+typedef struct
+{
+ PCWSTR pathIn;
HRESULT hrSetPath;
+
/* Test 1 - hrGetPathX = IShellLink::GetPath(pathOutX, ... , flagsX); */
- const WCHAR* pathOut1;
+ PCWSTR pathOut1;
DWORD flags1;
HRESULT hrGetPath1;
- bool expandPathOut1;
+ BOOL expandPathOut1;
+
/* Test 2 */
- const WCHAR* pathOut2;
+ PCWSTR pathOut2;
DWORD flags2;
HRESULT hrGetPath2;
- bool expandPathOut2;
-} TestShellLinkDef;
-
-/* Test IShellLink::SetPath with environment-variables, existing, non-existing, ...*/
-static struct _TestShellLinkDef linkTestList[] =
+ BOOL expandPathOut2;
+} TEST_SHELL_LINK_DEF;
+
+static TEST_SHELL_LINK_DEF linkTestList[] =
{
{
L"%comspec%", S_OK,
@@ -42,8 +43,8 @@
},
{
L"%anyvar%", E_INVALIDARG,
- L"", SLGP_SHORTPATH, ERROR_INVALID_FUNCTION,
FALSE,
- L"", SLGP_RAWPATH, ERROR_INVALID_FUNCTION,
FALSE
+ L"", SLGP_SHORTPATH, S_FALSE, FALSE,
+ L"", SLGP_RAWPATH, S_FALSE, FALSE
},
{
L"%anyvar%%comspec%", S_OK,
@@ -82,21 +83,21 @@
},
{
L"non-existent-file", E_INVALIDARG,
- L"", SLGP_SHORTPATH, ERROR_INVALID_FUNCTION,
FALSE,
- L"", SLGP_RAWPATH, ERROR_INVALID_FUNCTION,
FALSE
+ L"", SLGP_SHORTPATH, S_FALSE, FALSE,
+ L"", SLGP_RAWPATH, S_FALSE, FALSE
},
};
static
VOID
-test_checklinkpath(UINT i, TestShellLinkDef* testDef)
+test_checklinkpath(UINT i, TEST_SHELL_LINK_DEF* testDef)
{
static WCHAR evVar[MAX_PATH];
HRESULT hr, expectedHr;
WCHAR wPathOut[MAX_PATH];
- bool expandPathOut;
- const WCHAR* expectedPathOut;
+ BOOL expandPathOut;
+ PCWSTR expectedPathOut;
IShellLinkW *psl;
UINT i1;
DWORD flags;
@@ -105,7 +106,7 @@
NULL,
CLSCTX_INPROC_SERVER,
IID_PPV_ARG(IShellLinkW, &psl));
- ok(hr == S_OK, "CoCreateInstance, hr = %lx\n", hr);
+ ok(hr == S_OK, "CoCreateInstance, hr = 0x%lx\n", hr);
if (FAILED(hr))
{
skip("Could not instantiate CShellLink\n");
@@ -113,19 +114,19 @@
}
hr = psl->SetPath(testDef->pathIn);
- ok(hr == testDef->hrSetPath, "IShellLink::SetPath(%d), got hr = %lx, expected
%lx\n", i, hr, testDef->hrSetPath);
+ ok(hr == testDef->hrSetPath, "IShellLink::SetPath(%d), got hr = 0x%lx,
expected 0x%lx\n", i, hr, testDef->hrSetPath);
expectedPathOut = NULL;
- for (i1 = 0; i1 <= 1; i1++ )
- {
- if (i1 == 1)
+ for (i1 = 0; i1 <= 1; i1++)
+ {
+ if (i1 == 1) /* Usually SLGP_RAWPATH */
{
flags = testDef->flags1;
expandPathOut = testDef->expandPathOut1;
expectedPathOut = testDef->pathOut1;
expectedHr = testDef->hrGetPath1;
}
- else
+ else /* Usually SLGP_SHORTPATH */
{
flags = testDef->flags2;
expandPathOut = testDef->expandPathOut2;
@@ -134,7 +135,7 @@
}
/* Patch some variables */
- if (expandPathOut == TRUE)
+ if (expandPathOut)
{
ExpandEnvironmentStringsW(expectedPathOut, evVar, _countof(evVar));
DPRINT("** %S **\n",evVar);
@@ -143,14 +144,32 @@
hr = psl->GetPath(wPathOut, _countof(wPathOut), NULL, flags);
ok(hr == expectedHr,
- "IShellLink::GetPath(%d), flags %lx, got hr = %lx, expected %lx\n",
+ "IShellLink::GetPath(%d), flags 0x%lx, got hr = 0x%lx, expected
0x%lx\n",
i, flags, hr, expectedHr);
ok(wcsicmp(wPathOut, expectedPathOut) == 0,
- "IShellLink::GetPath(%d), flags %lx, in %S, got %S, expected %S\n",
+ "IShellLink::GetPath(%d), flags 0x%lx, in %S, got %S, expected
%S\n",
i, flags, testDef->pathIn, wPathOut, expectedPathOut);
}
psl->Release();
+}
+
+static
+VOID
+TestShellLink(void)
+{
+ UINT i;
+
+ /* Needed for test */
+ SetEnvironmentVariableW(L"shell", L"cmd.exe");
+
+ for (i = 0; i < _countof(linkTestList); ++i)
+ {
+ DPRINT("IShellLink-Test(%d): %S\n", i, linkTestList[i].pathIn);
+ test_checklinkpath(i, &linkTestList[i]);
+ }
+
+ SetEnvironmentVariableW(L"shell",NULL);
}
static
@@ -167,7 +186,7 @@
NULL,
CLSCTX_INPROC_SERVER,
IID_PPV_ARG(IShellLinkW, &psl));
- ok(hr == S_OK, "CoCreateInstance, hr = %lx\n", hr);
+ ok(hr == S_OK, "CoCreateInstance, hr = 0x%lx\n", hr);
if (FAILED(hr))
{
skip("Could not instantiate CShellLink\n");
@@ -176,54 +195,38 @@
memset(buffer, 0x55, sizeof(buffer));
hr = psl->GetDescription(buffer, RTL_NUMBER_OF(buffer));
- ok(hr == S_OK, "IShellLink::GetDescription returned hr = %lx\n", hr);
+ ok(hr == S_OK, "IShellLink::GetDescription returned hr = 0x%lx\n", hr);
ok(buffer[0] == 0, "buffer[0] = %x\n", buffer[0]);
ok(buffer[1] == 0x5555, "buffer[1] = %x\n", buffer[1]);
hr = psl->SetDescription(testDescription);
- ok(hr == S_OK, "IShellLink::SetDescription returned hr = %lx\n", hr);
+ ok(hr == S_OK, "IShellLink::SetDescription returned hr = 0x%lx\n", hr);
memset(buffer, 0x55, sizeof(buffer));
hr = psl->GetDescription(buffer, RTL_NUMBER_OF(buffer));
- ok(hr == S_OK, "IShellLink::GetDescription returned hr = %lx\n", hr);
+ ok(hr == S_OK, "IShellLink::GetDescription returned hr = 0x%lx\n", hr);
ok(buffer[wcslen(testDescription)] == 0, "buffer[n] = %x\n",
buffer[wcslen(testDescription)]);
ok(buffer[wcslen(testDescription) + 1] == 0x5555, "buffer[n+1] = %x\n",
buffer[wcslen(testDescription) + 1]);
ok(!wcscmp(buffer, testDescription), "buffer = '%ls'\n", buffer);
hr = psl->SetDescription(NULL);
- ok(hr == S_OK, "IShellLink::SetDescription returned hr = %lx\n", hr);
+ ok(hr == S_OK, "IShellLink::SetDescription returned hr = 0x%lx\n", hr);
memset(buffer, 0x55, sizeof(buffer));
hr = psl->GetDescription(buffer, RTL_NUMBER_OF(buffer));
- ok(hr == S_OK, "IShellLink::GetDescription returned hr = %lx\n", hr);
+ ok(hr == S_OK, "IShellLink::GetDescription returned hr = 0x%lx\n", hr);
ok(buffer[0] == 0, "buffer[0] = %x\n", buffer[0]);
ok(buffer[1] == 0x5555, "buffer[1] = %x\n", buffer[1]);
psl->Release();
}
-static
-VOID
-TestShellLink(void)
-{
- UINT i;
-
- /* Needed for test */
- SetEnvironmentVariableW(L"shell", L"cmd.exe");
-
- for (i = 0; i < _countof(linkTestList); ++i)
- {
- DPRINT("IShellLink-Test(%d): %S\n", i, linkTestList[i].pathIn);
- test_checklinkpath(i, &linkTestList[i]);
- }
-
- SetEnvironmentVariableW(L"shell",NULL);
-}
-
START_TEST(CShellLink)
{
CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
TestShellLink();
TestDescription();
-}
+
+ CoUninitialize();
+}