[SHELL32_APITEST] SHParseDisplayName: More tests for relative paths
authorStanislav Motylkov <x86corez@gmail.com>
Sun, 3 Dec 2017 15:45:24 +0000 (18:45 +0300)
committerGiannis Adamopoulos <gadamopoulos@reactos.org>
Tue, 5 Dec 2017 08:48:37 +0000 (10:48 +0200)
modules/rostests/apitests/shell32/SHParseDisplayName.cpp

index a1a37c3..cc495dc 100644 (file)
@@ -46,7 +46,11 @@ struct test_data Tests[] =
     {__LINE__, L" :", NULL, 0, E_INVALIDARG, 0},
     {__LINE__, L"/", NULL, 0, E_INVALIDARG, 0},
     {__LINE__, L"//", NULL, 0, E_INVALIDARG, 0},
     {__LINE__, L" :", NULL, 0, E_INVALIDARG, 0},
     {__LINE__, L"/", NULL, 0, E_INVALIDARG, 0},
     {__LINE__, L"//", NULL, 0, E_INVALIDARG, 0},
+    /* This opens C:\ from Win+R and address bar */
     {__LINE__, L"\\", NULL, 0, E_INVALIDARG, 0},
     {__LINE__, L"\\", NULL, 0, E_INVALIDARG, 0},
+    /* These two opens "C:\Program Files" from Win+R and address bar */
+    {__LINE__, L"\\Program Files", NULL, 0, E_INVALIDARG, 0},
+    {__LINE__, L"\\Program Files\\", NULL, 0, E_INVALIDARG, 0},
     {__LINE__, L"\\\\?", NULL, 0, E_INVALIDARG, 0},
     {__LINE__, L"\\\\?\\", NULL, 0, E_INVALIDARG, 0},
     /* Tests for the shell: protocol */
     {__LINE__, L"\\\\?", NULL, 0, E_INVALIDARG, 0},
     {__LINE__, L"\\\\?\\", NULL, 0, E_INVALIDARG, 0},
     /* Tests for the shell: protocol */
@@ -139,6 +143,7 @@ UINT get_host_os_flag()
 START_TEST(SHParseDisplayName)
 {
     HRESULT hr;
 START_TEST(SHParseDisplayName)
 {
     HRESULT hr;
+    WCHAR winDir[MAX_PATH];
     UINT os_flag = get_host_os_flag();
     ok (os_flag != 0, "Incompatible os version %d!", os_flag);
     if (os_flag == 0)
     UINT os_flag = get_host_os_flag();
     ok (os_flag != 0, "Incompatible os version %d!", os_flag);
     if (os_flag == 0)
@@ -148,6 +153,9 @@ START_TEST(SHParseDisplayName)
     hr = SHGetDesktopFolder(&psfDesktop);
     ok(hr == S_OK, "hr = %lx\n", hr);
 
     hr = SHGetDesktopFolder(&psfDesktop);
     ok(hr == S_OK, "hr = %lx\n", hr);
 
+    GetWindowsDirectoryW(winDir, _countof(winDir));
+    SetCurrentDirectoryW(winDir);
+
     for (UINT i = 0; i < _countof(Tests); i ++)
     {
         if (Tests[i].ValidForVersion && !(Tests[i].ValidForVersion & os_flag))
     for (UINT i = 0; i < _countof(Tests); i ++)
     {
         if (Tests[i].ValidForVersion && !(Tests[i].ValidForVersion & os_flag))