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

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

Issue 9693055: Launch Google Update on uninstall. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: addressed comments Created 8 years, 9 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') | no next file » | 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 59c414c59ac0f49915692b5e97581cd7bd468818..4eb5d116e31cefc91f7f3f6dd4439cc0b8f24c63 100644
--- a/chrome/installer/util/google_update_settings_unittest.cc
+++ b/chrome/installer/util/google_update_settings_unittest.cc
@@ -23,10 +23,6 @@ using installer::ChannelInfo;
namespace {
-const wchar_t kHKCUReplacement[] =
- L"Software\\Google\\InstallUtilUnittest\\HKCU";
-const wchar_t kHKLMReplacement[] =
- L"Software\\Google\\InstallUtilUnittest\\HKLM";
const wchar_t kGoogleUpdatePoliciesKey[] =
L"SOFTWARE\\Policies\\Google\\Update";
const wchar_t kGoogleUpdateUpdateDefault[] = L"UpdateDefault";
@@ -45,38 +41,9 @@ const wchar_t kTestProductGuid[] = L"{89F1B351-B15D-48D4-8F10-1298721CF13D}";
// and user settings.
class GoogleUpdateSettingsTest: public testing::Test {
protected:
- virtual void SetUp() {
- // Wipe the keys we redirect to.
- // This gives us a stable run, even in the presence of previous
- // crashes or failures.
- LSTATUS err = SHDeleteKey(HKEY_CURRENT_USER, kHKCUReplacement);
- EXPECT_TRUE(err == ERROR_SUCCESS || err == ERROR_FILE_NOT_FOUND);
- err = SHDeleteKey(HKEY_CURRENT_USER, kHKLMReplacement);
- EXPECT_TRUE(err == ERROR_SUCCESS || err == ERROR_FILE_NOT_FOUND);
-
- // Create the keys we're redirecting HKCU and HKLM to.
- ASSERT_EQ(ERROR_SUCCESS,
- hkcu_.Create(HKEY_CURRENT_USER, kHKCUReplacement, KEY_READ));
- ASSERT_EQ(ERROR_SUCCESS,
- hklm_.Create(HKEY_CURRENT_USER, kHKLMReplacement, KEY_READ));
-
- // And do the switcharoo.
- ASSERT_EQ(ERROR_SUCCESS,
- ::RegOverridePredefKey(HKEY_CURRENT_USER, hkcu_.Handle()));
- ASSERT_EQ(ERROR_SUCCESS,
- ::RegOverridePredefKey(HKEY_LOCAL_MACHINE, hklm_.Handle()));
- }
-
- virtual void TearDown() {
- // Undo the redirection.
- EXPECT_EQ(ERROR_SUCCESS, ::RegOverridePredefKey(HKEY_CURRENT_USER, NULL));
- EXPECT_EQ(ERROR_SUCCESS, ::RegOverridePredefKey(HKEY_LOCAL_MACHINE, NULL));
-
- // Close our handles and delete the temp keys we redirected to.
- hkcu_.Close();
- hklm_.Close();
- EXPECT_EQ(ERROR_SUCCESS, SHDeleteKey(HKEY_CURRENT_USER, kHKCUReplacement));
- EXPECT_EQ(ERROR_SUCCESS, SHDeleteKey(HKEY_CURRENT_USER, kHKLMReplacement));
+ virtual void SetUp() OVERRIDE {
+ registry_overrides_.OverrideRegistry(HKEY_LOCAL_MACHINE, L"HKLM_pit");
+ registry_overrides_.OverrideRegistry(HKEY_CURRENT_USER, L"HKCU_pit");
}
enum SystemUserInstall {
@@ -181,8 +148,7 @@ class GoogleUpdateSettingsTest: public testing::Test {
return ap_key_value;
}
- RegKey hkcu_;
- RegKey hklm_;
+ registry_util::RegistryOverrideManager registry_overrides_;
};
} // namespace
@@ -590,6 +556,65 @@ TEST_F(GoogleUpdateSettingsTest, GetAppUpdatePolicyAppOverride) {
#endif // defined(GOOGLE_CHROME_BUILD)
+// Test GoogleUpdateSettings::GetUninstallCommandLine at system- or user-level,
+// according to the param.
+class GetUninstallCommandLine : public GoogleUpdateSettingsTest,
+ public testing::WithParamInterface<bool> {
+ protected:
+ static const wchar_t kDummyCommand[];
+
+ virtual void SetUp() OVERRIDE {
+ GoogleUpdateSettingsTest::SetUp();
+ system_install_ = GetParam();
+ root_key_ = system_install_ ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER;
+ }
+
+ HKEY root_key_;
+ bool system_install_;
+};
+
+const wchar_t GetUninstallCommandLine::kDummyCommand[] =
+ L"\"goopdate.exe\" /spam";
+
+// Tests that GetUninstallCommandLine returns an empty string if there's no
+// Software\Google\Update key.
+TEST_P(GetUninstallCommandLine, TestNoKey) {
+ EXPECT_EQ(string16(),
+ GoogleUpdateSettings::GetUninstallCommandLine(system_install_));
+}
+
+// Tests that GetUninstallCommandLine returns an empty string if there's no
+// UninstallCmdLine value in the Software\Google\Update key.
+TEST_P(GetUninstallCommandLine, TestNoValue) {
+ RegKey(root_key_, google_update::kRegPathGoogleUpdate, KEY_SET_VALUE);
+ EXPECT_EQ(string16(),
+ GoogleUpdateSettings::GetUninstallCommandLine(system_install_));
+}
+
+// Tests that GetUninstallCommandLine returns an empty string if there's an
+// empty UninstallCmdLine value in the Software\Google\Update key.
+TEST_P(GetUninstallCommandLine, TestEmptyValue) {
+ RegKey(root_key_, google_update::kRegPathGoogleUpdate, KEY_SET_VALUE)
+ .WriteValue(google_update::kRegUninstallCmdLine, L"");
+ EXPECT_EQ(string16(),
+ GoogleUpdateSettings::GetUninstallCommandLine(system_install_));
+}
+
+// Tests that GetUninstallCommandLine returns the correct string if there's an
+// UninstallCmdLine value in the Software\Google\Update key.
+TEST_P(GetUninstallCommandLine, TestRealValue) {
+ RegKey(root_key_, google_update::kRegPathGoogleUpdate, KEY_SET_VALUE)
+ .WriteValue(google_update::kRegUninstallCmdLine, kDummyCommand);
+ EXPECT_EQ(string16(kDummyCommand),
+ GoogleUpdateSettings::GetUninstallCommandLine(system_install_));
+ // Make sure that there's no value in the other level (user or system).
+ EXPECT_EQ(string16(),
+ GoogleUpdateSettings::GetUninstallCommandLine(!system_install_));
+}
+
+INSTANTIATE_TEST_CASE_P(GetUninstallCommandLineAtLevel, GetUninstallCommandLine,
+ testing::Bool());
+
// Test values for use by the CollectStatsConsent test fixture.
class StatsState {
public:
« no previous file with comments | « chrome/installer/util/google_update_settings.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698