| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <string> | 5 #include <string> |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/string_number_conversions.h" | 8 #include "base/string_number_conversions.h" |
| 9 #include "base/stringprintf.h" | 9 #include "base/stringprintf.h" |
| 10 #include "base/test/test_reg_util_win.h" | 10 #include "base/test/test_reg_util_win.h" |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 118 } | 118 } |
| 119 | 119 |
| 120 private: | 120 private: |
| 121 registry_util::RegistryOverrideManager override_manager_; | 121 registry_util::RegistryOverrideManager override_manager_; |
| 122 }; | 122 }; |
| 123 | 123 |
| 124 TEST_F(GCAPIReactivationTest, CheckSetReactivationBrandCode) { | 124 TEST_F(GCAPIReactivationTest, CheckSetReactivationBrandCode) { |
| 125 EXPECT_TRUE(SetReactivationBrandCode(L"GAGA", GCAPI_INVOKED_STANDARD_SHELL)); | 125 EXPECT_TRUE(SetReactivationBrandCode(L"GAGA", GCAPI_INVOKED_STANDARD_SHELL)); |
| 126 EXPECT_EQ(L"GAGA", GetReactivationString(HKEY_CURRENT_USER)); | 126 EXPECT_EQ(L"GAGA", GetReactivationString(HKEY_CURRENT_USER)); |
| 127 | 127 |
| 128 std::vector<std::wstring> check_codes; | 128 EXPECT_TRUE(HasBeenReactivated()); |
| 129 check_codes.push_back(L"GAGA"); | |
| 130 EXPECT_TRUE(HasBeenReactivatedByBrandCodes(check_codes)); | |
| 131 | 129 |
| 132 check_codes.push_back(L"GOOGOO"); | |
| 133 EXPECT_TRUE(HasBeenReactivatedByBrandCodes(check_codes)); | |
| 134 | |
| 135 check_codes.erase(check_codes.begin()); | |
| 136 EXPECT_FALSE(HasBeenReactivatedByBrandCodes(check_codes)); | |
| 137 } | 130 } |
| 138 | 131 |
| 139 TEST_F(GCAPIReactivationTest, CanOfferReactivation_Basic) { | 132 TEST_F(GCAPIReactivationTest, CanOfferReactivation_Basic) { |
| 140 const wchar_t* previous_brands[] = {L"GOOGOO", L"MAMA", L"DADA"}; | |
| 141 DWORD error; | 133 DWORD error; |
| 142 | 134 |
| 143 // We're not installed yet. Make sure CanOfferReactivation fails. | 135 // We're not installed yet. Make sure CanOfferReactivation fails. |
| 144 EXPECT_FALSE(CanOfferReactivation(L"GAGA", arraysize(previous_brands), | 136 EXPECT_FALSE(CanOfferReactivation(L"GAGA", |
| 145 previous_brands, | |
| 146 GCAPI_INVOKED_STANDARD_SHELL, | 137 GCAPI_INVOKED_STANDARD_SHELL, |
| 147 &error)); | 138 &error)); |
| 148 EXPECT_EQ(REACTIVATE_ERROR_NOTINSTALLED, error); | 139 EXPECT_EQ(REACTIVATE_ERROR_NOTINSTALLED, error); |
| 149 | 140 |
| 150 // Now pretend to be installed. CanOfferReactivation should pass. | 141 // Now pretend to be installed. CanOfferReactivation should pass. |
| 151 EXPECT_TRUE(SetChromeInstallMarker(HKEY_CURRENT_USER)); | 142 EXPECT_TRUE(SetChromeInstallMarker(HKEY_CURRENT_USER)); |
| 152 EXPECT_TRUE(CanOfferReactivation(L"GAGA", arraysize(previous_brands), | 143 EXPECT_TRUE(CanOfferReactivation(L"GAGA", |
| 153 previous_brands, | |
| 154 GCAPI_INVOKED_STANDARD_SHELL, | 144 GCAPI_INVOKED_STANDARD_SHELL, |
| 155 &error)); | 145 &error)); |
| 156 | 146 |
| 157 // Now set a recent last_run value. CanOfferReactivation should fail again. | 147 // Now set a recent last_run value. CanOfferReactivation should fail again. |
| 158 Time hkcu_last_run = Time::NowFromSystemTime() - TimeDelta::FromDays(20); | 148 Time hkcu_last_run = Time::NowFromSystemTime() - TimeDelta::FromDays(20); |
| 159 EXPECT_TRUE(SetLastRunTime(HKEY_CURRENT_USER, | 149 EXPECT_TRUE(SetLastRunTime(HKEY_CURRENT_USER, |
| 160 hkcu_last_run.ToInternalValue())); | 150 hkcu_last_run.ToInternalValue())); |
| 161 EXPECT_FALSE(CanOfferReactivation(L"GAGA", arraysize(previous_brands), | 151 EXPECT_FALSE(CanOfferReactivation(L"GAGA", |
| 162 previous_brands, | |
| 163 GCAPI_INVOKED_STANDARD_SHELL, | 152 GCAPI_INVOKED_STANDARD_SHELL, |
| 164 &error)); | 153 &error)); |
| 165 EXPECT_EQ(REACTIVATE_ERROR_NOTDORMANT, error); | 154 EXPECT_EQ(REACTIVATE_ERROR_NOTDORMANT, error); |
| 166 | 155 |
| 167 // Now set a last_run value that exceeds the threshold. | 156 // Now set a last_run value that exceeds the threshold. |
| 168 hkcu_last_run = Time::NowFromSystemTime() - | 157 hkcu_last_run = Time::NowFromSystemTime() - |
| 169 TimeDelta::FromDays(kReactivationMinDaysDormant); | 158 TimeDelta::FromDays(kReactivationMinDaysDormant); |
| 170 EXPECT_TRUE(SetLastRunTime(HKEY_CURRENT_USER, | 159 EXPECT_TRUE(SetLastRunTime(HKEY_CURRENT_USER, |
| 171 hkcu_last_run.ToInternalValue())); | 160 hkcu_last_run.ToInternalValue())); |
| 172 EXPECT_TRUE(CanOfferReactivation(L"GAGA", arraysize(previous_brands), | 161 EXPECT_TRUE(CanOfferReactivation(L"GAGA", |
| 173 previous_brands, | |
| 174 GCAPI_INVOKED_STANDARD_SHELL, | 162 GCAPI_INVOKED_STANDARD_SHELL, |
| 175 &error)); | 163 &error)); |
| 176 | 164 |
| 177 // Test some invalid inputs | 165 // Test some invalid inputs |
| 178 EXPECT_FALSE(CanOfferReactivation(NULL, arraysize(previous_brands), | 166 EXPECT_FALSE(CanOfferReactivation(NULL, |
| 179 previous_brands, | |
| 180 GCAPI_INVOKED_STANDARD_SHELL, | 167 GCAPI_INVOKED_STANDARD_SHELL, |
| 181 &error)); | 168 &error)); |
| 182 EXPECT_EQ(REACTIVATE_ERROR_INVALID_INPUT, error); | 169 EXPECT_EQ(REACTIVATE_ERROR_INVALID_INPUT, error); |
| 183 EXPECT_FALSE(CanOfferReactivation(L"GAGA", arraysize(previous_brands), | |
| 184 NULL, GCAPI_INVOKED_STANDARD_SHELL, | |
| 185 &error)); | |
| 186 EXPECT_EQ(REACTIVATE_ERROR_INVALID_INPUT, error); | |
| 187 | 170 |
| 188 // One more valid one | 171 // One more valid one |
| 189 EXPECT_TRUE(CanOfferReactivation(L"GAGA", 0, NULL, | 172 EXPECT_TRUE(CanOfferReactivation(L"GAGA", |
| 190 GCAPI_INVOKED_STANDARD_SHELL, | 173 GCAPI_INVOKED_STANDARD_SHELL, |
| 191 &error)); | 174 &error)); |
| 192 | 175 |
| 193 // Check that the previous brands check works: | 176 // Check that the previous brands check works: |
| 194 EXPECT_TRUE(SetReactivationBrandCode(L"GOOGOO", | 177 EXPECT_TRUE(SetReactivationBrandCode(L"GOOGOO", |
| 195 GCAPI_INVOKED_STANDARD_SHELL)); | 178 GCAPI_INVOKED_STANDARD_SHELL)); |
| 196 EXPECT_FALSE(CanOfferReactivation(L"GAGA", arraysize(previous_brands), | 179 EXPECT_FALSE(CanOfferReactivation(L"GAGA", |
| 197 previous_brands, | |
| 198 GCAPI_INVOKED_STANDARD_SHELL, | 180 GCAPI_INVOKED_STANDARD_SHELL, |
| 199 &error)); | 181 &error)); |
| 200 EXPECT_EQ(REACTIVATE_ERROR_ALREADY_REACTIVATED, error); | 182 EXPECT_EQ(REACTIVATE_ERROR_ALREADY_REACTIVATED, error); |
| 201 } | 183 } |
| 202 | 184 |
| 203 TEST_F(GCAPIReactivationTest, Reactivation_Flow) { | 185 TEST_F(GCAPIReactivationTest, Reactivation_Flow) { |
| 204 const wchar_t* previous_brands[] = {L"GOOGOO", L"MAMA", L"DADA"}; | |
| 205 DWORD error; | 186 DWORD error; |
| 206 | 187 |
| 207 // Set us up as a candidate for reactivation. | 188 // Set us up as a candidate for reactivation. |
| 208 EXPECT_TRUE(SetChromeInstallMarker(HKEY_CURRENT_USER)); | 189 EXPECT_TRUE(SetChromeInstallMarker(HKEY_CURRENT_USER)); |
| 209 | 190 |
| 210 Time hkcu_last_run = Time::NowFromSystemTime() - | 191 Time hkcu_last_run = Time::NowFromSystemTime() - |
| 211 TimeDelta::FromDays(kReactivationMinDaysDormant); | 192 TimeDelta::FromDays(kReactivationMinDaysDormant); |
| 212 EXPECT_TRUE(SetLastRunTime(HKEY_CURRENT_USER, | 193 EXPECT_TRUE(SetLastRunTime(HKEY_CURRENT_USER, |
| 213 hkcu_last_run.ToInternalValue())); | 194 hkcu_last_run.ToInternalValue())); |
| 214 | 195 |
| 215 EXPECT_TRUE(ReactivateChrome(L"GAGA", arraysize(previous_brands), | 196 EXPECT_TRUE(ReactivateChrome(L"GAGA", |
| 216 previous_brands, GCAPI_INVOKED_STANDARD_SHELL, | 197 GCAPI_INVOKED_STANDARD_SHELL, |
| 217 &error)); | 198 &error)); |
| 218 EXPECT_EQ(L"GAGA", GetReactivationString(HKEY_CURRENT_USER)); | 199 EXPECT_EQ(L"GAGA", GetReactivationString(HKEY_CURRENT_USER)); |
| 219 | 200 |
| 220 // Make sure we can't reactivate again: | 201 // Make sure we can't reactivate again: |
| 221 EXPECT_FALSE(ReactivateChrome(L"GAGA", arraysize(previous_brands), | 202 EXPECT_FALSE(ReactivateChrome(L"GAGA", |
| 222 previous_brands, GCAPI_INVOKED_STANDARD_SHELL, | 203 GCAPI_INVOKED_STANDARD_SHELL, |
| 223 &error)); | 204 &error)); |
| 224 EXPECT_EQ(REACTIVATE_ERROR_ALREADY_REACTIVATED, error); | 205 EXPECT_EQ(REACTIVATE_ERROR_ALREADY_REACTIVATED, error); |
| 225 | 206 |
| 226 // Should still be able to reactivate under other brands: | 207 // Should not be able to reactivate under other brands: |
| 227 EXPECT_TRUE(ReactivateChrome(L"MAMA", arraysize(previous_brands), | 208 EXPECT_FALSE(ReactivateChrome(L"MAMA", |
| 228 previous_brands, GCAPI_INVOKED_STANDARD_SHELL, | 209 GCAPI_INVOKED_STANDARD_SHELL, |
| 229 &error)); | 210 &error)); |
| 230 EXPECT_EQ(L"MAMA", GetReactivationString(HKEY_CURRENT_USER)); | 211 EXPECT_EQ(L"GAGA", GetReactivationString(HKEY_CURRENT_USER)); |
| 231 | 212 |
| 232 // Validate that previous_brands are rejected: | 213 // Validate that previous_brands are rejected: |
| 233 EXPECT_FALSE(ReactivateChrome(L"PFFT", arraysize(previous_brands), | 214 EXPECT_FALSE(ReactivateChrome(L"PFFT", |
| 234 previous_brands, GCAPI_INVOKED_STANDARD_SHELL, | 215 GCAPI_INVOKED_STANDARD_SHELL, |
| 235 &error)); | 216 &error)); |
| 236 EXPECT_EQ(REACTIVATE_ERROR_ALREADY_REACTIVATED, error); | 217 EXPECT_EQ(REACTIVATE_ERROR_ALREADY_REACTIVATED, error); |
| 237 EXPECT_EQ(L"MAMA", GetReactivationString(HKEY_CURRENT_USER)); | 218 EXPECT_EQ(L"GAGA", GetReactivationString(HKEY_CURRENT_USER)); |
| 238 } | 219 } |
| 239 | 220 |
| 240 TEST_F(GCAPIReactivationTest, ExperimentLabelCheck) { | 221 TEST_F(GCAPIReactivationTest, ExperimentLabelCheck) { |
| 241 const wchar_t* previous_brands[] = {L"GOOGOO", L"MAMA", L"DADA"}; | |
| 242 DWORD error; | 222 DWORD error; |
| 243 | 223 |
| 244 // Set us up as a candidate for reactivation. | 224 // Set us up as a candidate for reactivation. |
| 245 EXPECT_TRUE(SetChromeInstallMarker(HKEY_CURRENT_USER)); | 225 EXPECT_TRUE(SetChromeInstallMarker(HKEY_CURRENT_USER)); |
| 246 | 226 |
| 247 Time hkcu_last_run = Time::NowFromSystemTime() - | 227 Time hkcu_last_run = Time::NowFromSystemTime() - |
| 248 TimeDelta::FromDays(kReactivationMinDaysDormant); | 228 TimeDelta::FromDays(kReactivationMinDaysDormant); |
| 249 EXPECT_TRUE(SetLastRunTime(HKEY_CURRENT_USER, | 229 EXPECT_TRUE(SetLastRunTime(HKEY_CURRENT_USER, |
| 250 hkcu_last_run.ToInternalValue())); | 230 hkcu_last_run.ToInternalValue())); |
| 251 | 231 |
| 252 EXPECT_TRUE(ReactivateChrome(L"GAGA", arraysize(previous_brands), | 232 EXPECT_TRUE(ReactivateChrome(L"GAGA", |
| 253 previous_brands, GCAPI_INVOKED_STANDARD_SHELL, | 233 GCAPI_INVOKED_STANDARD_SHELL, |
| 254 &error)); | 234 &error)); |
| 255 EXPECT_EQ(L"GAGA", GetReactivationString(HKEY_CURRENT_USER)); | 235 EXPECT_EQ(L"GAGA", GetReactivationString(HKEY_CURRENT_USER)); |
| 256 | 236 |
| 257 EXPECT_TRUE(HasExperimentLabels(HKEY_CURRENT_USER)); | 237 EXPECT_TRUE(HasExperimentLabels(HKEY_CURRENT_USER)); |
| 258 } | 238 } |
| OLD | NEW |