| Index: common/config_manager_unittest.cc
|
| diff --git a/common/config_manager_unittest.cc b/common/config_manager_unittest.cc
|
| deleted file mode 100644
|
| index 73bcc7b549c55f209bcc8934859ad74532a112ad..0000000000000000000000000000000000000000
|
| --- a/common/config_manager_unittest.cc
|
| +++ /dev/null
|
| @@ -1,1581 +0,0 @@
|
| -// Copyright 2007-2010 Google Inc.
|
| -//
|
| -// Licensed under the Apache License, Version 2.0 (the "License");
|
| -// you may not use this file except in compliance with the License.
|
| -// You may obtain a copy of the License at
|
| -//
|
| -// http://www.apache.org/licenses/LICENSE-2.0
|
| -//
|
| -// Unless required by applicable law or agreed to in writing, software
|
| -// distributed under the License is distributed on an "AS IS" BASIS,
|
| -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| -// See the License for the specific language governing permissions and
|
| -// limitations under the License.
|
| -// ========================================================================
|
| -
|
| -#include <limits.h>
|
| -#include "omaha/base/const_addresses.h"
|
| -#include "omaha/base/constants.h"
|
| -#include "omaha/base/file.h"
|
| -#include "omaha/base/reg_key.h"
|
| -#include "omaha/base/string.h"
|
| -#include "omaha/base/system_info.h"
|
| -#include "omaha/base/time.h"
|
| -#include "omaha/base/utils.h"
|
| -#include "omaha/base/vistautil.h"
|
| -#include "omaha/common/config_manager.h"
|
| -#include "omaha/common/const_goopdate.h"
|
| -#include "omaha/testing/unit_test.h"
|
| -
|
| -namespace omaha {
|
| -
|
| -namespace {
|
| -
|
| -// OMAHA_KEY_REL == "Software\Google\Update"
|
| -#define OMAHA_KEY_REL \
|
| - _T("Software\\") SHORT_COMPANY_NAME _T("\\") PRODUCT_NAME
|
| -
|
| -
|
| -#define APP_GUID1 _T("{6762F466-8863-424f-817C-5757931F346E}")
|
| -const TCHAR* const kAppGuid1 = APP_GUID1;
|
| -const TCHAR* const kAppMachineClientStatePath1 =
|
| - _T("HKLM\\") OMAHA_KEY_REL _T("\\ClientState\\") APP_GUID1;
|
| -const TCHAR* const kAppUserClientStatePath1 =
|
| - _T("HKCU\\") OMAHA_KEY_REL _T("\\ClientState\\") APP_GUID1;
|
| -const TCHAR* const kAppMachineClientStateMediumPath1 =
|
| - _T("HKLM\\") OMAHA_KEY_REL _T("\\ClientStateMedium\\") APP_GUID1;
|
| -
|
| -#define APP_GUID2 _T("{8A0FDD16-D4B7-4167-893F-1386F2A2F0FB}")
|
| -const TCHAR* const kAppGuid2 = APP_GUID2;
|
| -const TCHAR* const kAppMachineClientStatePath2 =
|
| - _T("HKLM\\") OMAHA_KEY_REL _T("\\ClientState\\") APP_GUID2;
|
| -const TCHAR* const kAppUserClientStatePath2 =
|
| - _T("HKCU\\") OMAHA_KEY_REL _T("\\ClientState\\") APP_GUID2;
|
| -
|
| -const TCHAR* const kPolicyKey =
|
| - _T("HKLM\\Software\\Policies\\")
|
| - SHORT_COMPANY_NAME _T("\\") PRODUCT_NAME _T("\\");
|
| -const TCHAR* const kInstallPolicyApp1 = _T("Install") APP_GUID1;
|
| -const TCHAR* const kInstallPolicyApp2 = _T("Install") APP_GUID2;
|
| -const TCHAR* const kUpdatePolicyApp1 = _T("Update") APP_GUID1;
|
| -const TCHAR* const kUpdatePolicyApp2 = _T("Update") APP_GUID2;
|
| -
|
| -// Helper to write policies to the registry. Eliminates ambiguity of which
|
| -// overload of SetValue to use without the need for static_cast.
|
| -HRESULT SetPolicy(const TCHAR* policy_name, DWORD value) {
|
| - return RegKey::SetValue(kPolicyKey, policy_name, value);
|
| -}
|
| -
|
| -// DeleteDirectory can fail with ERROR_PATH_NOT_FOUND if the parent directory
|
| -// does not exist. Consider this a success for testing purposes.
|
| -HRESULT DeleteTestDirectory(const TCHAR* dir) {
|
| - HRESULT hr = DeleteDirectory(dir);
|
| - if (hr == HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND)) {
|
| - return S_OK;
|
| - }
|
| - return hr;
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -class ConfigManagerNoOverrideTest : public testing::Test {
|
| - protected:
|
| - ConfigManagerNoOverrideTest()
|
| - : cm_(ConfigManager::Instance()) {
|
| - }
|
| -
|
| - bool CanInstallApp(const TCHAR* guid) {
|
| - return cm_->CanInstallApp(StringToGuid(guid));
|
| - }
|
| -
|
| - bool CanUpdateApp(const TCHAR* guid, bool is_manual) {
|
| - return cm_->CanUpdateApp(StringToGuid(guid), is_manual);
|
| - }
|
| -
|
| - ConfigManager* cm_;
|
| -};
|
| -
|
| -class ConfigManagerTest : public ConfigManagerNoOverrideTest {
|
| - protected:
|
| - ConfigManagerTest()
|
| - : hive_override_key_name_(kRegistryHiveOverrideRoot) {
|
| - }
|
| -
|
| - virtual void SetUp() {
|
| - RegKey::DeleteKey(hive_override_key_name_, true);
|
| - OverrideRegistryHives(hive_override_key_name_);
|
| - }
|
| -
|
| - virtual void TearDown() {
|
| - RestoreRegistryHives();
|
| - EXPECT_SUCCEEDED(RegKey::DeleteKey(hive_override_key_name_, true));
|
| - }
|
| -
|
| - void CanCollectStatsHelper(bool is_machine);
|
| - void CanCollectStatsIgnoresOppositeHiveHelper(bool is_machine);
|
| - HRESULT SetFirstInstallTime(bool is_machine, DWORD time);
|
| - HRESULT DeleteFirstInstallTime(bool is_machine);
|
| - HRESULT SetUpdateTime(bool is_machine, DWORD time);
|
| - HRESULT DeleteUpdateTime(bool is_machine);
|
| -
|
| - CString hive_override_key_name_;
|
| -};
|
| -
|
| -void ConfigManagerTest::CanCollectStatsHelper(bool is_machine) {
|
| - const TCHAR* app1_state_key_name = is_machine ? kAppMachineClientStatePath1 :
|
| - kAppUserClientStatePath1;
|
| -
|
| - EXPECT_FALSE(cm_->CanCollectStats(is_machine));
|
| -
|
| - // Test the 'UsageStats' override.
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueForceUsageStats,
|
| - _T("")));
|
| - EXPECT_TRUE(cm_->CanCollectStats(is_machine));
|
| - EXPECT_SUCCEEDED(RegKey::DeleteValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueForceUsageStats));
|
| -
|
| - DWORD val = 1;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(app1_state_key_name,
|
| - _T("usagestats"),
|
| - val));
|
| - EXPECT_TRUE(cm_->CanCollectStats(is_machine));
|
| -
|
| - val = 2; // invalid value
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(app1_state_key_name,
|
| - _T("usagestats"),
|
| - val));
|
| - EXPECT_FALSE(cm_->CanCollectStats(is_machine));
|
| -
|
| - val = 0;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(app1_state_key_name,
|
| - _T("usagestats"),
|
| - val));
|
| - EXPECT_FALSE(cm_->CanCollectStats(is_machine));
|
| -
|
| - // One 0 and one 1 results in true. The alphabetical order of the GUIDs is
|
| - // important assuming GetSubkeyNameAt returns subkeys in alphabetical order.
|
| - const TCHAR* app2_state_key_name = is_machine ? kAppMachineClientStatePath2 :
|
| - kAppUserClientStatePath2;
|
| - val = 1;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(app2_state_key_name,
|
| - _T("usagestats"),
|
| - val));
|
| - EXPECT_TRUE(cm_->CanCollectStats(is_machine));
|
| -}
|
| -
|
| -void ConfigManagerTest::CanCollectStatsIgnoresOppositeHiveHelper(
|
| - bool is_machine) {
|
| - const TCHAR* app1_state_key_name = is_machine ? kAppMachineClientStatePath1 :
|
| - kAppUserClientStatePath1;
|
| -
|
| - EXPECT_FALSE(cm_->CanCollectStats(is_machine));
|
| -
|
| - DWORD val = 1;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(app1_state_key_name,
|
| - _T("usagestats"),
|
| - val));
|
| - EXPECT_TRUE(cm_->CanCollectStats(is_machine));
|
| - EXPECT_FALSE(cm_->CanCollectStats(!is_machine));
|
| -}
|
| -
|
| -HRESULT ConfigManagerTest::SetFirstInstallTime(bool is_machine, DWORD time) {
|
| - return RegKey::SetValue(cm_->registry_client_state_goopdate(is_machine),
|
| - kRegValueInstallTimeSec,
|
| - time);
|
| -}
|
| -
|
| -HRESULT ConfigManagerTest::DeleteFirstInstallTime(bool is_machine) {
|
| - if (!RegKey::HasValue(cm_->registry_client_state_goopdate(is_machine),
|
| - kRegValueInstallTimeSec)) {
|
| - return S_OK;
|
| - }
|
| -
|
| - return RegKey::DeleteValue(cm_->registry_client_state_goopdate(is_machine),
|
| - kRegValueInstallTimeSec);
|
| -}
|
| -
|
| -HRESULT ConfigManagerTest::SetUpdateTime(bool is_machine, DWORD time) {
|
| - return RegKey::SetValue(cm_->registry_client_state_goopdate(is_machine),
|
| - kRegValueLastUpdateTimeSec,
|
| - time);
|
| -}
|
| -
|
| -HRESULT ConfigManagerTest::DeleteUpdateTime(bool is_machine) {
|
| - if (!RegKey::HasValue(cm_->registry_client_state_goopdate(is_machine),
|
| - kRegValueLastUpdateTimeSec)) {
|
| - return S_OK;
|
| - }
|
| -
|
| - return RegKey::DeleteValue(cm_->registry_client_state_goopdate(is_machine),
|
| - kRegValueLastUpdateTimeSec);
|
| -}
|
| -
|
| -TEST_F(ConfigManagerNoOverrideTest, RegistryKeys) {
|
| - EXPECT_STREQ(_T("HKCU\\") OMAHA_KEY_REL _T("\\Clients\\"),
|
| - cm_->user_registry_clients());
|
| - EXPECT_STREQ(_T("HKLM\\") OMAHA_KEY_REL _T("\\Clients\\"),
|
| - cm_->machine_registry_clients());
|
| - EXPECT_STREQ(_T("HKCU\\") OMAHA_KEY_REL _T("\\Clients\\"),
|
| - cm_->registry_clients(false));
|
| - EXPECT_STREQ(_T("HKLM\\") OMAHA_KEY_REL _T("\\Clients\\"),
|
| - cm_->registry_clients(true));
|
| -
|
| - EXPECT_STREQ(_T("HKCU\\") OMAHA_KEY_REL _T("\\Clients\\") GOOPDATE_APP_ID,
|
| - cm_->user_registry_clients_goopdate());
|
| - EXPECT_STREQ(_T("HKLM\\") OMAHA_KEY_REL _T("\\Clients\\") GOOPDATE_APP_ID,
|
| - cm_->machine_registry_clients_goopdate());
|
| - EXPECT_STREQ(_T("HKCU\\") OMAHA_KEY_REL _T("\\Clients\\") GOOPDATE_APP_ID,
|
| - cm_->registry_clients_goopdate(false));
|
| - EXPECT_STREQ(_T("HKLM\\") OMAHA_KEY_REL _T("\\Clients\\") GOOPDATE_APP_ID,
|
| - cm_->registry_clients_goopdate(true));
|
| -
|
| - EXPECT_STREQ(_T("HKCU\\") OMAHA_KEY_REL _T("\\ClientState\\"),
|
| - cm_->user_registry_client_state());
|
| - EXPECT_STREQ(_T("HKLM\\") OMAHA_KEY_REL _T("\\ClientState\\"),
|
| - cm_->machine_registry_client_state());
|
| - EXPECT_STREQ(_T("HKCU\\") OMAHA_KEY_REL _T("\\ClientState\\"),
|
| - cm_->registry_client_state(false));
|
| - EXPECT_STREQ(_T("HKLM\\") OMAHA_KEY_REL _T("\\ClientState\\"),
|
| - cm_->registry_client_state(true));
|
| -
|
| - EXPECT_STREQ(_T("HKCU\\") OMAHA_KEY_REL _T("\\ClientState\\") GOOPDATE_APP_ID,
|
| - cm_->user_registry_client_state_goopdate());
|
| - EXPECT_STREQ(_T("HKLM\\") OMAHA_KEY_REL _T("\\ClientState\\") GOOPDATE_APP_ID,
|
| - cm_->machine_registry_client_state_goopdate());
|
| - EXPECT_STREQ(_T("HKCU\\") OMAHA_KEY_REL _T("\\ClientState\\") GOOPDATE_APP_ID,
|
| - cm_->registry_client_state_goopdate(false));
|
| - EXPECT_STREQ(_T("HKLM\\") OMAHA_KEY_REL _T("\\ClientState\\") GOOPDATE_APP_ID,
|
| - cm_->registry_client_state_goopdate(true));
|
| -
|
| - EXPECT_STREQ(_T("HKLM\\") OMAHA_KEY_REL _T("\\ClientStateMedium\\"),
|
| - cm_->machine_registry_client_state_medium());
|
| -
|
| - EXPECT_STREQ(_T("HKCU\\") OMAHA_KEY_REL _T("\\"),
|
| - cm_->user_registry_update());
|
| - EXPECT_STREQ(_T("HKLM\\") OMAHA_KEY_REL _T("\\"),
|
| - cm_->machine_registry_update());
|
| - EXPECT_STREQ(_T("HKCU\\") OMAHA_KEY_REL _T("\\"),
|
| - cm_->registry_update(false));
|
| - EXPECT_STREQ(_T("HKLM\\") OMAHA_KEY_REL _T("\\"),
|
| - cm_->registry_update(true));
|
| -
|
| - EXPECT_STREQ(_T("HKCU\\Software\\") COMPANY_NAME_IDENTIFIER _T("\\"),
|
| - cm_->user_registry_google());
|
| - EXPECT_STREQ(_T("HKLM\\Software\\") COMPANY_NAME_IDENTIFIER _T("\\"),
|
| - cm_->machine_registry_google());
|
| - EXPECT_STREQ(_T("HKCU\\Software\\") COMPANY_NAME_IDENTIFIER _T("\\"),
|
| - cm_->registry_google(false));
|
| - EXPECT_STREQ(_T("HKLM\\Software\\") COMPANY_NAME_IDENTIFIER _T("\\"),
|
| - cm_->registry_google(true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerNoOverrideTest, GetUserCrashReportsDir) {
|
| - const CString expected_path = GetGoogleUserPath() + _T("CrashReports");
|
| - EXPECT_SUCCEEDED(DeleteTestDirectory(expected_path));
|
| - EXPECT_STREQ(expected_path, cm_->GetUserCrashReportsDir());
|
| - EXPECT_TRUE(File::Exists(expected_path));
|
| -}
|
| -
|
| -// Should run before the subdirectory tests to ensure the directory is created.
|
| -TEST_F(ConfigManagerNoOverrideTest, GetUserGoopdateInstallDir) {
|
| - const CString expected_path = GetGoogleUserPath() + _T("Update");
|
| - EXPECT_STREQ(expected_path, cm_->GetUserGoopdateInstallDir());
|
| - EXPECT_TRUE(File::Exists(expected_path));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerNoOverrideTest, GetUserDownloadStorageDir) {
|
| - const CString expected_path = GetGoogleUpdateUserPath() + _T("Download");
|
| - EXPECT_SUCCEEDED(DeleteTestDirectory(expected_path));
|
| - EXPECT_STREQ(expected_path, cm_->GetUserDownloadStorageDir());
|
| - EXPECT_TRUE(File::Exists(expected_path));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerNoOverrideTest, GetUserInstallWorkingDir) {
|
| - const CString expected_path = GetGoogleUpdateUserPath() + _T("Install");
|
| - EXPECT_SUCCEEDED(DeleteTestDirectory(expected_path));
|
| - EXPECT_STREQ(expected_path, cm_->GetUserInstallWorkingDir());
|
| - EXPECT_TRUE(File::Exists(expected_path));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerNoOverrideTest, GetUserOfflineStorageDir) {
|
| - const CString expected_path = GetGoogleUpdateUserPath() + _T("Offline");
|
| - EXPECT_SUCCEEDED(DeleteTestDirectory(expected_path));
|
| - EXPECT_STREQ(expected_path, cm_->GetUserOfflineStorageDir());
|
| - EXPECT_TRUE(File::Exists(expected_path));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerNoOverrideTest, IsRunningFromUserGoopdateInstallDir) {
|
| - EXPECT_FALSE(cm_->IsRunningFromUserGoopdateInstallDir());
|
| -}
|
| -
|
| -TEST_F(ConfigManagerNoOverrideTest, GetTempDownloadDir) {
|
| - TCHAR expected_path[MAX_PATH] = {0};
|
| - ASSERT_NE(0, ::GetTempPath(MAX_PATH, expected_path));
|
| -
|
| - EXPECT_STREQ(expected_path, cm_->GetTempDownloadDir());
|
| - EXPECT_TRUE(File::Exists(expected_path));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerNoOverrideTest, GetMachineCrashReportsDir) {
|
| - CString program_files;
|
| - EXPECT_SUCCEEDED(GetFolderPath(CSIDL_PROGRAM_FILES, &program_files));
|
| - const CString expected_path =
|
| - program_files + _T("\\") + SHORT_COMPANY_NAME + _T("\\CrashReports");
|
| - EXPECT_SUCCEEDED(DeleteTestDirectory(expected_path));
|
| - EXPECT_STREQ(expected_path, cm_->GetMachineCrashReportsDir());
|
| - EXPECT_TRUE(File::Exists(expected_path) || !vista_util::IsUserAdmin());
|
| -}
|
| -
|
| -// Should run before the subdirectory tests to ensure the directory is created.
|
| -TEST_F(ConfigManagerNoOverrideTest, GetMachineGoopdateInstallDir) {
|
| - CString expected_path = GetGoogleUpdateMachinePath();
|
| - EXPECT_STREQ(expected_path, cm_->GetMachineGoopdateInstallDir());
|
| - EXPECT_TRUE(File::Exists(expected_path) || !vista_util::IsUserAdmin());
|
| -}
|
| -
|
| -TEST_F(ConfigManagerNoOverrideTest, GetMachineSecureDownloadStorageDir) {
|
| - CString expected_path = GetGoogleUpdateMachinePath() + _T("\\Download");
|
| - EXPECT_SUCCEEDED(DeleteTestDirectory(expected_path));
|
| - EXPECT_STREQ(expected_path, cm_->GetMachineSecureDownloadStorageDir());
|
| - EXPECT_TRUE(File::Exists(expected_path) || !vista_util::IsUserAdmin());
|
| -}
|
| -
|
| -TEST_F(ConfigManagerNoOverrideTest, GetMachineInstallWorkingDir) {
|
| - CString expected_path = GetGoogleUpdateMachinePath() + _T("\\Install");
|
| - EXPECT_SUCCEEDED(DeleteTestDirectory(expected_path));
|
| - EXPECT_STREQ(expected_path, cm_->GetMachineInstallWorkingDir());
|
| - EXPECT_TRUE(File::Exists(expected_path) || !vista_util::IsUserAdmin());
|
| -}
|
| -
|
| -TEST_F(ConfigManagerNoOverrideTest, GetMachineSecureOfflineStorageDir) {
|
| - CString expected_path = GetGoogleUpdateMachinePath() + _T("\\Offline");
|
| - EXPECT_SUCCEEDED(DeleteTestDirectory(expected_path));
|
| - EXPECT_STREQ(expected_path, cm_->GetMachineSecureOfflineStorageDir());
|
| - EXPECT_TRUE(File::Exists(expected_path) || !vista_util::IsUserAdmin());
|
| -}
|
| -
|
| -TEST_F(ConfigManagerNoOverrideTest, IsRunningFromMachineGoopdateInstallDir) {
|
| - EXPECT_FALSE(cm_->IsRunningFromMachineGoopdateInstallDir());
|
| -}
|
| -
|
| -// Tests the GetUpdateCheckUrl override.
|
| -TEST_F(ConfigManagerTest, GetUpdateCheckUrl) {
|
| - CString url;
|
| - EXPECT_SUCCEEDED(cm_->GetUpdateCheckUrl(&url));
|
| - EXPECT_STREQ(url, kUrlUpdateCheck);
|
| -
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueNameUrl,
|
| - _T("http://updatecheck/")));
|
| - url.Empty();
|
| - EXPECT_SUCCEEDED(cm_->GetUpdateCheckUrl(&url));
|
| - EXPECT_STREQ(url, _T("http://updatecheck/"));
|
| -}
|
| -
|
| -// Tests the GetPingUrl override.
|
| -TEST_F(ConfigManagerTest, GetPingUrl) {
|
| - CString url;
|
| - EXPECT_SUCCEEDED(cm_->GetPingUrl(&url));
|
| - EXPECT_STREQ(url, kUrlPing);
|
| -
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueNamePingUrl,
|
| - _T("http://ping/")));
|
| - url.Empty();
|
| - EXPECT_SUCCEEDED(cm_->GetPingUrl(&url));
|
| - EXPECT_STREQ(url, _T("http://ping/"));
|
| -}
|
| -
|
| -// Tests the GetCrashReportUrl override.
|
| -TEST_F(ConfigManagerTest, GetCrashReportUrl) {
|
| - CString url;
|
| - EXPECT_SUCCEEDED(cm_->GetCrashReportUrl(&url));
|
| - EXPECT_STREQ(url, kUrlCrashReport);
|
| -
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueNameCrashReportUrl,
|
| - _T("http://crashreport/")));
|
| - url.Empty();
|
| - EXPECT_SUCCEEDED(cm_->GetCrashReportUrl(&url));
|
| - EXPECT_STREQ(url, _T("http://crashreport/"));
|
| -}
|
| -
|
| -// Tests the GetMoreInfoUrl override.
|
| -TEST_F(ConfigManagerTest, GetMoreInfoUrl) {
|
| - CString url;
|
| - EXPECT_SUCCEEDED(cm_->GetMoreInfoUrl(&url));
|
| - EXPECT_STREQ(url, kUrlMoreInfo);
|
| -
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueNameGetMoreInfoUrl,
|
| - _T("http://moreinfo/")));
|
| - url.Empty();
|
| - EXPECT_SUCCEEDED(cm_->GetMoreInfoUrl(&url));
|
| - EXPECT_STREQ(url, _T("http://moreinfo/"));
|
| -}
|
| -
|
| -// Tests the GetUsageStatsReportUrl override.
|
| -TEST_F(ConfigManagerTest, GetUsageStatsReportUrl) {
|
| - CString url;
|
| - EXPECT_SUCCEEDED(cm_->GetUsageStatsReportUrl(&url));
|
| - EXPECT_STREQ(url, kUrlUsageStatsReport);
|
| -
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueNameUsageStatsReportUrl,
|
| - _T("http://usagestatsreport/")));
|
| - url.Empty();
|
| - EXPECT_SUCCEEDED(cm_->GetUsageStatsReportUrl(&url));
|
| - EXPECT_STREQ(url, _T("http://usagestatsreport/"));
|
| -}
|
| -
|
| -// Tests LastCheckPeriodSec override.
|
| -TEST_F(ConfigManagerTest, GetLastCheckPeriodSec_Default) {
|
| - bool is_overridden = true;
|
| - if (cm_->IsInternalUser()) {
|
| - EXPECT_EQ(kLastCheckPeriodInternalUserSec,
|
| - cm_->GetLastCheckPeriodSec(&is_overridden));
|
| - } else {
|
| - EXPECT_EQ(kLastCheckPeriodSec, cm_->GetLastCheckPeriodSec(&is_overridden));
|
| - }
|
| - EXPECT_FALSE(is_overridden);
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, GetLastCheckPeriodSec_UpdateDevOverride) {
|
| - // Zero is a special value meaning disabled.
|
| - DWORD val = 0;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueLastCheckPeriodSec,
|
| - val));
|
| - bool is_overridden = false;
|
| - EXPECT_EQ(0, cm_->GetLastCheckPeriodSec(&is_overridden));
|
| - EXPECT_TRUE(is_overridden);
|
| -
|
| - val = kMinLastCheckPeriodSec - 1;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueLastCheckPeriodSec,
|
| - val));
|
| - is_overridden = false;
|
| - EXPECT_EQ(kMinLastCheckPeriodSec, cm_->GetLastCheckPeriodSec(&is_overridden));
|
| - EXPECT_TRUE(is_overridden);
|
| -
|
| - val = INT_MAX + static_cast<uint32>(1);
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueLastCheckPeriodSec,
|
| - val));
|
| - is_overridden = false;
|
| - EXPECT_EQ(INT_MAX, cm_->GetLastCheckPeriodSec(&is_overridden));
|
| - EXPECT_TRUE(is_overridden);
|
| -
|
| - val = 1000;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueLastCheckPeriodSec,
|
| - val));
|
| - is_overridden = false;
|
| - EXPECT_EQ(1000, cm_->GetLastCheckPeriodSec(&is_overridden));
|
| - EXPECT_TRUE(is_overridden);
|
| -
|
| - EXPECT_SUCCEEDED(RegKey::DeleteValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueLastCheckPeriodSec));
|
| - is_overridden = true;
|
| - if (cm_->IsInternalUser()) {
|
| - EXPECT_EQ(kLastCheckPeriodInternalUserSec,
|
| - cm_->GetLastCheckPeriodSec(&is_overridden));
|
| - } else {
|
| - EXPECT_EQ(kLastCheckPeriodSec, cm_->GetLastCheckPeriodSec(&is_overridden));
|
| - }
|
| - EXPECT_FALSE(is_overridden);
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, GetLastCheckPeriodSec_GroupPolicyOverride) {
|
| - const DWORD kOverrideMinutes = 16000;
|
| - const DWORD kExpectedSeconds = kOverrideMinutes * 60;
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("AutoUpdateCheckPeriodMinutes"),
|
| - kOverrideMinutes));
|
| - bool is_overridden = false;
|
| - EXPECT_EQ(kExpectedSeconds, cm_->GetLastCheckPeriodSec(&is_overridden));
|
| - EXPECT_TRUE(is_overridden);
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, GetLastCheckPeriodSec_GroupPolicyOverride_TooLow) {
|
| - const DWORD kOverrideMinutes = 1;
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("AutoUpdateCheckPeriodMinutes"),
|
| - kOverrideMinutes));
|
| - bool is_overridden = false;
|
| - EXPECT_EQ(kMinLastCheckPeriodSec, cm_->GetLastCheckPeriodSec(&is_overridden));
|
| - EXPECT_TRUE(is_overridden);
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, GetLastCheckPeriodSec_GroupPolicyOverride_Zero) {
|
| - const DWORD kOverrideMinutes = 0;
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("AutoUpdateCheckPeriodMinutes"),
|
| - kOverrideMinutes));
|
| - bool is_overridden = false;
|
| - EXPECT_EQ(0, cm_->GetLastCheckPeriodSec(&is_overridden));
|
| - EXPECT_TRUE(is_overridden);
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest,
|
| - GetLastCheckPeriodSec_GroupPolicyOverride_Overflow_SecondsConversion) {
|
| - const DWORD kOverrideMinutes = UINT_MAX;
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("AutoUpdateCheckPeriodMinutes"),
|
| - kOverrideMinutes));
|
| - bool is_overridden = false;
|
| - EXPECT_EQ(INT_MAX, cm_->GetLastCheckPeriodSec(&is_overridden));
|
| - EXPECT_TRUE(is_overridden);
|
| -
|
| - const DWORD kOverrideMinutes2 = INT_MAX + static_cast<uint32>(1);
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("AutoUpdateCheckPeriodMinutes"),
|
| - kOverrideMinutes2));
|
| - is_overridden = false;
|
| - EXPECT_EQ(INT_MAX, cm_->GetLastCheckPeriodSec(&is_overridden));
|
| - EXPECT_TRUE(is_overridden);
|
| -
|
| - const DWORD kOverrideMinutes3 = 0xf0000000;
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("AutoUpdateCheckPeriodMinutes"),
|
| - kOverrideMinutes3));
|
| - is_overridden = false;
|
| - EXPECT_EQ(INT_MAX, cm_->GetLastCheckPeriodSec(&is_overridden));
|
| - EXPECT_TRUE(is_overridden);
|
| -}
|
| -
|
| -// Overflow the integer but not the minutes to seconds conversion.
|
| -TEST_F(ConfigManagerTest,
|
| - GetLastCheckPeriodSec_GroupPolicyOverride_Overflow_Int) {
|
| - const DWORD kOverrideMinutes = UINT_MAX / 60;
|
| - EXPECT_GT(UINT_MAX, kOverrideMinutes);
|
| -
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("AutoUpdateCheckPeriodMinutes"),
|
| - kOverrideMinutes));
|
| - bool is_overridden = false;
|
| - EXPECT_EQ(INT_MAX, cm_->GetLastCheckPeriodSec(&is_overridden));
|
| - EXPECT_TRUE(is_overridden);
|
| -}
|
| -
|
| -// UpdateDev takes precedence over the Group Policy override.
|
| -TEST_F(ConfigManagerTest,
|
| - GetLastCheckPeriodSec_GroupPolicyAndUpdateDevOverrides) {
|
| - const DWORD kGroupPolicyOverrideMinutes = 100;
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("AutoUpdateCheckPeriodMinutes"),
|
| - kGroupPolicyOverrideMinutes));
|
| - const DWORD kUpdateDevOverrideSeconds = 70;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueLastCheckPeriodSec,
|
| - kUpdateDevOverrideSeconds));
|
| -
|
| - bool is_overridden = false;
|
| - EXPECT_EQ(kUpdateDevOverrideSeconds,
|
| - cm_->GetLastCheckPeriodSec(&is_overridden));
|
| - EXPECT_TRUE(is_overridden);
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanCollectStats_LegacyLocationNewName) {
|
| - DWORD val = 1;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE,
|
| - _T("usagestats"),
|
| - val));
|
| - EXPECT_FALSE(cm_->CanCollectStats(true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanCollectStats_MachineOnly) {
|
| - CanCollectStatsHelper(true);
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanCollectStats_UserOnly) {
|
| - CanCollectStatsHelper(false);
|
| -}
|
| -
|
| -// This tests that the legacy conversion is honored.
|
| -TEST_F(ConfigManagerTest, CanCollectStats_GoopdateGuidIsChecked) {
|
| - EXPECT_FALSE(cm_->CanCollectStats(true));
|
| -
|
| - DWORD val = 1;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_CLIENT_STATE_GOOPDATE,
|
| - _T("usagestats"),
|
| - val));
|
| - EXPECT_TRUE(cm_->CanCollectStats(true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanCollectStats_MachineIgnoresUser) {
|
| - CanCollectStatsIgnoresOppositeHiveHelper(true);
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanCollectStats_UserIgnoresMachine) {
|
| - CanCollectStatsIgnoresOppositeHiveHelper(false);
|
| -}
|
| -// Unfortunately, the app's ClientStateMedium key is not checked if there is no
|
| -// corresponding ClientState key.
|
| -TEST_F(ConfigManagerTest,
|
| - CanCollectStats_Machine_ClientStateMediumOnly_AppClientStateKeyMissing) {
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStateMediumPath1,
|
| - _T("usagestats"),
|
| - static_cast<DWORD>(1)));
|
| - EXPECT_FALSE(cm_->CanCollectStats(true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest,
|
| - CanCollectStats_Machine_ClientStateMediumOnly_AppClientStateKeyExists) {
|
| - EXPECT_SUCCEEDED(RegKey::CreateKey(kAppMachineClientStatePath1));
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStateMediumPath1,
|
| - _T("usagestats"),
|
| - static_cast<DWORD>(1)));
|
| - EXPECT_TRUE(cm_->CanCollectStats(true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest,
|
| - CanCollectStats_Machine_ClientStateMediumInvalid) {
|
| - EXPECT_SUCCEEDED(RegKey::CreateKey(kAppMachineClientStatePath1));
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStateMediumPath1,
|
| - _T("usagestats"),
|
| - static_cast<DWORD>(2)));
|
| - EXPECT_FALSE(cm_->CanCollectStats(true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanCollectStats_User_ClientStateMediumOnly) {
|
| - EXPECT_SUCCEEDED(RegKey::CreateKey(kAppUserClientStatePath1));
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(
|
| - _T("HKCU\\") OMAHA_KEY_REL _T("\\ClientStateMedium\\") APP_GUID1,
|
| - _T("usagestats"),
|
| - static_cast<DWORD>(1)));
|
| - EXPECT_FALSE(cm_->CanCollectStats(false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest,
|
| - CanCollectStats_Machine_ClientStateZeroClientStateMediumOne) {
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStatePath1,
|
| - _T("usagestats"),
|
| - static_cast<DWORD>(0)));
|
| - EXPECT_FALSE(cm_->CanCollectStats(true));
|
| -
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStateMediumPath1,
|
| - _T("usagestats"),
|
| - static_cast<DWORD>(1)));
|
| - EXPECT_TRUE(cm_->CanCollectStats(true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest,
|
| - CanCollectStats_Machine_ClientStateOneClientStateMediumZero) {
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStatePath1,
|
| - _T("usagestats"),
|
| - static_cast<DWORD>(1)));
|
| - EXPECT_TRUE(cm_->CanCollectStats(true));
|
| -
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStateMediumPath1,
|
| - _T("usagestats"),
|
| - static_cast<DWORD>(0)));
|
| - EXPECT_FALSE(cm_->CanCollectStats(true));
|
| -}
|
| -
|
| -// Tests OverInstall override.
|
| -TEST_F(ConfigManagerTest, CanOverInstall) {
|
| - EXPECT_EQ(cm_->CanOverInstall(), !OFFICIAL_BUILD);
|
| -
|
| - DWORD val = 1;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueNameOverInstall,
|
| - val));
|
| -#ifdef DEBUG
|
| - EXPECT_TRUE(cm_->CanOverInstall());
|
| -#else
|
| - EXPECT_EQ(!OFFICIAL_BUILD, cm_->CanOverInstall());
|
| -#endif
|
| -
|
| - val = 0;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueNameOverInstall,
|
| - val));
|
| -#ifdef DEBUG
|
| - EXPECT_FALSE(cm_->CanOverInstall());
|
| -#else
|
| - EXPECT_EQ(!OFFICIAL_BUILD, cm_->CanOverInstall());
|
| -#endif
|
| -}
|
| -
|
| -// Tests AuCheckPeriodMs override.
|
| -TEST_F(ConfigManagerTest, GetAutoUpdateTimerIntervalMs) {
|
| - EXPECT_EQ(cm_->IsInternalUser() ? kAUCheckPeriodInternalUserMs :
|
| - kAUCheckPeriodMs,
|
| - cm_->GetAutoUpdateTimerIntervalMs());
|
| -
|
| - DWORD val = 0;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueAuCheckPeriodMs,
|
| - val));
|
| - EXPECT_EQ(kMinAUCheckPeriodMs, cm_->GetAutoUpdateTimerIntervalMs());
|
| -
|
| - val = kMinAUCheckPeriodMs - 1;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueAuCheckPeriodMs,
|
| - val));
|
| - EXPECT_EQ(kMinAUCheckPeriodMs, cm_->GetAutoUpdateTimerIntervalMs());
|
| -
|
| - val = 30000;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueAuCheckPeriodMs,
|
| - val));
|
| - EXPECT_EQ(val, cm_->GetAutoUpdateTimerIntervalMs());
|
| -
|
| - val = INT_MAX;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueAuCheckPeriodMs,
|
| - val));
|
| - EXPECT_EQ(val, cm_->GetAutoUpdateTimerIntervalMs());
|
| -
|
| - // Tests overflow with large positive numbers.
|
| - val = INT_MAX;
|
| - ++val;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueAuCheckPeriodMs,
|
| - val));
|
| - EXPECT_EQ(INT_MAX, cm_->GetAutoUpdateTimerIntervalMs());
|
| -
|
| - val = UINT_MAX;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueAuCheckPeriodMs,
|
| - val));
|
| - EXPECT_EQ(INT_MAX, cm_->GetAutoUpdateTimerIntervalMs());
|
| -}
|
| -
|
| -// Tests CrCheckPeriodMs override.
|
| -TEST_F(ConfigManagerTest, GetCodeRedTimerIntervalMs) {
|
| - EXPECT_EQ(kCodeRedCheckPeriodMs, cm_->GetCodeRedTimerIntervalMs());
|
| -
|
| - DWORD val = 0;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueCrCheckPeriodMs,
|
| - val));
|
| - EXPECT_EQ(kMinCodeRedCheckPeriodMs, cm_->GetCodeRedTimerIntervalMs());
|
| -
|
| - val = kMinCodeRedCheckPeriodMs - 1;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueCrCheckPeriodMs,
|
| - val));
|
| - EXPECT_EQ(kMinCodeRedCheckPeriodMs, cm_->GetCodeRedTimerIntervalMs());
|
| -
|
| - val = 60000;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueCrCheckPeriodMs,
|
| - val));
|
| - EXPECT_EQ(val, cm_->GetCodeRedTimerIntervalMs());
|
| -
|
| - val = INT_MAX;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueCrCheckPeriodMs,
|
| - val));
|
| - EXPECT_EQ(val, cm_->GetCodeRedTimerIntervalMs());
|
| -
|
| - // Tests overflow with large positive numbers.
|
| - val = INT_MAX;
|
| - ++val;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueCrCheckPeriodMs,
|
| - val));
|
| - EXPECT_EQ(INT_MAX, cm_->GetCodeRedTimerIntervalMs());
|
| -
|
| - val = UINT_MAX;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueCrCheckPeriodMs,
|
| - val));
|
| - EXPECT_EQ(INT_MAX, cm_->GetCodeRedTimerIntervalMs());
|
| -}
|
| -
|
| -// Tests CanLogEvents override.
|
| -TEST_F(ConfigManagerTest, CanLogEvents_WithOutOverride) {
|
| - EXPECT_FALSE(cm_->CanLogEvents(EVENTLOG_SUCCESS));
|
| - EXPECT_TRUE(cm_->CanLogEvents(EVENTLOG_ERROR_TYPE));
|
| - EXPECT_TRUE(cm_->CanLogEvents(EVENTLOG_WARNING_TYPE));
|
| - EXPECT_FALSE(cm_->CanLogEvents(EVENTLOG_INFORMATION_TYPE));
|
| - EXPECT_FALSE(cm_->CanLogEvents(EVENTLOG_AUDIT_SUCCESS));
|
| - EXPECT_FALSE(cm_->CanLogEvents(EVENTLOG_AUDIT_FAILURE));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanLogEvents) {
|
| - EXPECT_FALSE(cm_->CanLogEvents(EVENTLOG_INFORMATION_TYPE));
|
| -
|
| - DWORD val = LOG_EVENT_LEVEL_ALL;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueEventLogLevel,
|
| - val));
|
| - EXPECT_TRUE(cm_->CanLogEvents(EVENTLOG_SUCCESS));
|
| - EXPECT_TRUE(cm_->CanLogEvents(EVENTLOG_ERROR_TYPE));
|
| - EXPECT_TRUE(cm_->CanLogEvents(EVENTLOG_WARNING_TYPE));
|
| - EXPECT_TRUE(cm_->CanLogEvents(EVENTLOG_INFORMATION_TYPE));
|
| - EXPECT_TRUE(cm_->CanLogEvents(EVENTLOG_AUDIT_SUCCESS));
|
| - EXPECT_TRUE(cm_->CanLogEvents(EVENTLOG_AUDIT_FAILURE));
|
| -
|
| - val = LOG_EVENT_LEVEL_WARN_AND_ERROR;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueEventLogLevel,
|
| - val));
|
| - EXPECT_FALSE(cm_->CanLogEvents(EVENTLOG_SUCCESS));
|
| - EXPECT_TRUE(cm_->CanLogEvents(EVENTLOG_ERROR_TYPE));
|
| - EXPECT_TRUE(cm_->CanLogEvents(EVENTLOG_WARNING_TYPE));
|
| - EXPECT_FALSE(cm_->CanLogEvents(EVENTLOG_INFORMATION_TYPE));
|
| - EXPECT_FALSE(cm_->CanLogEvents(EVENTLOG_AUDIT_SUCCESS));
|
| - EXPECT_FALSE(cm_->CanLogEvents(EVENTLOG_AUDIT_FAILURE));
|
| -}
|
| -
|
| -// Tests GetTestSource override.
|
| -TEST_F(ConfigManagerTest, GetTestSource_Dev) {
|
| - CString expected_value;
|
| -#if DEBUG || !OFFICIAL_BUILD
|
| - expected_value = kRegValueTestSourceAuto;
|
| -#endif
|
| -
|
| - CString test_source = cm_->GetTestSource();
|
| - EXPECT_STREQ(expected_value, test_source);
|
| - ASSERT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueTestSource,
|
| - _T("dev")));
|
| - test_source = cm_->GetTestSource();
|
| - EXPECT_STREQ(_T("dev"), test_source);
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, GetTestSource_EmptyRegKey) {
|
| - CString expected_value;
|
| -
|
| -#if DEBUG || !OFFICIAL_BUILD
|
| - expected_value = kRegValueTestSourceAuto;
|
| -#endif
|
| -
|
| - CString test_source = cm_->GetTestSource();
|
| - EXPECT_STREQ(expected_value, test_source);
|
| - ASSERT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueTestSource,
|
| - _T("")));
|
| - test_source = cm_->GetTestSource();
|
| - EXPECT_STREQ(kRegValueTestSourceAuto, test_source);
|
| -}
|
| -
|
| -//
|
| -// CanUseNetwork tests.
|
| -//
|
| -
|
| -// Covers UpdateEulaAccepted case.
|
| -TEST_F(ConfigManagerTest, CanUseNetwork_Machine_Normal) {
|
| - EXPECT_TRUE(cm_->CanUseNetwork(true));
|
| -}
|
| -
|
| -// Covers UpdateEulaAccepted case.
|
| -TEST_F(ConfigManagerTest, CanUseNetwork_User_Normal) {
|
| - EXPECT_TRUE(cm_->CanUseNetwork(false));
|
| -}
|
| -
|
| -// These cover the not OEM install mode cases.
|
| -TEST_F(ConfigManagerTest, CanUseNetwork_Machine_UpdateEulaNotAccepted) {
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE,
|
| - _T("eulaaccepted"),
|
| - static_cast<DWORD>(0)));
|
| - EXPECT_FALSE(cm_->CanUseNetwork(true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest,
|
| - CanUseNetwork_Machine_UpdateEulaNotAccepted_AppEulaAccepted) {
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE,
|
| - _T("eulaaccepted"),
|
| - static_cast<DWORD>(0)));
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStatePath1,
|
| - _T("eulaaccepted"),
|
| - static_cast<DWORD>(1)));
|
| - EXPECT_FALSE(cm_->CanUseNetwork(true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUseNetwork_Machine_AppEulaNotAccepted) {
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStatePath1,
|
| - _T("eulaaccepted"),
|
| - static_cast<DWORD>(0)));
|
| - EXPECT_TRUE(cm_->CanUseNetwork(true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUseNetwork_Machine_AppEulaAccepted) {
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStatePath1,
|
| - _T("eulaaccepted"),
|
| - static_cast<DWORD>(1)));
|
| - EXPECT_TRUE(cm_->CanUseNetwork(true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUseNetwork_Machine_UserUpdateEulaNotAccepted) {
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(USER_REG_UPDATE,
|
| - _T("eulaaccepted"),
|
| - static_cast<DWORD>(0)));
|
| - EXPECT_TRUE(cm_->CanUseNetwork(true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUseNetwork_User_UpdateEulaNotAccepted) {
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(USER_REG_UPDATE,
|
| - _T("eulaaccepted"),
|
| - static_cast<DWORD>(0)));
|
| - EXPECT_FALSE(cm_->CanUseNetwork(false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest,
|
| - CanUseNetwork_User_UpdateEulaNotAccepted_AppEulaAccepted) {
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(USER_REG_UPDATE,
|
| - _T("eulaaccepted"),
|
| - static_cast<DWORD>(0)));
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(kAppUserClientStatePath1,
|
| - _T("eulaaccepted"),
|
| - static_cast<DWORD>(1)));
|
| - EXPECT_FALSE(cm_->CanUseNetwork(false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUseNetwork_User_AppEulaNotAccepted) {
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(kAppUserClientStatePath1,
|
| - _T("eulaaccepted"),
|
| - static_cast<DWORD>(0)));
|
| - EXPECT_TRUE(cm_->CanUseNetwork(false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUseNetwork_User_AppEulaAccepted) {
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(kAppUserClientStatePath1,
|
| - _T("eulaaccepted"),
|
| - static_cast<DWORD>(1)));
|
| - EXPECT_TRUE(cm_->CanUseNetwork(false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUseNetwork_User_MachineUpdateEulaNotAccepted) {
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE,
|
| - _T("eulaaccepted"),
|
| - static_cast<DWORD>(0)));
|
| - EXPECT_TRUE(cm_->CanUseNetwork(false));
|
| -}
|
| -
|
| -// TODO(omaha): Figure out a way to test the result.
|
| -TEST_F(ConfigManagerTest, IsInternalUser) {
|
| - cm_->IsInternalUser();
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, IsWindowsInstalling_Normal) {
|
| - EXPECT_FALSE(cm_->IsWindowsInstalling());
|
| -}
|
| -
|
| -// While this test passes, the return value of IsWindowsInstalling() is not
|
| -// fully tested because the account is not Administrator.
|
| -TEST_F(ConfigManagerTest, IsWindowsInstalling_Installing_Vista_InvalidValues) {
|
| - if (!vista_util::IsVistaOrLater()) {
|
| - return;
|
| - }
|
| -
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(
|
| - _T("HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\State"),
|
| - _T("ImageState"),
|
| - _T("")));
|
| - EXPECT_FALSE(cm_->IsWindowsInstalling());
|
| -
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(
|
| - _T("HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\State"),
|
| - _T("ImageState"),
|
| - _T("foo")));
|
| - EXPECT_FALSE(cm_->IsWindowsInstalling());
|
| -
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(
|
| - _T("HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\State"),
|
| - _T("ImageState"),
|
| - static_cast<DWORD>(1)));
|
| - ExpectAsserts expect_asserts; // RegKey asserts because value type is wrong.
|
| - EXPECT_FALSE(cm_->IsWindowsInstalling());
|
| -}
|
| -
|
| -// TODO(omaha): This test fails because the account is not Administrator. Maybe
|
| -// just delete them if this is the final implementation of Audit Mode detection.
|
| -TEST_F(ConfigManagerTest, IsWindowsInstalling_Installing_Vista_ValidStates) {
|
| - if (!vista_util::IsVistaOrLater()) {
|
| - return;
|
| - }
|
| -
|
| - // These states return false in the original implementation.
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(
|
| - _T("HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\State"),
|
| - _T("ImageState"),
|
| - _T("IMAGE_STATE_COMPLETE")));
|
| - EXPECT_FALSE(cm_->IsWindowsInstalling());
|
| -
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(
|
| - _T("HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\State"),
|
| - _T("ImageState"),
|
| - _T("IMAGE_STATE_GENERALIZE_RESEAL_TO_OOBE")));
|
| - EXPECT_FALSE(cm_->IsWindowsInstalling());
|
| -
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(
|
| - _T("HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\State"),
|
| - _T("ImageState"),
|
| - _T("IMAGE_STATE_SPECIALIZE_RESEAL_TO_OOBE")));
|
| - EXPECT_FALSE(cm_->IsWindowsInstalling());
|
| -
|
| - // These states are specified in the original implementation.
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(
|
| - _T("HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\State"),
|
| - _T("ImageState"),
|
| - _T("IMAGE_STATE_UNDEPLOYABLE")));
|
| - EXPECT_TRUE(cm_->IsWindowsInstalling());
|
| -
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(
|
| - _T("HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\State"),
|
| - _T("ImageState"),
|
| - _T("IMAGE_STATE_GENERALIZE_RESEAL_TO_AUDIT")));
|
| - EXPECT_TRUE(cm_->IsWindowsInstalling());
|
| -
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(
|
| - _T("HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\State"),
|
| - _T("ImageState"),
|
| - _T("IMAGE_STATE_SPECIALIZE_RESEAL_TO_AUDIT")));
|
| - EXPECT_TRUE(cm_->IsWindowsInstalling());
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanInstallApp_NoGroupPolicy) {
|
| - EXPECT_TRUE(CanInstallApp(kAppGuid1));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanInstallApp_DifferentAppDisabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(kInstallPolicyApp2, 0));
|
| - EXPECT_TRUE(CanInstallApp(kAppGuid1));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanInstallApp_NoDefaultValue_AppDisabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(kInstallPolicyApp1, 0));
|
| - EXPECT_FALSE(CanInstallApp(kAppGuid1));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanInstallApp_NoDefaultValue_AppEnabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(kInstallPolicyApp1, 1));
|
| - EXPECT_TRUE(CanInstallApp(kAppGuid1));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanInstallApp_NoDefaultValue_AppInvalid) {
|
| - EXPECT_SUCCEEDED(SetPolicy(kInstallPolicyApp1, 2));
|
| - EXPECT_TRUE(CanInstallApp(kAppGuid1));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanInstallApp_DefaultDisabled_NoAppValue) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("InstallDefault"), 0));
|
| - EXPECT_FALSE(CanInstallApp(kAppGuid1));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanInstallApp_DefaultDisabled_AppDisabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("InstallDefault"), 0));
|
| - EXPECT_SUCCEEDED(SetPolicy(kInstallPolicyApp1, 0));
|
| - EXPECT_FALSE(CanInstallApp(kAppGuid1));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanInstallApp_DefaultDisabled_AppEnabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("InstallDefault"), 0));
|
| - EXPECT_SUCCEEDED(SetPolicy(kInstallPolicyApp1, 1));
|
| - EXPECT_TRUE(CanInstallApp(kAppGuid1));
|
| -}
|
| -
|
| -// Invalid value defaulting to true overrides the InstallDefault disable.
|
| -TEST_F(ConfigManagerTest, CanInstallApp_DefaultDisabled_AppInvalid) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("InstallDefault"), 0));
|
| - EXPECT_SUCCEEDED(SetPolicy(kInstallPolicyApp1, 2));
|
| - EXPECT_TRUE(CanInstallApp(kAppGuid1));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanInstallApp_DefaultEnabled_NoAppValue) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("InstallDefault"), 1));
|
| - EXPECT_TRUE(CanInstallApp(kAppGuid1));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanInstallApp_DefaultEnabled_AppDisabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("InstallDefault"), 1));
|
| - EXPECT_SUCCEEDED(SetPolicy(kInstallPolicyApp1, 0));
|
| - EXPECT_FALSE(CanInstallApp(kAppGuid1));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanInstallApp_DefaultEnabled_AppEnabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("InstallDefault"), 1));
|
| - EXPECT_SUCCEEDED(SetPolicy(kInstallPolicyApp1, 1));
|
| - EXPECT_TRUE(CanInstallApp(kAppGuid1));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanInstallApp_DefaultEnabled_AppInvalid) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("InstallDefault"), 1));
|
| - EXPECT_SUCCEEDED(SetPolicy(kInstallPolicyApp1, 2));
|
| - EXPECT_TRUE(CanInstallApp(kAppGuid1));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Auto_NoGroupPolicy) {
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Auto_DifferentAppDisabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp2, 0));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Auto_DifferentAppManualOnly) {
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp2, 2));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Auto_NoDefaultValue_AppDisabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 0));
|
| - EXPECT_FALSE(CanUpdateApp(kAppGuid1, false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Auto_NoDefaultValue_AppEnabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 1));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Auto_NoDefaultValue_AppManualOnly) {
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 2));
|
| - EXPECT_FALSE(CanUpdateApp(kAppGuid1, false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Auto_DefaultDisabled_NoAppValue) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 0));
|
| - EXPECT_FALSE(CanUpdateApp(kAppGuid1, false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Auto_DefaultDisabled_AppDisabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 0));
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 0));
|
| - EXPECT_FALSE(CanUpdateApp(kAppGuid1, false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Auto_DefaultDisabled_AppEnabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 0));
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 1));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Auto_DefaultDisabled_AppManualOnly) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 0));
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 2));
|
| - EXPECT_FALSE(CanUpdateApp(kAppGuid1, false));
|
| -}
|
| -
|
| -// Invalid value defaulting to true overrides the UpdateDefault disable.
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Auto_DefaultDisabled_AppInvalid) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 0));
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 3));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Auto_DefaultEnabled_NoAppValue) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 1));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Auto_DefaultEnabled_AppDisabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 1));
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 0));
|
| - EXPECT_FALSE(CanUpdateApp(kAppGuid1, false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Auto_DefaultEnabled_AppEnabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 1));
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 1));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Auto_DefaultEnabled_AppManualOnly) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 1));
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 2));
|
| - EXPECT_FALSE(CanUpdateApp(kAppGuid1, false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Auto_DefaultEnabled_AppInvalid) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 1));
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 3));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Auto_DefaultManualOnly_NoAppValue) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 2));
|
| - EXPECT_FALSE(CanUpdateApp(kAppGuid1, false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Auto_DefaultManualOnly_AppDisabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 2));
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 0));
|
| - EXPECT_FALSE(CanUpdateApp(kAppGuid1, false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Auto_DefaultManualOnly_AppEnabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 2));
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 1));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Auto_DefaultManualOnly_AppManualOnly) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 2));
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 2));
|
| - EXPECT_FALSE(CanUpdateApp(kAppGuid1, false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Auto_DefaultManualOnly_AppInvalid) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 2));
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 3));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Auto_DefaultInvalid_NoAppValue) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 3));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Auto_Omaha_DefaultDisabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 0));
|
| - EXPECT_TRUE(CanUpdateApp(kGoogleUpdateAppId, false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Auto_Omaha_DefaultManualOnly) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 2));
|
| - EXPECT_TRUE(CanUpdateApp(kGoogleUpdateAppId, false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Auto_Omaha_AppDisabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("Update") GOOPDATE_APP_ID, 0));
|
| - EXPECT_TRUE(CanUpdateApp(kGoogleUpdateAppId, false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Manual_NoGroupPolicy) {
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Manual_DifferentAppDisabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp2, 0));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Manual_DifferentAppManualOnly) {
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp2, 2));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Manual_NoDefaultValue_AppDisabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 0));
|
| - EXPECT_FALSE(CanUpdateApp(kAppGuid1, true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Manual_NoDefaultValue_AppEnabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 1));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Manual_NoDefaultValue_AppManualOnly) {
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 2));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Manual_DefaultDisabled_NoAppValue) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 0));
|
| - EXPECT_FALSE(CanUpdateApp(kAppGuid1, true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Manual_DefaultDisabled_AppDisabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 0));
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 0));
|
| - EXPECT_FALSE(CanUpdateApp(kAppGuid1, true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Manual_DefaultDisabled_AppEnabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 0));
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 1));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Manual_DefaultDisabled_AppManualOnly) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 0));
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 2));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, true));
|
| -}
|
| -
|
| -// Invalid value defaulting to true overrides the UpdateDefault disable.
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Manual_DefaultDisabled_AppInvalid) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 0));
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 3));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Manual_DefaultEnabled_NoAppValue) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 1));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Manual_DefaultEnabled_AppDisabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 1));
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 0));
|
| - EXPECT_FALSE(CanUpdateApp(kAppGuid1, true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Manual_DefaultEnabled_AppEnabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 1));
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 1));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Manual_DefaultEnabled_AppManualOnly) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 1));
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 2));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Manual_DefaultEnabled_AppInvalid) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 1));
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 3));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Manual_DefaultManualOnly_NoAppValue) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 2));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Manual_DefaultManualOnly_AppDisabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 2));
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 0));
|
| - EXPECT_FALSE(CanUpdateApp(kAppGuid1, true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Manual_DefaultManualOnly_AppEnabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 2));
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 1));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Manual_DefaultManualOnly_AppManualOnly) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 2));
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 2));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Maual_DefaultManualOnly_AppInvalid) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 2));
|
| - EXPECT_SUCCEEDED(SetPolicy(kUpdatePolicyApp1, 3));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Manual_DefaultInvalid_NoAppValue) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 3));
|
| - EXPECT_TRUE(CanUpdateApp(kAppGuid1, true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Manual_Omaha_DefaultDisabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 0));
|
| - EXPECT_TRUE(CanUpdateApp(kGoogleUpdateAppId, true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Manual_Omaha_DefaultManualOnly) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("UpdateDefault"), 2));
|
| - EXPECT_TRUE(CanUpdateApp(kGoogleUpdateAppId, true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, CanUpdateApp_Manual_Omaha_AppDisabled) {
|
| - EXPECT_SUCCEEDED(SetPolicy(_T("Update") GOOPDATE_APP_ID, 0));
|
| - EXPECT_TRUE(CanUpdateApp(kGoogleUpdateAppId, true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, GetPackageCacheSizeLimitMBytes_Default) {
|
| - EXPECT_EQ(500, cm_->GetPackageCacheSizeLimitMBytes());
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, GetPackageCacheSizeLimitMBytes_Override_TooBig) {
|
| - EXPECT_SUCCEEDED(SetPolicy(kRegValueCacheSizeLimitMBytes, 8192));
|
| - EXPECT_EQ(500, cm_->GetPackageCacheSizeLimitMBytes());
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, GetPackageCacheSizeLimitMBytes_Override_TooSmall) {
|
| - EXPECT_SUCCEEDED(SetPolicy(kRegValueCacheSizeLimitMBytes, 0));
|
| - EXPECT_EQ(500, cm_->GetPackageCacheSizeLimitMBytes());
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, GetPackageCacheSizeLimitMBytes_Override_Valid) {
|
| - EXPECT_SUCCEEDED(SetPolicy(kRegValueCacheSizeLimitMBytes, 250));
|
| - EXPECT_EQ(250, cm_->GetPackageCacheSizeLimitMBytes());
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, GetPackageCacheExpirationTimeDays_Default) {
|
| - EXPECT_EQ(180, cm_->GetPackageCacheExpirationTimeDays());
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, GetPackageCacheExpirationTimeDays_Override_TooBig) {
|
| - EXPECT_SUCCEEDED(SetPolicy(kRegValueCacheLifeLimitDays, 3600));
|
| - EXPECT_EQ(180, cm_->GetPackageCacheExpirationTimeDays());
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, GetPackageCacheExpirationTimeDays_Override_TooSmall) {
|
| - EXPECT_SUCCEEDED(SetPolicy(kRegValueCacheLifeLimitDays, 0));
|
| - EXPECT_EQ(180, cm_->GetPackageCacheExpirationTimeDays());
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, GetPackageCacheExpirationTimeDays_Override_Valid) {
|
| - EXPECT_SUCCEEDED(SetPolicy(kRegValueCacheLifeLimitDays, 60));
|
| - EXPECT_EQ(60, cm_->GetPackageCacheExpirationTimeDays());
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, LastCheckedTime) {
|
| - DWORD time = 500;
|
| - EXPECT_SUCCEEDED(cm_->SetLastCheckedTime(true, time));
|
| - EXPECT_EQ(time, cm_->GetLastCheckedTime(true));
|
| -
|
| - time = 77003;
|
| - EXPECT_SUCCEEDED(cm_->SetLastCheckedTime(false, time));
|
| - EXPECT_EQ(time, cm_->GetLastCheckedTime(false));
|
| -}
|
| -
|
| -// Tests GetDir indirectly.
|
| -TEST_F(ConfigManagerTest, GetDir) {
|
| - RestoreRegistryHives();
|
| -
|
| - CString user_install_dir = cm_->GetUserGoopdateInstallDir();
|
| - CString user_profile;
|
| - ASSERT_NE(0, ::GetEnvironmentVariable(_T("USERPROFILE"),
|
| - CStrBuf(user_profile, MAX_PATH),
|
| - MAX_PATH));
|
| - ASSERT_TRUE(String_StartsWith(user_install_dir, user_profile, true));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, GetUpdateWorkerStartUpDelayMs_Repeated) {
|
| - if (!SystemInfo::IsRunningOnXPOrLater()) {
|
| - std::wcout << _T("\tTest did not run because GenRandom breaks on Windows ")
|
| - << _T("2000 if the registry keys are overridden.") << std::endl;
|
| - return;
|
| - }
|
| -
|
| - // Test the UpdateDelay multiple times.
|
| - for (int i = 0; i < 10; ++i) {
|
| - int random = cm_->GetUpdateWorkerStartUpDelayMs();
|
| - EXPECT_GE(random, kUpdateTimerStartupDelayMinMs);
|
| - EXPECT_LE(random, kUpdateTimerStartupDelayMaxMs);
|
| - }
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, GetUpdateWorkerStartUpDelayMs) {
|
| - if (!SystemInfo::IsRunningOnXPOrLater()) {
|
| - std::wcout << _T("\tTest did not run because GenRandom breaks on Windows ")
|
| - << _T("2000 if the registry keys are overridden.") << std::endl;
|
| - return;
|
| - }
|
| -
|
| - int random = cm_->GetUpdateWorkerStartUpDelayMs();
|
| - EXPECT_GE(random, kUpdateTimerStartupDelayMinMs);
|
| - EXPECT_LE(random, kUpdateTimerStartupDelayMaxMs);
|
| -
|
| - int num_times_to_try_for_diff_number = 3;
|
| - // We run the method num_times_to_try_for_diff_number times to make
|
| - // sure that at least one of these returns a number that is different
|
| - // from the one that is returned above. This is needed, since the
|
| - // method returns a number between kUpdateTimerStartupDelayMinMs and
|
| - // kUpdateTimerStartupDelayMaxMs.
|
| - // If this fails a lot we should disable the if check below.
|
| - bool found_one_not_equal = false;
|
| - for (int i = 0; i < num_times_to_try_for_diff_number; ++i) {
|
| - int random_compare = cm_->GetUpdateWorkerStartUpDelayMs();
|
| -
|
| - EXPECT_GE(random_compare, kUpdateTimerStartupDelayMinMs);
|
| - EXPECT_LE(random_compare, kUpdateTimerStartupDelayMaxMs);
|
| -
|
| - if (random_compare != random) {
|
| - found_one_not_equal = true;
|
| - break;
|
| - }
|
| - }
|
| -
|
| - EXPECT_TRUE(found_one_not_equal);
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, GetUpdateWorkerStartUpDelayMs_Override) {
|
| - // Test that the initial delay time to launch a worker can be overriden.
|
| - DWORD val = 3320;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueAuCheckPeriodMs,
|
| - val));
|
| -
|
| - int random = cm_->GetUpdateWorkerStartUpDelayMs();
|
| - EXPECT_EQ(val, random);
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, GetTimeSinceLastCheckedSec_User) {
|
| - // First, there is no value present in the registry.
|
| - uint32 now_sec = Time64ToInt32(GetCurrent100NSTime());
|
| - int time_since_last_checked_sec = cm_->GetTimeSinceLastCheckedSec(false);
|
| - EXPECT_EQ(now_sec, time_since_last_checked_sec);
|
| -
|
| - // Second, write the 'now' time.
|
| - EXPECT_HRESULT_SUCCEEDED(cm_->SetLastCheckedTime(false, now_sec));
|
| - time_since_last_checked_sec = cm_->GetTimeSinceLastCheckedSec(false);
|
| - EXPECT_EQ(0, time_since_last_checked_sec);
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, GetTimeSinceLastCheckedSec_Machine) {
|
| - uint32 now_sec = Time64ToInt32(GetCurrent100NSTime());
|
| - int time_since_last_checked_sec = cm_->GetTimeSinceLastCheckedSec(true);
|
| - EXPECT_EQ(now_sec, time_since_last_checked_sec);
|
| -
|
| - EXPECT_HRESULT_SUCCEEDED(cm_->SetLastCheckedTime(true, now_sec));
|
| - time_since_last_checked_sec = cm_->GetTimeSinceLastCheckedSec(true);
|
| - EXPECT_EQ(0, time_since_last_checked_sec);
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, GetNetConfig) {
|
| - CString actual_value;
|
| - EXPECT_HRESULT_FAILED(cm_->GetNetConfig(&actual_value));
|
| -
|
| - const CString expected_value = _T("proxy:8080");
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueNetConfig,
|
| - expected_value));
|
| -
|
| - EXPECT_HRESULT_SUCCEEDED(cm_->GetNetConfig(&actual_value));
|
| - EXPECT_STREQ(expected_value, actual_value);
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, GetInstallTime) {
|
| - EXPECT_SUCCEEDED(DeleteUpdateTime(false));
|
| - EXPECT_SUCCEEDED(DeleteFirstInstallTime(false));
|
| - EXPECT_EQ(0, ConfigManager::GetInstallTime(false));
|
| -
|
| - DWORD time = 500;
|
| - EXPECT_SUCCEEDED(SetFirstInstallTime(false, time));
|
| - EXPECT_EQ(time, ConfigManager::GetInstallTime(false));
|
| -
|
| - time = 1000;
|
| - EXPECT_SUCCEEDED(SetUpdateTime(false, time));
|
| - EXPECT_EQ(time, ConfigManager::GetInstallTime(false));
|
| -
|
| - EXPECT_SUCCEEDED(DeleteFirstInstallTime(false));
|
| - EXPECT_EQ(time, ConfigManager::GetInstallTime(false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, Is24HoursSinceInstall) {
|
| - const uint32 now = Time64ToInt32(GetCurrent100NSTime());
|
| - const int k12HourPeriodSec = 12 * 60 * 60;
|
| - const int k48HourPeriodSec = 48 * 60 * 60;
|
| -
|
| - const uint32 first_install_12 = now - k12HourPeriodSec;
|
| - const uint32 first_install_48 = now - k48HourPeriodSec;
|
| -
|
| - EXPECT_SUCCEEDED(SetFirstInstallTime(false, first_install_12));
|
| - EXPECT_FALSE(ConfigManager::Is24HoursSinceInstall(false));
|
| -
|
| - EXPECT_SUCCEEDED(SetFirstInstallTime(false, first_install_48));
|
| - EXPECT_TRUE(ConfigManager::Is24HoursSinceInstall(false));
|
| -
|
| - EXPECT_SUCCEEDED(SetUpdateTime(false, first_install_12));
|
| - EXPECT_FALSE(ConfigManager::Is24HoursSinceInstall(false));
|
| -
|
| - EXPECT_SUCCEEDED(SetUpdateTime(false, first_install_48));
|
| - EXPECT_TRUE(ConfigManager::Is24HoursSinceInstall(false));
|
| -}
|
| -
|
| -TEST_F(ConfigManagerTest, AlwaysAllowCrashUploads) {
|
| - EXPECT_FALSE(cm_->AlwaysAllowCrashUploads());
|
| -
|
| - DWORD value = 1;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueAlwaysAllowCrashUploads,
|
| - value));
|
| -
|
| - EXPECT_TRUE(cm_->AlwaysAllowCrashUploads());
|
| -
|
| - value = 0;
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV,
|
| - kRegValueAlwaysAllowCrashUploads,
|
| - value));
|
| -
|
| - EXPECT_FALSE(cm_->AlwaysAllowCrashUploads());
|
| -}
|
| -
|
| -} // namespace omaha
|
|
|