Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9073)

Unified Diff: chrome/installer/util/google_update_settings_unittest.cc

Issue 2476573004: Use InstallDetails in installer_util. (Closed)
Patch Set: sync to position 451835 Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/installer/util/google_update_settings.cc ('k') | chrome/installer/util/install_util.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/installer/util/google_update_settings_unittest.cc
diff --git a/chrome/installer/util/google_update_settings_unittest.cc b/chrome/installer/util/google_update_settings_unittest.cc
index 17a93bf9d6bf2f5a507655a782367cd74fbc3dad..ea59e9989ec0775cda8a19e6fbb10b9797c52358 100644
--- a/chrome/installer/util/google_update_settings_unittest.cc
+++ b/chrome/installer/util/google_update_settings_unittest.cc
@@ -12,6 +12,7 @@
#include "base/base_paths.h"
#include "base/macros.h"
+#include "base/memory/ptr_util.h"
#include "base/path_service.h"
#include "base/strings/utf_string_conversions.h"
#include "base/test/scoped_path_override.h"
@@ -19,6 +20,7 @@
#include "base/win/registry.h"
#include "base/win/win_util.h"
#include "chrome/common/chrome_constants.h"
+#include "chrome/install_static/test/scoped_install_details.h"
#include "chrome/installer/util/app_registration_data.h"
#include "chrome/installer/util/browser_distribution.h"
#include "chrome/installer/util/channel_info.h"
@@ -61,76 +63,12 @@ class GoogleUpdateSettingsTest : public testing::Test {
registry_overrides_.OverrideRegistry(HKEY_CURRENT_USER));
}
- void SetApField(SystemUserInstall is_system, const wchar_t* value) {
- HKEY root = is_system == SYSTEM_INSTALL ?
- HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER;
-
- RegKey update_key;
- BrowserDistribution* dist = BrowserDistribution::GetDistribution();
- base::string16 path = dist->GetStateKey();
- ASSERT_EQ(ERROR_SUCCESS, update_key.Create(root, path.c_str(), KEY_WRITE));
- ASSERT_EQ(ERROR_SUCCESS, update_key.WriteValue(L"ap", value));
- }
-
- // Tests setting the ap= value to various combinations of values with
- // suffixes, while asserting on the correct channel value.
- // Note that ap= value has to match "^2.0-d.*" or ".*x64-dev.*" and "^1.1-.*"
- // or ".*x64-beta.*" for dev and beta channels respectively.
- void TestCurrentChromeChannelWithVariousApValues(SystemUserInstall install) {
- static struct Expectation {
- const wchar_t* ap_value;
- const wchar_t* channel;
- bool supports_prefixes;
- } expectations[] = {
- { L"2.0-dev", installer::kChromeChannelDev, false},
- { L"1.1-beta", installer::kChromeChannelBeta, false},
- { L"x64-dev", installer::kChromeChannelDev, true},
- { L"x64-beta", installer::kChromeChannelBeta, true},
- { L"x64-stable", installer::kChromeChannelStable, true},
- };
- bool is_system = install == SYSTEM_INSTALL;
- const wchar_t* prefixes[] = {
- L"",
- L"prefix",
- L"prefix-with-dash",
- };
- const wchar_t* suffixes[] = {
- L"",
- L"suffix",
- L"suffix-with-dash",
- };
-
- for (const wchar_t* prefix : prefixes) {
- for (const Expectation& expectation : expectations) {
- for (const wchar_t* suffix : suffixes) {
- base::string16 ap = prefix;
- ap += expectation.ap_value;
- ap += suffix;
- const wchar_t* channel = expectation.channel;
-
- SetApField(install, ap.c_str());
- const base::string16 ret_channel =
- GoogleUpdateSettings::GetChromeChannel(is_system);
-
- // If prefixes are not supported for a channel, we expect the channel
- // to be "unknown" if a non-empty prefix is present in ap_value.
- if (!expectation.supports_prefixes && wcslen(prefix) > 0) {
- EXPECT_STREQ(installer::kChromeChannelUnknown, ret_channel.c_str())
- << "Expecting channel \"" << installer::kChromeChannelUnknown
- << "\" for ap=\"" << ap << "\"";
- } else {
- EXPECT_STREQ(channel, ret_channel.c_str())
- << "Expecting channel \"" << channel
- << "\" for ap=\"" << ap << "\"";
- }
- }
- }
- }
- }
-
// Test the writing and deleting functionality of the experiments label
// helper.
void TestExperimentsLabelHelper(SystemUserInstall install) {
+ // Install a basic InstallDetails instance.
+ install_static::ScopedInstallDetails details(install == SYSTEM_INSTALL);
+
BrowserDistribution* chrome = BrowserDistribution::GetDistribution();
base::string16 value;
#if defined(GOOGLE_CHROME_BUILD)
@@ -297,51 +235,6 @@ class GoogleUpdateSettingsTest : public testing::Test {
} // namespace
-// Verify that we return success on no registration (which means stable),
-// whether per-system or per-user install.
-TEST_F(GoogleUpdateSettingsTest, CurrentChromeChannelAbsent) {
- // Per-system first.
- base::string16 channel;
- channel = GoogleUpdateSettings::GetChromeChannel(true);
- EXPECT_STREQ(L"", channel.c_str());
-
- // Then per-user.
- channel = GoogleUpdateSettings::GetChromeChannel(false);
- EXPECT_STREQ(L"", channel.c_str());
-}
-
-// Test an empty Ap key for system and user.
-TEST_F(GoogleUpdateSettingsTest, CurrentChromeChannelEmptySystem) {
- SetApField(SYSTEM_INSTALL, L"");
- base::string16 channel;
- channel = GoogleUpdateSettings::GetChromeChannel(true);
- EXPECT_STREQ(L"", channel.c_str());
-
- // Per-user lookups still succeed and return empty string.
- channel = GoogleUpdateSettings::GetChromeChannel(false);
- EXPECT_STREQ(L"", channel.c_str());
-}
-
-TEST_F(GoogleUpdateSettingsTest, CurrentChromeChannelEmptyUser) {
- SetApField(USER_INSTALL, L"");
- // Per-system lookups still succeed and return empty string.
- base::string16 channel;
- channel = GoogleUpdateSettings::GetChromeChannel(true);
- EXPECT_STREQ(L"", channel.c_str());
-
- // Per-user lookup should succeed.
- channel = GoogleUpdateSettings::GetChromeChannel(false);
- EXPECT_STREQ(L"", channel.c_str());
-}
-
-TEST_F(GoogleUpdateSettingsTest, CurrentChromeChannelVariousApValuesSystem) {
- TestCurrentChromeChannelWithVariousApValues(SYSTEM_INSTALL);
-}
-
-TEST_F(GoogleUpdateSettingsTest, CurrentChromeChannelVariousApValuesUser) {
- TestCurrentChromeChannelWithVariousApValues(USER_INSTALL);
-}
-
// Run through all combinations of diff vs. full install, success and failure
// results, and a fistful of initial "ap" values checking that the expected
// final "ap" value is generated by
@@ -579,18 +472,8 @@ TEST_F(GoogleUpdateSettingsTest, GetAppUpdatePolicyNoOverride) {
}
TEST_F(GoogleUpdateSettingsTest, UpdateProfileCountsSystemInstall) {
- // Override FILE_MODULE and FILE_EXE with a path somewhere in the default
- // system-level install location so that
- // GoogleUpdateSettings::IsSystemInstall() returns true.
- base::FilePath file_exe;
- ASSERT_TRUE(PathService::Get(base::FILE_EXE, &file_exe));
- base::FilePath install_dir(installer::GetChromeInstallPath(
- true /* system_install */, BrowserDistribution::GetDistribution()));
- file_exe = install_dir.Append(file_exe.BaseName());
- base::ScopedPathOverride file_module_override(
- base::FILE_MODULE, file_exe, true /* is_absolute */, false /* create */);
- base::ScopedPathOverride file_exe_override(
- base::FILE_EXE, file_exe, true /* is_absolute */, false /* create */);
+ // Set up a basic system-level InstallDetails.
+ install_static::ScopedInstallDetails details(true /* system_level */);
// No profile count keys present yet.
const base::string16& state_key = BrowserDistribution::GetDistribution()->
@@ -1171,38 +1054,20 @@ const StatsState::SystemLevelState StatsState::kSystemLevel = {};
// A value parameterized test for testing the stats collection consent setting.
class CollectStatsConsent : public ::testing::TestWithParam<StatsState> {
- public:
- static void SetUpTestCase();
- static void TearDownTestCase();
protected:
+ CollectStatsConsent();
void SetUp() override;
- static void ApplySetting(StatsState::StateSetting setting,
- HKEY root_key,
- const base::string16& reg_key);
-
- // TODO(grt): Get rid of these statics and SetUpTestCase.
- static base::string16* chrome_version_key_;
- static base::string16* chrome_state_key_;
- static base::string16* chrome_state_medium_key_;
+ void ApplySetting(StatsState::StateSetting setting,
+ HKEY root_key,
+ const base::string16& reg_key);
+
+ BrowserDistribution* const dist_;
registry_util::RegistryOverrideManager override_manager_;
+ std::unique_ptr<install_static::ScopedInstallDetails> scoped_install_details_;
};
-base::string16* CollectStatsConsent::chrome_version_key_;
-base::string16* CollectStatsConsent::chrome_state_key_;
-base::string16* CollectStatsConsent::chrome_state_medium_key_;
-
-void CollectStatsConsent::SetUpTestCase() {
- BrowserDistribution* dist = BrowserDistribution::GetDistribution();
- chrome_version_key_ = new base::string16(dist->GetVersionKey());
- chrome_state_key_ = new base::string16(dist->GetStateKey());
- chrome_state_medium_key_ = new base::string16(dist->GetStateMediumKey());
-}
-
-void CollectStatsConsent::TearDownTestCase() {
- delete chrome_version_key_;
- delete chrome_state_key_;
- delete chrome_state_medium_key_;
-}
+CollectStatsConsent::CollectStatsConsent()
+ : dist_(BrowserDistribution::GetDistribution()) {}
// Install the registry override and apply the settings to the registry.
void CollectStatsConsent::SetUp() {
@@ -1213,10 +1078,14 @@ void CollectStatsConsent::SetUp() {
override_manager_.OverrideRegistry(HKEY_CURRENT_USER));
const StatsState& stats_state = GetParam();
+ scoped_install_details_ =
+ base::MakeUnique<install_static::ScopedInstallDetails>(
+ stats_state.system_level(), 0 /* install_mode_index */);
const HKEY root_key = stats_state.root_key();
- ApplySetting(stats_state.state_value(), root_key, *chrome_state_key_);
- ApplySetting(stats_state.state_medium_value(), root_key,
- *chrome_state_medium_key_);
+ ASSERT_NO_FATAL_FAILURE(
+ ApplySetting(stats_state.state_value(), root_key, dist_->GetStateKey()));
+ ASSERT_NO_FATAL_FAILURE(ApplySetting(stats_state.state_medium_value(),
+ root_key, dist_->GetStateMediumKey()));
}
// Write the correct value to represent |setting| in the registry.
@@ -1261,9 +1130,9 @@ TEST_P(CollectStatsConsent, SetCollectStatsConsentAtLevel) {
GetParam().system_level(),
!GetParam().is_consent_granted()));
- const base::string16& reg_key = GetParam().system_level()
- ? *chrome_state_medium_key_
- : *chrome_state_key_;
+ const base::string16 reg_key = GetParam().system_level()
+ ? dist_->GetStateMediumKey()
+ : dist_->GetStateKey();
DWORD value = 0;
EXPECT_EQ(
ERROR_SUCCESS,
« no previous file with comments | « chrome/installer/util/google_update_settings.cc ('k') | chrome/installer/util/install_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698