147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org/* 247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * Copyright 2003 The WebRTC Project Authors. All rights reserved. 347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * 447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * Use of this source code is governed by a BSD-style license 547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * that can be found in the LICENSE file in the root of the source 647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * tree. An additional intellectual property rights grant can be found 747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * in the file PATENTS. All contributing project authors may 847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * be found in the AUTHORS file in the root of the source tree. 947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org */ 1047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 1147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org// Unittest for registry access API 1247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 1347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#include "webrtc/base/gunit.h" 1447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#include "webrtc/base/common.h" 1547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#include "webrtc/base/win32regkey.h" 1647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 1747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgnamespace rtc { 1847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 1947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#ifndef EXPECT_SUCCEEDED 2047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#define EXPECT_SUCCEEDED(x) EXPECT_TRUE(SUCCEEDED(x)) 2147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#endif 2247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 2347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#ifndef EXPECT_FAILED 2447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#define EXPECT_FAILED(x) EXPECT_TRUE(FAILED(x)) 2547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#endif 2647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 2747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#define kBaseKey L"Software\\Google\\__TEST" 2847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#define kSubkeyName L"subkey_test" 2947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 3047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgconst wchar_t kRkey1[] = kBaseKey; 3147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgconst wchar_t kRkey1SubkeyName[] = kSubkeyName; 3247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgconst wchar_t kRkey1Subkey[] = kBaseKey L"\\" kSubkeyName; 3347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgconst wchar_t kFullRkey1[] = L"HKCU\\" kBaseKey; 3447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgconst wchar_t kFullRkey1Subkey[] = L"HKCU\\" kBaseKey L"\\" kSubkeyName; 3547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 3647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgconst wchar_t kValNameInt[] = L"Int32 Value"; 3747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgconst DWORD kIntVal = 20; 3847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgconst DWORD kIntVal2 = 30; 3947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 4047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgconst wchar_t kValNameInt64[] = L"Int64 Value"; 4147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgconst DWORD64 kIntVal64 = 119600064000000000uI64; 4247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 4347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgconst wchar_t kValNameFloat[] = L"Float Value"; 4447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgconst float kFloatVal = 12.3456789f; 4547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 4647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgconst wchar_t kValNameDouble[] = L"Double Value"; 4747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgconst double kDoubleVal = 98.7654321; 4847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 4947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgconst wchar_t kValNameStr[] = L"Str Value"; 5047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgconst wchar_t kStrVal[] = L"Some string data 1"; 5147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgconst wchar_t kStrVal2[] = L"Some string data 2"; 5247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 5347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgconst wchar_t kValNameBinary[] = L"Binary Value"; 5447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgconst char kBinaryVal[] = "Some binary data abcdefghi 1"; 5547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgconst char kBinaryVal2[] = "Some binary data abcdefghi 2"; 5647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 5747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgconst wchar_t kValNameMultiStr[] = L"MultiStr Value"; 5847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgconst wchar_t kMultiSZ[] = L"abc\0def\0P12345\0"; 5947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgconst wchar_t kEmptyMultiSZ[] = L""; 6047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgconst wchar_t kInvalidMultiSZ[] = {L'6', L'7', L'8'}; 6147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 6247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org// friend function of RegKey 6347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgvoid RegKeyHelperFunctionsTest() { 6447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // Try out some dud values 6547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org std::wstring temp_key = L""; 6647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(RegKey::GetRootKeyInfo(&temp_key) == NULL); 6747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(temp_key.c_str(), L""); 6847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 6947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org temp_key = L"a"; 7047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(RegKey::GetRootKeyInfo(&temp_key) == NULL); 7147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(temp_key.c_str(), L""); 7247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 7347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // The basics 7447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org temp_key = L"HKLM\\a"; 7547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(RegKey::GetRootKeyInfo(&temp_key), HKEY_LOCAL_MACHINE); 7647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(temp_key.c_str(), L"a"); 7747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 7847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org temp_key = L"HKEY_LOCAL_MACHINE\\a"; 7947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(RegKey::GetRootKeyInfo(&temp_key), HKEY_LOCAL_MACHINE); 8047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(temp_key.c_str(), L"a"); 8147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 8247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org temp_key = L"HKCU\\a"; 8347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(RegKey::GetRootKeyInfo(&temp_key), HKEY_CURRENT_USER); 8447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(temp_key.c_str(), L"a"); 8547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 8647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org temp_key = L"HKEY_CURRENT_USER\\a"; 8747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(RegKey::GetRootKeyInfo(&temp_key), HKEY_CURRENT_USER); 8847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(temp_key.c_str(), L"a"); 8947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 9047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org temp_key = L"HKU\\a"; 9147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(RegKey::GetRootKeyInfo(&temp_key), HKEY_USERS); 9247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(temp_key.c_str(), L"a"); 9347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 9447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org temp_key = L"HKEY_USERS\\a"; 9547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(RegKey::GetRootKeyInfo(&temp_key), HKEY_USERS); 9647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(temp_key.c_str(), L"a"); 9747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 9847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org temp_key = L"HKCR\\a"; 9947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(RegKey::GetRootKeyInfo(&temp_key), HKEY_CLASSES_ROOT); 10047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(temp_key.c_str(), L"a"); 10147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 10247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org temp_key = L"HKEY_CLASSES_ROOT\\a"; 10347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(RegKey::GetRootKeyInfo(&temp_key), HKEY_CLASSES_ROOT); 10447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(temp_key.c_str(), L"a"); 10547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 10647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // Make sure it is case insensitive 10747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org temp_key = L"hkcr\\a"; 10847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(RegKey::GetRootKeyInfo(&temp_key), HKEY_CLASSES_ROOT); 10947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(temp_key.c_str(), L"a"); 11047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 11147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org temp_key = L"hkey_CLASSES_ROOT\\a"; 11247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(RegKey::GetRootKeyInfo(&temp_key), HKEY_CLASSES_ROOT); 11347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(temp_key.c_str(), L"a"); 11447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 11547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // 11647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // Test RegKey::GetParentKeyInfo 11747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // 11847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 11947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // dud cases 12047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org temp_key = L""; 12147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(RegKey::GetParentKeyInfo(&temp_key).c_str(), L""); 12247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(temp_key.c_str(), L""); 12347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 12447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org temp_key = L"a"; 12547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(RegKey::GetParentKeyInfo(&temp_key).c_str(), L""); 12647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(temp_key.c_str(), L"a"); 12747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 12847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org temp_key = L"a\\b"; 12947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(RegKey::GetParentKeyInfo(&temp_key).c_str(), L"a"); 13047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(temp_key.c_str(), L"b"); 13147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 13247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org temp_key = L"\\b"; 13347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(RegKey::GetParentKeyInfo(&temp_key).c_str(), L""); 13447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(temp_key.c_str(), L"b"); 13547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 13647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // Some regular cases 13747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org temp_key = L"HKEY_CLASSES_ROOT\\moon"; 13847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(RegKey::GetParentKeyInfo(&temp_key).c_str(), 13947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org L"HKEY_CLASSES_ROOT"); 14047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(temp_key.c_str(), L"moon"); 14147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 14247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org temp_key = L"HKEY_CLASSES_ROOT\\moon\\doggy"; 14347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(RegKey::GetParentKeyInfo(&temp_key).c_str(), 14447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org L"HKEY_CLASSES_ROOT\\moon"); 14547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(temp_key.c_str(), L"doggy"); 14647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 14747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // 14847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // Test MultiSZBytesToStringArray 14947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // 15047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 15147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org std::vector<std::wstring> result; 15247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::MultiSZBytesToStringArray( 15347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org reinterpret_cast<const uint8*>(kMultiSZ), sizeof(kMultiSZ), &result)); 15447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(result.size(), 3); 15547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(result[0].c_str(), L"abc"); 15647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(result[1].c_str(), L"def"); 15747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(result[2].c_str(), L"P12345"); 15847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 15947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::MultiSZBytesToStringArray( 16047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org reinterpret_cast<const uint8*>(kEmptyMultiSZ), 16147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org sizeof(kEmptyMultiSZ), &result)); 16247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(result.size(), 0); 16347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(SUCCEEDED(RegKey::MultiSZBytesToStringArray( 16447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org reinterpret_cast<const uint8*>(kInvalidMultiSZ), 16547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org sizeof(kInvalidMultiSZ), &result))); 16647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 16747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 16847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgTEST(RegKeyTest, RegKeyHelperFunctionsTest) { 16947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org RegKeyHelperFunctionsTest(); 17047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 17147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 17247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgTEST(RegKeyTest, RegKeyNonStaticFunctionsTest) { 17347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org DWORD int_val = 0; 17447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org DWORD64 int64_val = 0; 17547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org wchar_t* str_val = NULL; 17647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org uint8* binary_val = NULL; 17747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org DWORD uint8_count = 0; 17847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 17947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // Just in case... 18047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // make sure the no test key residue is left from previous aborted runs 18147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org RegKey::DeleteKey(kFullRkey1); 18247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 18347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // initial state 18447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org RegKey r_key; 18547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(r_key.key() == NULL); 18647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 18747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // create a reg key 18847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.Create(HKEY_CURRENT_USER, kRkey1)); 18947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 19047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // do the create twice - it should return the already created one 19147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.Create(HKEY_CURRENT_USER, kRkey1)); 19247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 19347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // now do an open - should work just fine 19447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.Open(HKEY_CURRENT_USER, kRkey1)); 19547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 19647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // get an in-existent value 19747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(r_key.GetValue(kValNameInt, &int_val), 19847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)); 19947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 20047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // set and get some values 20147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 20247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // set an INT 32 20347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.SetValue(kValNameInt, kIntVal)); 20447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 20547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check that the value exists 20647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(r_key.HasValue(kValNameInt)); 20747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 20847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // read it back 20947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.GetValue(kValNameInt, &int_val)); 21047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(int_val, kIntVal); 21147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 21247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // set it again! 21347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.SetValue(kValNameInt, kIntVal2)); 21447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 21547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // read it again 21647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.GetValue(kValNameInt, &int_val)); 21747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(int_val, kIntVal2); 21847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 21947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // delete the value 22047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.DeleteValue(kValNameInt)); 22147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 22247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check that the value is gone 22347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(r_key.HasValue(kValNameInt)); 22447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 22547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // set an INT 64 22647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.SetValue(kValNameInt64, kIntVal64)); 22747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 22847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check that the value exists 22947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(r_key.HasValue(kValNameInt64)); 23047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 23147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // read it back 23247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.GetValue(kValNameInt64, &int64_val)); 23347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(int64_val, kIntVal64); 23447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 23547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // delete the value 23647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.DeleteValue(kValNameInt64)); 23747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 23847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check that the value is gone 23947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(r_key.HasValue(kValNameInt64)); 24047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 24147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // set a string 24247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.SetValue(kValNameStr, kStrVal)); 24347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 24447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check that the value exists 24547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(r_key.HasValue(kValNameStr)); 24647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 24747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // read it back 24847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.GetValue(kValNameStr, &str_val)); 24947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(lstrcmp(str_val, kStrVal) == 0); 25047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org delete[] str_val; 25147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 25247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // set it again 25347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.SetValue(kValNameStr, kStrVal2)); 25447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 25547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // read it again 25647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.GetValue(kValNameStr, &str_val)); 25747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(lstrcmp(str_val, kStrVal2) == 0); 25847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org delete[] str_val; 25947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 26047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // delete the value 26147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.DeleteValue(kValNameStr)); 26247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 26347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check that the value is gone 26447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(r_key.HasValue(kValNameInt)); 26547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 26647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // set a binary value 26747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.SetValue(kValNameBinary, 26847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org reinterpret_cast<const uint8*>(kBinaryVal), sizeof(kBinaryVal) - 1)); 26947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 27047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check that the value exists 27147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(r_key.HasValue(kValNameBinary)); 27247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 27347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // read it back 27447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.GetValue(kValNameBinary, &binary_val, &uint8_count)); 27547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(memcmp(binary_val, kBinaryVal, sizeof(kBinaryVal) - 1) == 0); 27647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org delete[] binary_val; 27747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 27847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // set it again 27947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.SetValue(kValNameBinary, 28047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org reinterpret_cast<const uint8*>(kBinaryVal2), sizeof(kBinaryVal) - 1)); 28147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 28247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // read it again 28347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.GetValue(kValNameBinary, &binary_val, &uint8_count)); 28447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(memcmp(binary_val, kBinaryVal2, sizeof(kBinaryVal2) - 1) == 0); 28547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org delete[] binary_val; 28647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 28747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // delete the value 28847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.DeleteValue(kValNameBinary)); 28947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 29047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check that the value is gone 29147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(r_key.HasValue(kValNameBinary)); 29247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 29347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // set some values and check the total count 29447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 29547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // set an INT 32 29647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.SetValue(kValNameInt, kIntVal)); 29747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 29847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // set an INT 64 29947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.SetValue(kValNameInt64, kIntVal64)); 30047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 30147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // set a string 30247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.SetValue(kValNameStr, kStrVal)); 30347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 30447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // set a binary value 30547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.SetValue(kValNameBinary, 30647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org reinterpret_cast<const uint8*>(kBinaryVal), sizeof(kBinaryVal) - 1)); 30747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 30847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // get the value count 30947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org uint32 value_count = r_key.GetValueCount(); 31047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(value_count, 4); 31147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 31247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check the value names 31347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org std::wstring value_name; 31447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org DWORD type = 0; 31547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 31647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.GetValueNameAt(0, &value_name, &type)); 31747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(value_name.c_str(), kValNameInt); 31847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(type, REG_DWORD); 31947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 32047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.GetValueNameAt(1, &value_name, &type)); 32147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(value_name.c_str(), kValNameInt64); 32247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(type, REG_QWORD); 32347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 32447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.GetValueNameAt(2, &value_name, &type)); 32547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(value_name.c_str(), kValNameStr); 32647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(type, REG_SZ); 32747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 32847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.GetValueNameAt(3, &value_name, &type)); 32947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(value_name.c_str(), kValNameBinary); 33047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(type, REG_BINARY); 33147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 33247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check that there are no more values 33347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FAILED(r_key.GetValueNameAt(4, &value_name, &type)); 33447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 33547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org uint32 subkey_count = r_key.GetSubkeyCount(); 33647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(subkey_count, 0); 33747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 33847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // now create a subkey and make sure we can get the name 33947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org RegKey temp_key; 34047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(temp_key.Create(HKEY_CURRENT_USER, kRkey1Subkey)); 34147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 34247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check the subkey exists 34347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(r_key.HasSubkey(kRkey1SubkeyName)); 34447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 34547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check the name 34647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(r_key.GetSubkeyCount(), 1); 34747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 34847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org std::wstring subkey_name; 34947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.GetSubkeyNameAt(0, &subkey_name)); 35047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(subkey_name.c_str(), kRkey1SubkeyName); 35147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 35247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // delete the key 35347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.DeleteSubKey(kRkey1)); 35447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 35547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // close this key 35647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(r_key.Close()); 35747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 35847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // whack the whole key 35947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::DeleteKey(kFullRkey1)); 36047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 36147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 36247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgTEST(RegKeyTest, RegKeyStaticFunctionsTest) { 36347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org DWORD int_val = 0; 36447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org DWORD64 int64_val = 0; 36547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org float float_val = 0; 36647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org double double_val = 0; 36747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org wchar_t* str_val = NULL; 36847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org std::wstring wstr_val; 36947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org uint8* binary_val = NULL; 37047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org DWORD uint8_count = 0; 37147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 37247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // Just in case... 37347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // make sure the no test key residue is left from previous aborted runs 37447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org RegKey::DeleteKey(kFullRkey1); 37547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 37647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // get an in-existent value from an un-existent key 37747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(RegKey::GetValue(kFullRkey1, kValNameInt, &int_val), 37847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)); 37947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 38047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // set int32 38147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::SetValue(kFullRkey1, kValNameInt, kIntVal)); 38247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 38347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check that the value exists 38447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(RegKey::HasValue(kFullRkey1, kValNameInt)); 38547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 38647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // get an in-existent value from an existent key 38747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(RegKey::GetValue(kFullRkey1, L"bogus", &int_val), 38847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)); 38947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 39047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // read it back 39147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::GetValue(kFullRkey1, kValNameInt, &int_val)); 39247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(int_val, kIntVal); 39347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 39447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // delete the value 39547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::DeleteValue(kFullRkey1, kValNameInt)); 39647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 39747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check that the value is gone 39847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(RegKey::HasValue(kFullRkey1, kValNameInt)); 39947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 40047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // set int64 40147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::SetValue(kFullRkey1, kValNameInt64, kIntVal64)); 40247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 40347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check that the value exists 40447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(RegKey::HasValue(kFullRkey1, kValNameInt64)); 40547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 40647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // read it back 40747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::GetValue(kFullRkey1, kValNameInt64, &int64_val)); 40847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(int64_val, kIntVal64); 40947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 41047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // delete the value 41147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::DeleteValue(kFullRkey1, kValNameInt64)); 41247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 41347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check that the value is gone 41447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(RegKey::HasValue(kFullRkey1, kValNameInt64)); 41547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 41647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // set float 41747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::SetValue(kFullRkey1, kValNameFloat, kFloatVal)); 41847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 41947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check that the value exists 42047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(RegKey::HasValue(kFullRkey1, kValNameFloat)); 42147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 42247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // read it back 42347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::GetValue(kFullRkey1, kValNameFloat, &float_val)); 42447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(float_val, kFloatVal); 42547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 42647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // delete the value 42747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::DeleteValue(kFullRkey1, kValNameFloat)); 42847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 42947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check that the value is gone 43047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(RegKey::HasValue(kFullRkey1, kValNameFloat)); 43147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FAILED(RegKey::GetValue(kFullRkey1, kValNameFloat, &float_val)); 43247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 43347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // set double 43447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::SetValue(kFullRkey1, kValNameDouble, kDoubleVal)); 43547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 43647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check that the value exists 43747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(RegKey::HasValue(kFullRkey1, kValNameDouble)); 43847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 43947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // read it back 44047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::GetValue(kFullRkey1, kValNameDouble, &double_val)); 44147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(double_val, kDoubleVal); 44247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 44347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // delete the value 44447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::DeleteValue(kFullRkey1, kValNameDouble)); 44547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 44647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check that the value is gone 44747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(RegKey::HasValue(kFullRkey1, kValNameDouble)); 44847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FAILED(RegKey::GetValue(kFullRkey1, kValNameDouble, &double_val)); 44947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 45047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // set string 45147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::SetValue(kFullRkey1, kValNameStr, kStrVal)); 45247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 45347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check that the value exists 45447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(RegKey::HasValue(kFullRkey1, kValNameStr)); 45547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 45647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // read it back 45747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::GetValue(kFullRkey1, kValNameStr, &str_val)); 45847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(lstrcmp(str_val, kStrVal) == 0); 45947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org delete[] str_val; 46047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 46147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // read it back in std::wstring 46247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::GetValue(kFullRkey1, kValNameStr, &wstr_val)); 46347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(wstr_val.c_str(), kStrVal); 46447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 46547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // get an in-existent value from an existent key 46647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(RegKey::GetValue(kFullRkey1, L"bogus", &str_val), 46747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)); 46847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 46947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // delete the value 47047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::DeleteValue(kFullRkey1, kValNameStr)); 47147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 47247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check that the value is gone 47347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(RegKey::HasValue(kFullRkey1, kValNameStr)); 47447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 47547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // set binary 47647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::SetValue(kFullRkey1, kValNameBinary, 47747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org reinterpret_cast<const uint8*>(kBinaryVal), sizeof(kBinaryVal)-1)); 47847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 47947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check that the value exists 48047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(RegKey::HasValue(kFullRkey1, kValNameBinary)); 48147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 48247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // read it back 48347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::GetValue(kFullRkey1, kValNameBinary, 48447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org &binary_val, &uint8_count)); 48547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(memcmp(binary_val, kBinaryVal, sizeof(kBinaryVal)-1) == 0); 48647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org delete[] binary_val; 48747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 48847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // delete the value 48947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::DeleteValue(kFullRkey1, kValNameBinary)); 49047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 49147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check that the value is gone 49247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(RegKey::HasValue(kFullRkey1, kValNameBinary)); 49347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 49447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // special case - set a binary value with length 0 49547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::SetValue(kFullRkey1, kValNameBinary, 49647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org reinterpret_cast<const uint8*>(kBinaryVal), 0)); 49747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 49847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check that the value exists 49947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(RegKey::HasValue(kFullRkey1, kValNameBinary)); 50047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 50147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // read it back 50247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::GetValue(kFullRkey1, kValNameBinary, 50347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org &binary_val, &uint8_count)); 50447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(uint8_count, 0); 50547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(binary_val == NULL); 50647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org delete[] binary_val; 50747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 50847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // delete the value 50947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::DeleteValue(kFullRkey1, kValNameBinary)); 51047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 51147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check that the value is gone 51247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(RegKey::HasValue(kFullRkey1, kValNameBinary)); 51347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 51447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // special case - set a NULL binary value 51547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::SetValue(kFullRkey1, kValNameBinary, NULL, 100)); 51647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 51747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check that the value exists 51847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(RegKey::HasValue(kFullRkey1, kValNameBinary)); 51947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 52047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // read it back 52147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::GetValue(kFullRkey1, kValNameBinary, 52247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org &binary_val, &uint8_count)); 52347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(uint8_count, 0); 52447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(binary_val == NULL); 52547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org delete[] binary_val; 52647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 52747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // delete the value 52847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::DeleteValue(kFullRkey1, kValNameBinary)); 52947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 53047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // check that the value is gone 53147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(RegKey::HasValue(kFullRkey1, kValNameBinary)); 53247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 53347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // test read/write REG_MULTI_SZ value 53447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org std::vector<std::wstring> result; 53547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::SetValueMultiSZ(kFullRkey1, kValNameMultiStr, 53647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org reinterpret_cast<const uint8*>(kMultiSZ), sizeof(kMultiSZ))); 53747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::GetValue(kFullRkey1, kValNameMultiStr, &result)); 53847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(result.size(), 3); 53947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(result[0].c_str(), L"abc"); 54047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(result[1].c_str(), L"def"); 54147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(result[2].c_str(), L"P12345"); 54247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::SetValueMultiSZ(kFullRkey1, kValNameMultiStr, 54347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org reinterpret_cast<const uint8*>(kEmptyMultiSZ), sizeof(kEmptyMultiSZ))); 54447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::GetValue(kFullRkey1, kValNameMultiStr, &result)); 54547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(result.size(), 0); 54647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // writing REG_MULTI_SZ value will automatically add ending null characters 54747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::SetValueMultiSZ(kFullRkey1, kValNameMultiStr, 54847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org reinterpret_cast<const uint8*>(kInvalidMultiSZ), sizeof(kInvalidMultiSZ))); 54947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::GetValue(kFullRkey1, kValNameMultiStr, &result)); 55047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(result.size(), 1); 55147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_STREQ(result[0].c_str(), L"678"); 55247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 55347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // Run the following test only in dev machine 55447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // This is because the build machine might not have admin privilege 55547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#ifdef IS_PRIVATE_BUILD 55647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // get a temp file name 55747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org wchar_t temp_path[MAX_PATH] = {0}; 55847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_LT(::GetTempPath(ARRAY_SIZE(temp_path), temp_path), 55947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org static_cast<DWORD>(ARRAY_SIZE(temp_path))); 56047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org wchar_t temp_file[MAX_PATH] = {0}; 56147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_NE(::GetTempFileName(temp_path, L"rkut_", 56247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org ::GetTickCount(), temp_file), 0); 56347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 56447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // test save 56547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::SetValue(kFullRkey1Subkey, kValNameInt, kIntVal)); 56647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::SetValue(kFullRkey1Subkey, kValNameInt64, kIntVal64)); 56747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::Save(kFullRkey1Subkey, temp_file)); 56847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::DeleteValue(kFullRkey1Subkey, kValNameInt)); 56947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::DeleteValue(kFullRkey1Subkey, kValNameInt64)); 57047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 57147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // test restore 57247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::Restore(kFullRkey1Subkey, temp_file)); 57347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org int_val = 0; 57447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::GetValue(kFullRkey1Subkey, kValNameInt, &int_val)); 57547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(int_val, kIntVal); 57647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org int64_val = 0; 57747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::GetValue(kFullRkey1Subkey, 57847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org kValNameInt64, 57947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org &int64_val)); 58047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(int64_val, kIntVal64); 58147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 58247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // delete the temp file 58347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(TRUE, ::DeleteFile(temp_file)); 58447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#endif 58547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 58647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // whack the whole key 58747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_SUCCEEDED(RegKey::DeleteKey(kFullRkey1)); 58847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 58947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 59047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} // namespace rtc 591