From 758851efe4fe88b507581f8212f9ccb227faa183 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Gardou?= Date: Wed, 1 Oct 2014 15:59:54 +0000 Subject: [PATCH] [ADVAPI32_APITEST] - Add more tests for HKCR subkeys creation. CORE-8582 svn path=/trunk/; revision=64439 --- .../apitests/advapi32/HKEY_CLASSES_ROOT.c | 44 ++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/rostests/apitests/advapi32/HKEY_CLASSES_ROOT.c b/rostests/apitests/advapi32/HKEY_CLASSES_ROOT.c index bc3552bab74..42329888c8b 100644 --- a/rostests/apitests/advapi32/HKEY_CLASSES_ROOT.c +++ b/rostests/apitests/advapi32/HKEY_CLASSES_ROOT.c @@ -432,6 +432,26 @@ Test_CreateOpenKey(void) ok(IS_HKCR(ClassesRootKey), "\n"); ok_key_name(ClassesRootKey, &HKCU_ClassesPath, L"Apitest_HKCU"); + /* Try creating a subkey with this HKCR handle, which points to a subkey in HKCU. */ + ErrorCode = RegCreateKeyExW( + ClassesRootKey, + L"HKCR_Subkey", + 0, + NULL, + 0, + MAXIMUM_ALLOWED, + NULL, + &ClassesRootSubKey, + NULL); + ok_dec(ErrorCode, ERROR_SUCCESS); + ok(IS_HKCR(ClassesRootSubKey), "\n"); + /* It is in fact created in HKLM */ + ok_key_name(ClassesRootSubKey, &HKLM_ClassesPath, L"Apitest_HKCU\\HKCR_Subkey"); + /* Let's see if we can delete it */ + RegDeleteKeyW(ClassesRootKey, L"HKCR_Subkey"); + ok_key_deleted(ClassesRootSubKey); + RegCloseKey(ClassesRootSubKey); + /* Create a corresponding subkey in HKLM */ ErrorCode = RegCreateKeyExW( HKEY_LOCAL_MACHINE, @@ -446,7 +466,8 @@ Test_CreateOpenKey(void) ok_dec(ErrorCode, ERROR_SUCCESS); ok(!IS_HKCR(MachineSubKey), "\n"); - /* Open it as an HKCR subkey */ + /* Open it from the HKCR handle (which is still pointing to HKCU) */ + ok_key_name(ClassesRootKey, &HKCU_ClassesPath, L"Apitest_HKCU"); ErrorCode = RegOpenKeyExW( ClassesRootKey, L"HKLM_Subkey", @@ -472,6 +493,27 @@ Test_CreateOpenKey(void) ok_dec(ErrorCode, ERROR_SUCCESS); ok_key_deleted(MachineSubKey); ok_key_deleted(ClassesRootSubKey); + + /* Rery creating a subkey with this HKCR handle (which points to HKCU). + * It should now be created in the HKLM view. */ + ok_key_name(ClassesRootKey, &HKCU_ClassesPath, L"Apitest_HKCU"); + ErrorCode = RegCreateKeyExW( + ClassesRootKey, + L"HKCR_Subkey", + 0, + NULL, + 0, + MAXIMUM_ALLOWED, + NULL, + &ClassesRootSubKey, + NULL); + ok_dec(ErrorCode, ERROR_SUCCESS); + ok(IS_HKCR(ClassesRootSubKey), "\n"); + ok_key_name(ClassesRootSubKey, &HKLM_ClassesPath, L"Apitest_HKCU\\HKCR_Subkey"); + RegDeleteKeyW(MachineKey, L"HKCR_Subkey"); + ok_key_deleted(ClassesRootSubKey); + RegCloseKey(ClassesRootSubKey); + RegCloseKey(MachineSubKey); RegCloseKey(ClassesRootSubKey);