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

Side by Side Diff: chrome/installer/gcapi/gcapi_reactivation_test.cc

Issue 9704022: This patch modifies some aspects of GCAPI in support of the new Chrome reactivation functions. (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: Created 8 years, 8 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/installer/gcapi/gcapi_reactivation.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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 }
OLDNEW
« no previous file with comments | « chrome/installer/gcapi/gcapi_reactivation.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698