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

Unified Diff: chrome_elf/chrome_elf_util_unittest.cc

Issue 2422643002: Windows install_static refactor. (Closed)
Patch Set: sync to position 431863 Created 4 years, 1 month 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
Index: chrome_elf/chrome_elf_util_unittest.cc
diff --git a/chrome_elf/chrome_elf_util_unittest.cc b/chrome_elf/chrome_elf_util_unittest.cc
index 9f2a6846ad24c28aa94624e619b6eda852274afe..3a9f441944b98b9d2ec4c5d214107a4d42bd291b 100644
--- a/chrome_elf/chrome_elf_util_unittest.cc
+++ b/chrome_elf/chrome_elf_util_unittest.cc
@@ -8,27 +8,13 @@
#include "base/test/test_reg_util_win.h"
#include "base/win/registry.h"
-#include "chrome/install_static/install_util.h"
#include "chrome_elf/chrome_elf_constants.h"
#include "chrome_elf/chrome_elf_security.h"
#include "chrome_elf/nt_registry/nt_registry.h"
#include "testing/gtest/include/gtest/gtest.h"
-#include "testing/platform_test.h"
-
-using namespace install_static;
namespace {
-const wchar_t kCanaryExePath[] =
- L"C:\\Users\\user\\AppData\\Local\\Google\\Chrome SxS\\Application"
- L"\\chrome.exe";
-const wchar_t kChromeSystemExePath[] =
- L"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe";
-const wchar_t kChromeUserExePath[] =
- L"C:\\Users\\user\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe";
-const wchar_t kChromiumExePath[] =
- L"C:\\Users\\user\\AppData\\Local\\Chromium\\Application\\chrome.exe";
-
bool SetSecurityFinchFlag(bool creation) {
bool success = true;
base::win::RegKey security_key(HKEY_CURRENT_USER, L"", KEY_ALL_ACCESS);
@@ -93,23 +79,6 @@ void CancelRegRedirect(nt::ROOT_KEY key) {
ASSERT_TRUE(nt::SetTestingOverride(nt::HKLM, base::string16()));
}
-TEST(ChromeElfUtilTest, CanaryTest) {
- EXPECT_TRUE(IsSxSChrome(kCanaryExePath));
- EXPECT_FALSE(IsSxSChrome(kChromeUserExePath));
- EXPECT_FALSE(IsSxSChrome(kChromiumExePath));
-}
-
-TEST(ChromeElfUtilTest, SystemInstallTest) {
- EXPECT_TRUE(IsSystemInstall(kChromeSystemExePath));
- EXPECT_FALSE(IsSystemInstall(kChromeUserExePath));
-}
-
-TEST(ChromeElfUtilTest, BrowserProcessTest) {
- EXPECT_EQ(ProcessType::UNINITIALIZED, g_process_type);
- InitializeProcessType();
- EXPECT_FALSE(IsNonBrowserProcess());
-}
-
TEST(ChromeElfUtilTest, BrowserProcessSecurityTest) {
if (!::IsWindows8OrGreater())
return;
@@ -131,392 +100,4 @@ TEST(ChromeElfUtilTest, BrowserProcessSecurityTest) {
CancelRegRedirect(nt::HKCU);
}
-// Parameterized test with paramters:
-// 1: product: "canary" or "google"
-// 2: install level: "user" or "system"
-// 3: install mode: "single" or "multi"
-class ChromeElfUtilTest
- : public testing::TestWithParam<
- std::tuple<const char*, const char*, const char*>> {
- protected:
- void SetUp() override {
- // Set up registry override for these tests.
- RegRedirect(nt::HKLM, &override_manager_);
- RegRedirect(nt::HKCU, &override_manager_);
-
- const char* app;
- const char* level;
- const char* mode;
- std::tie(app, level, mode) = GetParam();
- is_canary_ = (std::string(app) == "canary");
- system_level_ = (std::string(level) != "user");
- multi_install_ = (std::string(mode) != "single");
- if (is_canary_) {
- ASSERT_FALSE(system_level_);
- ASSERT_FALSE(multi_install_);
- app_guid_ = kAppGuidCanary;
- chrome_path_ = kCanaryExePath;
- } else {
- app_guid_ = kAppGuidGoogleChrome;
- chrome_path_ =
- (system_level_ ? kChromeSystemExePath : kChromeUserExePath);
- }
- if (multi_install_) {
- SetMultiInstallStateInRegistry(system_level_, true);
- app_guid_ = kAppGuidGoogleBinaries;
- }
- }
-
- void TearDown() override {
- CancelRegRedirect(nt::HKCU);
- CancelRegRedirect(nt::HKLM);
- }
-
- base::string16 BuildKey(const wchar_t* path, const wchar_t* guid) {
- base::string16 full_key_path(path);
- full_key_path.append(1, L'\\');
- full_key_path.append(guid);
- return full_key_path;
- }
-
- void SetUsageStat(DWORD value, bool state_medium) {
- LONG result = base::win::RegKey(
- system_level_ ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER,
- BuildKey(state_medium ? kRegPathClientStateMedium
- : kRegPathClientState,
- app_guid_)
- .c_str(),
- KEY_SET_VALUE)
- .WriteValue(kRegValueUsageStats, value);
- ASSERT_EQ(ERROR_SUCCESS, result);
- }
-
- void SetMultiInstallStateInRegistry(bool system_install, bool multi) {
- base::win::RegKey key(
- system_install ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER,
- BuildKey(kRegPathClientState, kAppGuidGoogleChrome).c_str(),
- KEY_SET_VALUE);
- LONG result;
- if (multi) {
- result = key.WriteValue(kUninstallArgumentsField,
- L"yadda yadda --multi-install yadda yadda");
- } else {
- result = key.DeleteValue(kUninstallArgumentsField);
- }
- ASSERT_EQ(ERROR_SUCCESS, result);
- }
-
- void SetChannelName(const base::string16& channel_name) {
- LONG result =
- base::win::RegKey(
- system_level_ ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER,
- BuildKey(kRegPathClientState, app_guid_).c_str(), KEY_SET_VALUE)
- .WriteValue(kRegApField, channel_name.c_str());
- ASSERT_EQ(ERROR_SUCCESS, result);
- }
-
- // This function tests the install_static::GetChromeChannelName function and
- // is based on the ChannelInfoTest.Channels in channel_info_unittest.cc.
- // The |add_modifier| parameter controls whether we expect modifiers in the
- // returned channel name.
- void PerformChannelNameTests(bool add_modifier) {
- // We can't test the channel name correctly for canary mode because the
- // install_static checks whether an exe is a canary executable is based on
- // the path where the exe is running from.
- if (is_canary_)
- return;
- SetChannelName(L"");
- base::string16 channel;
- install_static::GetChromeChannelName(!system_level_, add_modifier,
- &channel);
- if (multi_install_ && add_modifier) {
- EXPECT_STREQ(L"m", channel.c_str());
- } else {
- EXPECT_STREQ(install_static::kChromeChannelStable, channel.c_str());
- }
-
- SetChannelName(L"-full");
- install_static::GetChromeChannelName(!system_level_, add_modifier,
- &channel);
- if (multi_install_ && add_modifier) {
- EXPECT_STREQ(L"m", channel.c_str());
- } else {
- EXPECT_STREQ(install_static::kChromeChannelStable, channel.c_str());
- }
-
- SetChannelName(L"1.1-beta");
- install_static::GetChromeChannelName(!system_level_, add_modifier,
- &channel);
- if (multi_install_ && add_modifier) {
- EXPECT_STREQ(L"beta-m", channel.c_str());
- } else {
- EXPECT_STREQ(install_static::kChromeChannelBeta, channel.c_str());
- }
-
- SetChannelName(L"1.1-beta");
- install_static::GetChromeChannelName(!system_level_, add_modifier,
- &channel);
- if (multi_install_ && add_modifier) {
- EXPECT_STREQ(L"beta-m", channel.c_str());
- } else {
- EXPECT_STREQ(install_static::kChromeChannelBeta, channel.c_str());
- }
-
- SetChannelName(L"1.1-bar");
- install_static::GetChromeChannelName(!system_level_, add_modifier,
- &channel);
- if (multi_install_ && add_modifier) {
- EXPECT_STREQ(L"beta-m", channel.c_str());
- } else {
- EXPECT_STREQ(install_static::kChromeChannelBeta, channel.c_str());
- }
-
- SetChannelName(L"1n1-foobar");
- install_static::GetChromeChannelName(!system_level_, add_modifier,
- &channel);
- if (multi_install_ && add_modifier) {
- EXPECT_STREQ(L"beta-m", channel.c_str());
- } else {
- EXPECT_STREQ(install_static::kChromeChannelBeta, channel.c_str());
- }
-
- SetChannelName(L"foo-1.1-beta");
- install_static::GetChromeChannelName(!system_level_, add_modifier,
- &channel);
- if (multi_install_ && add_modifier) {
- EXPECT_STREQ(L"m", channel.c_str());
- } else {
- EXPECT_STREQ(install_static::kChromeChannelStable, channel.c_str());
- }
- SetChannelName(L"2.0-beta");
- install_static::GetChromeChannelName(!system_level_, add_modifier,
- &channel);
- if (multi_install_ && add_modifier) {
- EXPECT_STREQ(L"m", channel.c_str());
- } else {
- EXPECT_STREQ(install_static::kChromeChannelStable, channel.c_str());
- }
-
- SetChannelName(L"2.0-dev");
- install_static::GetChromeChannelName(!system_level_, add_modifier,
- &channel);
- if (multi_install_ && add_modifier) {
- EXPECT_STREQ(L"dev-m", channel.c_str());
- } else {
- EXPECT_STREQ(install_static::kChromeChannelDev, channel.c_str());
- }
- SetChannelName(L"2.0-DEV");
- install_static::GetChromeChannelName(!system_level_, add_modifier,
- &channel);
- if (multi_install_ && add_modifier) {
- EXPECT_STREQ(L"dev-m", channel.c_str());
- } else {
- EXPECT_STREQ(install_static::kChromeChannelDev, channel.c_str());
- }
- SetChannelName(L"2.0-dev-eloper");
- install_static::GetChromeChannelName(!system_level_, add_modifier,
- &channel);
- if (multi_install_ && add_modifier) {
- EXPECT_STREQ(L"dev-m", channel.c_str());
- } else {
- EXPECT_STREQ(install_static::kChromeChannelDev, channel.c_str());
- }
- SetChannelName(L"2.0-doom");
- install_static::GetChromeChannelName(!system_level_, add_modifier,
- &channel);
- if (multi_install_ && add_modifier) {
- EXPECT_STREQ(L"dev-m", channel.c_str());
- } else {
- EXPECT_STREQ(install_static::kChromeChannelDev, channel.c_str());
- }
- SetChannelName(L"250-doom");
- install_static::GetChromeChannelName(!system_level_, add_modifier,
- &channel);
- if (multi_install_ && add_modifier) {
- EXPECT_STREQ(L"dev-m", channel.c_str());
- } else {
- EXPECT_STREQ(install_static::kChromeChannelDev, channel.c_str());
- }
- SetChannelName(L"bar-2.0-dev");
- install_static::GetChromeChannelName(!system_level_, add_modifier,
- &channel);
- if (multi_install_ && add_modifier) {
- EXPECT_STREQ(L"m", channel.c_str());
- } else {
- EXPECT_STREQ(install_static::kChromeChannelStable, channel.c_str());
- }
- SetChannelName(L"1.0-dev");
- install_static::GetChromeChannelName(!system_level_, add_modifier,
- &channel);
- if (multi_install_ && add_modifier) {
- EXPECT_STREQ(L"m", channel.c_str());
- } else {
- EXPECT_STREQ(install_static::kChromeChannelStable, channel.c_str());
- }
-
- SetChannelName(L"x64-beta");
- install_static::GetChromeChannelName(!system_level_, add_modifier,
- &channel);
- if (multi_install_ && add_modifier) {
- EXPECT_STREQ(L"beta-m", channel.c_str());
- } else {
- EXPECT_STREQ(install_static::kChromeChannelBeta, channel.c_str());
- }
- SetChannelName(L"bar-x64-beta");
- install_static::GetChromeChannelName(!system_level_, add_modifier,
- &channel);
- if (multi_install_ && add_modifier) {
- EXPECT_STREQ(L"beta-m", channel.c_str());
- } else {
- EXPECT_STREQ(install_static::kChromeChannelBeta, channel.c_str());
- }
- SetChannelName(L"x64-Beta");
- install_static::GetChromeChannelName(!system_level_, add_modifier,
- &channel);
- if (multi_install_ && add_modifier) {
- EXPECT_STREQ(L"beta-m", channel.c_str());
- } else {
- EXPECT_STREQ(install_static::kChromeChannelBeta, channel.c_str());
- }
-
- SetChannelName(L"x64-stable");
- install_static::GetChromeChannelName(!system_level_, add_modifier,
- &channel);
- if (multi_install_ && add_modifier) {
- EXPECT_STREQ(L"m", channel.c_str());
- } else {
- EXPECT_STREQ(install_static::kChromeChannelStable, channel.c_str());
- }
- SetChannelName(L"baz-x64-stable");
- install_static::GetChromeChannelName(!system_level_, add_modifier,
- &channel);
- if (multi_install_ && add_modifier) {
- EXPECT_STREQ(L"m", channel.c_str());
- } else {
- EXPECT_STREQ(install_static::kChromeChannelStable, channel.c_str());
- }
- SetChannelName(L"x64-Stable");
- install_static::GetChromeChannelName(!system_level_, add_modifier,
- &channel);
- if (multi_install_ && add_modifier) {
- EXPECT_STREQ(L"m", channel.c_str());
- } else {
- EXPECT_STREQ(install_static::kChromeChannelStable, channel.c_str());
- }
-
- SetChannelName(L"fuzzy");
- install_static::GetChromeChannelName(!system_level_, add_modifier,
- &channel);
- if (multi_install_ && add_modifier) {
- EXPECT_STREQ(L"m", channel.c_str());
- } else {
- EXPECT_STREQ(install_static::kChromeChannelStable, channel.c_str());
- }
- SetChannelName(L"foo");
- install_static::GetChromeChannelName(!system_level_, add_modifier,
- &channel);
- if (multi_install_ && add_modifier) {
- EXPECT_STREQ(L"m", channel.c_str());
- } else {
- EXPECT_STREQ(install_static::kChromeChannelStable, channel.c_str());
- }
- // Variations on stable channel.
- static constexpr const wchar_t* kStableApValues[] = {
- L"-multi-chrome",
- L"x64-stable-multi-chrome",
- L"-stage:ensemble_patching-multi-chrome-full",
- L"-multi-chrome-full",
- };
- for (const wchar_t* ap_value : kStableApValues) {
- SetChannelName(ap_value);
- install_static::GetChromeChannelName(!system_level_, add_modifier,
- &channel);
- if (multi_install_ && add_modifier) {
- EXPECT_STREQ(L"m", channel.c_str()) << ap_value;
- } else {
- EXPECT_STREQ(install_static::kChromeChannelStable, channel.c_str())
- << ap_value;
- }
- }
- }
-
- const wchar_t* app_guid_;
- const wchar_t* chrome_path_;
- bool system_level_;
- bool multi_install_;
- bool is_canary_;
- registry_util::RegistryOverrideManager override_manager_;
-};
-
-TEST_P(ChromeElfUtilTest, MultiInstallTest) {
- if (is_canary_)
- return;
- SetMultiInstallStateInRegistry(system_level_, true);
- EXPECT_TRUE(IsMultiInstall(system_level_));
-
- SetMultiInstallStateInRegistry(system_level_, false);
- EXPECT_FALSE(IsMultiInstall(system_level_));
-}
-
-TEST_P(ChromeElfUtilTest, UsageStatsAbsent) {
- EXPECT_FALSE(GetCollectStatsConsentForTesting(chrome_path_));
-}
-
-TEST_P(ChromeElfUtilTest, UsageStatsZero) {
- SetUsageStat(0, false);
- EXPECT_FALSE(GetCollectStatsConsentForTesting(chrome_path_));
-}
-
-TEST_P(ChromeElfUtilTest, UsageStatsOne) {
- SetUsageStat(1, false);
- EXPECT_TRUE(GetCollectStatsConsentForTesting(chrome_path_));
- if (is_canary_) {
- EXPECT_FALSE(GetCollectStatsConsentForTesting(kChromeUserExePath));
- EXPECT_FALSE(GetCollectStatsConsentForTesting(kChromeSystemExePath));
- } else if (system_level_) {
- EXPECT_FALSE(GetCollectStatsConsentForTesting(kCanaryExePath));
- EXPECT_FALSE(GetCollectStatsConsentForTesting(kChromeUserExePath));
- } else {
- EXPECT_FALSE(GetCollectStatsConsentForTesting(kCanaryExePath));
- EXPECT_FALSE(GetCollectStatsConsentForTesting(kChromeSystemExePath));
- }
-}
-
-TEST_P(ChromeElfUtilTest, UsageStatsZeroInStateMedium) {
- if (!system_level_)
- return;
- SetUsageStat(0, true);
- EXPECT_FALSE(GetCollectStatsConsentForTesting(chrome_path_));
-}
-
-TEST_P(ChromeElfUtilTest, UsageStatsOneInStateMedium) {
- if (!system_level_)
- return;
- SetUsageStat(1, true);
- EXPECT_TRUE(GetCollectStatsConsentForTesting(chrome_path_));
- EXPECT_FALSE(GetCollectStatsConsentForTesting(kCanaryExePath));
- EXPECT_FALSE(GetCollectStatsConsentForTesting(kChromeUserExePath));
-}
-
-// TODO(ananta)
-// Move this to install_static_unittests.
-// http://crbug.com/604923
-// This test tests the install_static::GetChromeChannelName function and is
-// based on the ChannelInfoTest.Channels in channel_info_unittest.cc
-TEST_P(ChromeElfUtilTest, InstallStaticGetChannelNameTest) {
- PerformChannelNameTests(true); // add_modifier
- PerformChannelNameTests(false); // !add_modifier
-}
-
-INSTANTIATE_TEST_CASE_P(Canary,
- ChromeElfUtilTest,
- testing::Combine(testing::Values("canary"),
- testing::Values("user"),
- testing::Values("single")));
-INSTANTIATE_TEST_CASE_P(GoogleChrome,
- ChromeElfUtilTest,
- testing::Combine(testing::Values("google"),
- testing::Values("user", "system"),
- testing::Values("single", "multi")));
-
} // namespace

Powered by Google App Engine
This is Rietveld 408576698