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

Side by Side Diff: goopdate/goopdate_unittest.cc

Issue 624713003: Keep only base/extractor.[cc|h]. (Closed) Base URL: https://chromium.googlesource.com/external/omaha.git@master
Patch Set: Created 6 years, 2 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
« no previous file with comments | « goopdate/goopdate_metrics.cc ('k') | goopdate/goopdate_version.rc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2009 Google Inc.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 // ========================================================================
15
16 #include "omaha/base/constants.h"
17 #include "omaha/base/reg_key.h"
18 #include "omaha/common/command_line.h"
19 #include "omaha/goopdate/goopdate_internal.h"
20 #include "omaha/testing/unit_test.h"
21
22 namespace omaha {
23
24 namespace {
25
26 const TCHAR* const kAppMachineClientStatePath =
27 _T("HKLM\\Software\\") SHORT_COMPANY_NAME _T("\\") PRODUCT_NAME
28 _T("\\ClientState\\{19BE47E4-CF32-48c1-94C4-046507F6A8A6}\\");
29 const TCHAR* const kApp2MachineClientStatePath =
30 _T("HKLM\\Software\\") SHORT_COMPANY_NAME _T("\\") PRODUCT_NAME
31 _T("\\ClientState\\{553B2D8C-E6A7-43ed-ACC9-A8BA5D34395F}\\");
32 const TCHAR* const kAppUserClientStatePath =
33 _T("HKCU\\Software\\") SHORT_COMPANY_NAME _T("\\") PRODUCT_NAME
34 _T("\\ClientState\\{19BE47E4-CF32-48c1-94C4-046507F6A8A6}\\");
35 const TCHAR* const kApp2UserClientStatePath =
36 _T("HKCU\\Software\\") SHORT_COMPANY_NAME _T("\\") PRODUCT_NAME
37 _T("\\ClientState\\{553B2D8C-E6A7-43ed-ACC9-A8BA5D34395F}\\");
38
39 const TCHAR* const kAppMachineClientStateMediumPath =
40 _T("HKLM\\Software\\") SHORT_COMPANY_NAME _T("\\") PRODUCT_NAME
41 _T("\\ClientStateMedium\\{19BE47E4-CF32-48c1-94C4-046507F6A8A6}\\");
42
43 // Update this when new modes are added.
44 const int kLastMode = COMMANDLINE_MODE_PING;
45
46 } // namespace
47
48 class GoopdateRegistryProtectedTest : public testing::Test {
49 protected:
50 GoopdateRegistryProtectedTest()
51 : hive_override_key_name_(kRegistryHiveOverrideRoot) {
52 }
53
54 CString hive_override_key_name_;
55
56 virtual void SetUp() {
57 RegKey::DeleteKey(hive_override_key_name_, true);
58 OverrideRegistryHives(hive_override_key_name_);
59 }
60
61 virtual void TearDown() {
62 RestoreRegistryHives();
63 ASSERT_SUCCEEDED(RegKey::DeleteKey(hive_override_key_name_, true));
64 }
65 };
66
67 TEST_F(GoopdateRegistryProtectedTest,
68 PromoteAppEulaAccepted_Machine_UpdateKeyDoesNotExist_NoAppKeys) {
69 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(true));
70 EXPECT_FALSE(RegKey::HasValue(MACHINE_REG_UPDATE, _T("eulaaccepted")));
71 }
72
73 TEST_F(GoopdateRegistryProtectedTest,
74 PromoteAppEulaAccepted_Machine_UpdateValueDoesNotExist_NoAppKeys) {
75 EXPECT_SUCCEEDED(RegKey::CreateKey(MACHINE_REG_UPDATE));
76 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(true));
77 EXPECT_FALSE(RegKey::HasValue(MACHINE_REG_UPDATE, _T("eulaaccepted")));
78 }
79
80 TEST_F(GoopdateRegistryProtectedTest,
81 PromoteAppEulaAccepted_Machine_UpdateValueDoesNotExist_AppKeyNoValue) {
82 EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStatePath,
83 _T("pv"),
84 _T("1.2.3.4")));
85 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(true));
86 EXPECT_FALSE(RegKey::HasValue(MACHINE_REG_UPDATE, _T("eulaaccepted")));
87 }
88
89 TEST_F(GoopdateRegistryProtectedTest,
90 PromoteAppEulaAccepted_Machine_UpdateValueDoesNotExist_AppValueZero) {
91 EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStatePath,
92 _T("eulaaccepted"),
93 static_cast<DWORD>(0)));
94 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(true));
95 EXPECT_FALSE(RegKey::HasValue(MACHINE_REG_UPDATE, _T("eulaaccepted")));
96 }
97
98 TEST_F(GoopdateRegistryProtectedTest,
99 PromoteAppEulaAccepted_Machine_UpdateZero_NoAppKeys) {
100 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE,
101 _T("eulaaccepted"),
102 static_cast<DWORD>(0)));
103
104 EXPECT_EQ(S_FALSE, internal::PromoteAppEulaAccepted(true));
105
106 DWORD value = UINT_MAX;
107 EXPECT_SUCCEEDED(
108 RegKey::GetValue(MACHINE_REG_UPDATE, _T("eulaaccepted"), &value));
109 EXPECT_EQ(0, value);
110 }
111
112 TEST_F(GoopdateRegistryProtectedTest,
113 PromoteAppEulaAccepted_Machine_UpdateZero_AppKeyNoValue) {
114 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE,
115 _T("eulaaccepted"),
116 static_cast<DWORD>(0)));
117 EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStatePath,
118 _T("pv"),
119 _T("1.2.3.4")));
120
121 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(true));
122
123 DWORD value = UINT_MAX;
124 EXPECT_SUCCEEDED(
125 RegKey::GetValue(MACHINE_REG_UPDATE, _T("eulaaccepted"), &value));
126 EXPECT_EQ(0, value);
127 EXPECT_FALSE(
128 RegKey::HasValue(kAppMachineClientStatePath, _T("eulaaccepted")));
129 }
130
131 TEST_F(GoopdateRegistryProtectedTest,
132 PromoteAppEulaAccepted_Machine_UpdateZero_AppValueZero) {
133 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE,
134 _T("eulaaccepted"),
135 static_cast<DWORD>(0)));
136 EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStatePath,
137 _T("eulaaccepted"),
138 static_cast<DWORD>(0)));
139
140 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(true));
141
142 DWORD value = UINT_MAX;
143 EXPECT_SUCCEEDED(
144 RegKey::GetValue(MACHINE_REG_UPDATE, _T("eulaaccepted"), &value));
145 EXPECT_EQ(0, value);
146 value = UINT_MAX;
147 EXPECT_SUCCEEDED(
148 RegKey::GetValue(kAppMachineClientStatePath, _T("eulaaccepted"), &value));
149 EXPECT_EQ(0, value);
150 }
151
152 TEST_F(GoopdateRegistryProtectedTest,
153 PromoteAppEulaAccepted_Machine_UpdateZero_AppValueOne) {
154 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE,
155 _T("eulaaccepted"),
156 static_cast<DWORD>(0)));
157 EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStatePath,
158 _T("eulaaccepted"),
159 static_cast<DWORD>(1)));
160
161 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(true));
162
163 EXPECT_FALSE(RegKey::HasValue(MACHINE_REG_UPDATE, _T("eulaaccepted")));
164 DWORD value = UINT_MAX;
165 EXPECT_SUCCEEDED(
166 RegKey::GetValue(kAppMachineClientStatePath, _T("eulaaccepted"), &value));
167 EXPECT_EQ(1, value);
168 }
169
170 // Unfortunately, the app's ClientStateMedium key is not checked if there is no
171 // corresponding ClientState key.
172 TEST_F(GoopdateRegistryProtectedTest,
173 PromoteAppEulaAccepted_Machine_UpdateZero_OnlyMediumAppValueOne) {
174 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE,
175 _T("eulaaccepted"),
176 static_cast<DWORD>(0)));
177 EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStateMediumPath,
178 _T("eulaaccepted"),
179 static_cast<DWORD>(1)));
180
181 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(true));
182
183 // The ClientStateMedium was not checked, so eulaaccepted = 0 still exists.
184 EXPECT_TRUE(RegKey::HasValue(MACHINE_REG_UPDATE, _T("eulaaccepted")));
185 DWORD value = UINT_MAX;
186 EXPECT_SUCCEEDED(RegKey::GetValue(MACHINE_REG_UPDATE,
187 _T("eulaaccepted"),
188 &value));
189 EXPECT_EQ(0, value);
190 EXPECT_FALSE(
191 RegKey::HasValue(kAppMachineClientStatePath, _T("eulaaccepted")));
192 value = UINT_MAX;
193 EXPECT_SUCCEEDED(RegKey::GetValue(kAppMachineClientStateMediumPath,
194 _T("eulaaccepted"),
195 &value));
196 EXPECT_EQ(1, value);
197 }
198
199 TEST_F(GoopdateRegistryProtectedTest,
200 PromoteAppEulaAccepted_Machine_UpdateZero_MediumAppValueOneAndStateKey) {
201 EXPECT_SUCCEEDED(RegKey::CreateKey(kAppMachineClientStatePath));
202 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE,
203 _T("eulaaccepted"),
204 static_cast<DWORD>(0)));
205 EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStateMediumPath,
206 _T("eulaaccepted"),
207 static_cast<DWORD>(1)));
208
209 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(true));
210
211 EXPECT_FALSE(RegKey::HasValue(MACHINE_REG_UPDATE, _T("eulaaccepted")));
212 DWORD value = UINT_MAX;
213 EXPECT_SUCCEEDED(RegKey::GetValue(kAppMachineClientStatePath,
214 _T("eulaaccepted"),
215 &value));
216 EXPECT_EQ(1, value);
217 value = UINT_MAX;
218 EXPECT_SUCCEEDED(RegKey::GetValue(kAppMachineClientStateMediumPath,
219 _T("eulaaccepted"),
220 &value));
221 EXPECT_EQ(1, value);
222 }
223
224 // The ClientStateMedium 1 is copied over the ClientState 0.
225 TEST_F(GoopdateRegistryProtectedTest,
226 PromoteAppEulaAccepted_Machine_UpdateZero_AppZeroAppMediumOne) {
227 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE,
228 _T("eulaaccepted"),
229 static_cast<DWORD>(0)));
230 EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStatePath,
231 _T("eulaaccepted"),
232 static_cast<DWORD>(0)));
233 EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStateMediumPath,
234 _T("eulaaccepted"),
235 static_cast<DWORD>(1)));
236
237 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(true));
238
239 EXPECT_FALSE(RegKey::HasValue(MACHINE_REG_UPDATE, _T("eulaaccepted")));
240 DWORD value = UINT_MAX;
241 EXPECT_SUCCEEDED(RegKey::GetValue(kAppMachineClientStatePath,
242 _T("eulaaccepted"),
243 &value));
244 EXPECT_EQ(1, value);
245 value = UINT_MAX;
246 EXPECT_SUCCEEDED(RegKey::GetValue(kAppMachineClientStateMediumPath,
247 _T("eulaaccepted"),
248 &value));
249 EXPECT_EQ(1, value);
250 }
251
252 // The ClientStateMedium 0 is ignored and not copied.
253 TEST_F(GoopdateRegistryProtectedTest,
254 PromoteAppEulaAccepted_Machine_UpdateZero_AppOneAppMediumZero) {
255 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE,
256 _T("eulaaccepted"),
257 static_cast<DWORD>(0)));
258 EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStatePath,
259 _T("eulaaccepted"),
260 static_cast<DWORD>(1)));
261 EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStateMediumPath,
262 _T("eulaaccepted"),
263 static_cast<DWORD>(0)));
264
265 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(true));
266
267 EXPECT_FALSE(RegKey::HasValue(MACHINE_REG_UPDATE, _T("eulaaccepted")));
268 DWORD value = UINT_MAX;
269 EXPECT_SUCCEEDED(RegKey::GetValue(kAppMachineClientStatePath,
270 _T("eulaaccepted"),
271 &value));
272 EXPECT_EQ(1, value);
273 value = UINT_MAX;
274 EXPECT_SUCCEEDED(RegKey::GetValue(kAppMachineClientStateMediumPath,
275 _T("eulaaccepted"),
276 &value));
277 EXPECT_EQ(0, value);
278 }
279
280 TEST_F(GoopdateRegistryProtectedTest,
281 PromoteAppEulaAccepted_Machine_UpdateZero_FirstAppZeroSecondAppOne) {
282 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE,
283 _T("eulaaccepted"),
284 static_cast<DWORD>(0)));
285 EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStatePath,
286 _T("eulaaccepted"),
287 static_cast<DWORD>(0)));
288 EXPECT_SUCCEEDED(RegKey::SetValue(kApp2MachineClientStatePath,
289 _T("eulaaccepted"),
290 static_cast<DWORD>(1)));
291
292 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(true));
293
294 EXPECT_FALSE(RegKey::HasValue(MACHINE_REG_UPDATE, _T("eulaaccepted")));
295 DWORD value = UINT_MAX;
296 EXPECT_SUCCEEDED(
297 RegKey::GetValue(kAppMachineClientStatePath, _T("eulaaccepted"), &value));
298 EXPECT_EQ(0, value);
299 value = UINT_MAX;
300 EXPECT_SUCCEEDED(RegKey::GetValue(kApp2MachineClientStatePath,
301 _T("eulaaccepted"),
302 &value));
303 EXPECT_EQ(1, value);
304 }
305
306 TEST_F(GoopdateRegistryProtectedTest,
307 PromoteAppEulaAccepted_Machine_UpdateZero_FirstAppNoValueSecondAppOne) {
308 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE,
309 _T("eulaaccepted"),
310 static_cast<DWORD>(0)));
311 EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStatePath,
312 _T("pv"),
313 _T("1.2.3.4")));
314 EXPECT_SUCCEEDED(RegKey::SetValue(kApp2MachineClientStatePath,
315 _T("eulaaccepted"),
316 static_cast<DWORD>(1)));
317
318 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(true));
319
320 EXPECT_FALSE(RegKey::HasValue(MACHINE_REG_UPDATE, _T("eulaaccepted")));
321 EXPECT_FALSE(
322 RegKey::HasValue(kAppMachineClientStatePath, _T("eulaaccepted")));
323 DWORD value = UINT_MAX;
324 EXPECT_SUCCEEDED(RegKey::GetValue(kApp2MachineClientStatePath,
325 _T("eulaaccepted"),
326 &value));
327 EXPECT_EQ(1, value);
328 }
329
330 // Asserts because this is an unexpected case.
331 TEST_F(GoopdateRegistryProtectedTest,
332 PromoteAppEulaAccepted_Machine_UpdateZero_UpdateClientStateOne) {
333 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE,
334 _T("eulaaccepted"),
335 static_cast<DWORD>(0)));
336 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_CLIENT_STATE_GOOPDATE,
337 _T("eulaaccepted"),
338 static_cast<DWORD>(1)));
339
340 ExpectAsserts expect_asserts;
341 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(true));
342
343 EXPECT_FALSE(RegKey::HasValue(MACHINE_REG_UPDATE, _T("eulaaccepted")));
344 DWORD value = UINT_MAX;
345 EXPECT_SUCCEEDED(RegKey::GetValue(MACHINE_REG_CLIENT_STATE_GOOPDATE,
346 _T("eulaaccepted"),
347 &value));
348 EXPECT_EQ(1, value);
349 }
350
351 TEST_F(GoopdateRegistryProtectedTest,
352 PromoteAppEulaAccepted_Machine_UpdateZero_UserAppOne) {
353 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE,
354 _T("eulaaccepted"),
355 static_cast<DWORD>(0)));
356 EXPECT_SUCCEEDED(RegKey::SetValue(kAppUserClientStatePath,
357 _T("eulaaccepted"),
358 static_cast<DWORD>(1)));
359
360 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(true));
361
362 DWORD value = UINT_MAX;
363 EXPECT_SUCCEEDED(
364 RegKey::GetValue(MACHINE_REG_UPDATE, _T("eulaaccepted"), &value));
365 EXPECT_EQ(0, value);
366 value = UINT_MAX;
367 EXPECT_SUCCEEDED(
368 RegKey::GetValue(kAppUserClientStatePath, _T("eulaaccepted"), &value));
369 EXPECT_EQ(1, value);
370 }
371
372 TEST_F(GoopdateRegistryProtectedTest,
373 PromoteAppEulaAccepted_Machine_UpdateOne_AppZero) {
374 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE,
375 _T("eulaaccepted"),
376 static_cast<DWORD>(1)));
377 EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStatePath,
378 _T("eulaaccepted"),
379 static_cast<DWORD>(0)));
380
381 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(true));
382
383 DWORD value = UINT_MAX;
384 EXPECT_SUCCEEDED(
385 RegKey::GetValue(MACHINE_REG_UPDATE, _T("eulaaccepted"), &value));
386 EXPECT_EQ(1, value);
387 value = UINT_MAX;
388 EXPECT_SUCCEEDED(
389 RegKey::GetValue(kAppMachineClientStatePath, _T("eulaaccepted"), &value));
390 EXPECT_EQ(0, value);
391 }
392
393 // The fact that the value is deleted also tells us that the method continued
394 // processing because the value existed even though the value was not zero.
395 TEST_F(GoopdateRegistryProtectedTest,
396 PromoteAppEulaAccepted_Machine_UpdateOne_AppOne) {
397 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE,
398 _T("eulaaccepted"),
399 static_cast<DWORD>(1)));
400 EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStatePath,
401 _T("eulaaccepted"),
402 static_cast<DWORD>(1)));
403
404 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(true));
405
406 EXPECT_FALSE(RegKey::HasValue(MACHINE_REG_UPDATE, _T("eulaaccepted")));
407 DWORD value = UINT_MAX;
408 EXPECT_SUCCEEDED(
409 RegKey::GetValue(kAppMachineClientStatePath, _T("eulaaccepted"), &value));
410 EXPECT_EQ(1, value);
411 }
412
413 TEST_F(GoopdateRegistryProtectedTest,
414 PromoteAppEulaAccepted_User_UpdateKeyDoesNotExist_NoAppKeys) {
415 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(false));
416 EXPECT_FALSE(RegKey::HasValue(USER_REG_UPDATE, _T("eulaaccepted")));
417 }
418
419 TEST_F(GoopdateRegistryProtectedTest,
420 PromoteAppEulaAccepted_User_UpdateValueDoesNotExist_NoAppKeys) {
421 EXPECT_SUCCEEDED(RegKey::CreateKey(USER_REG_UPDATE));
422 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(false));
423 EXPECT_FALSE(RegKey::HasValue(USER_REG_UPDATE, _T("eulaaccepted")));
424 }
425
426 TEST_F(GoopdateRegistryProtectedTest,
427 PromoteAppEulaAccepted_User_UpdateValueDoesNotExist_AppKeyNoValue) {
428 EXPECT_SUCCEEDED(RegKey::SetValue(kAppUserClientStatePath,
429 _T("pv"),
430 _T("1.2.3.4")));
431 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(false));
432 EXPECT_FALSE(RegKey::HasValue(USER_REG_UPDATE, _T("eulaaccepted")));
433 }
434
435 TEST_F(GoopdateRegistryProtectedTest,
436 PromoteAppEulaAccepted_User_UpdateValueDoesNotExist_AppValueZero) {
437 EXPECT_SUCCEEDED(RegKey::SetValue(kAppUserClientStatePath,
438 _T("eulaaccepted"),
439 static_cast<DWORD>(0)));
440 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(false));
441 EXPECT_FALSE(RegKey::HasValue(USER_REG_UPDATE, _T("eulaaccepted")));
442 }
443
444 TEST_F(GoopdateRegistryProtectedTest,
445 PromoteAppEulaAccepted_User_UpdateZero_NoAppKeys) {
446 EXPECT_SUCCEEDED(RegKey::SetValue(USER_REG_UPDATE,
447 _T("eulaaccepted"),
448 static_cast<DWORD>(0)));
449
450 EXPECT_EQ(S_FALSE, internal::PromoteAppEulaAccepted(false));
451
452 DWORD value = UINT_MAX;
453 EXPECT_SUCCEEDED(
454 RegKey::GetValue(USER_REG_UPDATE, _T("eulaaccepted"), &value));
455 EXPECT_EQ(0, value);
456 }
457
458 TEST_F(GoopdateRegistryProtectedTest,
459 PromoteAppEulaAccepted_User_UpdateZero_AppKeyNoValue) {
460 EXPECT_SUCCEEDED(RegKey::SetValue(USER_REG_UPDATE,
461 _T("eulaaccepted"),
462 static_cast<DWORD>(0)));
463 EXPECT_SUCCEEDED(RegKey::SetValue(kAppUserClientStatePath,
464 _T("pv"),
465 _T("1.2.3.4")));
466
467 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(false));
468
469 DWORD value = UINT_MAX;
470 EXPECT_SUCCEEDED(
471 RegKey::GetValue(USER_REG_UPDATE, _T("eulaaccepted"), &value));
472 EXPECT_EQ(0, value);
473 EXPECT_FALSE(
474 RegKey::HasValue(kAppUserClientStatePath, _T("eulaaccepted")));
475 }
476
477 TEST_F(GoopdateRegistryProtectedTest,
478 PromoteAppEulaAccepted_User_UpdateZero_AppValueZero) {
479 EXPECT_SUCCEEDED(RegKey::SetValue(USER_REG_UPDATE,
480 _T("eulaaccepted"),
481 static_cast<DWORD>(0)));
482 EXPECT_SUCCEEDED(RegKey::SetValue(kAppUserClientStatePath,
483 _T("eulaaccepted"),
484 static_cast<DWORD>(0)));
485
486 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(false));
487
488 DWORD value = UINT_MAX;
489 EXPECT_SUCCEEDED(
490 RegKey::GetValue(USER_REG_UPDATE, _T("eulaaccepted"), &value));
491 EXPECT_EQ(0, value);
492 value = UINT_MAX;
493 EXPECT_SUCCEEDED(
494 RegKey::GetValue(kAppUserClientStatePath, _T("eulaaccepted"), &value));
495 EXPECT_EQ(0, value);
496 }
497
498 TEST_F(GoopdateRegistryProtectedTest,
499 PromoteAppEulaAccepted_User_UpdateZero_FirstAppZeroSecondAppOne) {
500 EXPECT_SUCCEEDED(RegKey::SetValue(USER_REG_UPDATE,
501 _T("eulaaccepted"),
502 static_cast<DWORD>(0)));
503 EXPECT_SUCCEEDED(RegKey::SetValue(kAppUserClientStatePath,
504 _T("eulaaccepted"),
505 static_cast<DWORD>(0)));
506 EXPECT_SUCCEEDED(RegKey::SetValue(kApp2UserClientStatePath,
507 _T("eulaaccepted"),
508 static_cast<DWORD>(1)));
509
510 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(false));
511
512 EXPECT_FALSE(RegKey::HasValue(USER_REG_UPDATE, _T("eulaaccepted")));
513 DWORD value = UINT_MAX;
514 EXPECT_SUCCEEDED(
515 RegKey::GetValue(kAppUserClientStatePath, _T("eulaaccepted"), &value));
516 EXPECT_EQ(0, value);
517 value = UINT_MAX;
518 EXPECT_SUCCEEDED(
519 RegKey::GetValue(kApp2UserClientStatePath, _T("eulaaccepted"), &value));
520 EXPECT_EQ(1, value);
521 }
522
523 TEST_F(GoopdateRegistryProtectedTest,
524 PromoteAppEulaAccepted_User_UpdateZero_FirstAppNoValueSecondAppOne) {
525 EXPECT_SUCCEEDED(RegKey::SetValue(USER_REG_UPDATE,
526 _T("eulaaccepted"),
527 static_cast<DWORD>(0)));
528 EXPECT_SUCCEEDED(RegKey::SetValue(kAppUserClientStatePath,
529 _T("pv"),
530 _T("1.2.3.4")));
531 EXPECT_SUCCEEDED(RegKey::SetValue(kApp2UserClientStatePath,
532 _T("eulaaccepted"),
533 static_cast<DWORD>(1)));
534
535 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(false));
536
537 EXPECT_FALSE(RegKey::HasValue(USER_REG_UPDATE, _T("eulaaccepted")));
538 EXPECT_FALSE(
539 RegKey::HasValue(kAppUserClientStatePath, _T("eulaaccepted")));
540 DWORD value = UINT_MAX;
541 EXPECT_SUCCEEDED(
542 RegKey::GetValue(kApp2UserClientStatePath, _T("eulaaccepted"), &value));
543 EXPECT_EQ(1, value);
544 }
545
546 // Asserts because this is an unexpected case.
547 TEST_F(GoopdateRegistryProtectedTest,
548 PromoteAppEulaAccepted_User_UpdateZero_UpdateClientStateOne) {
549 EXPECT_SUCCEEDED(RegKey::SetValue(USER_REG_UPDATE,
550 _T("eulaaccepted"),
551 static_cast<DWORD>(0)));
552 EXPECT_SUCCEEDED(RegKey::SetValue(USER_REG_CLIENT_STATE_GOOPDATE,
553 _T("eulaaccepted"),
554 static_cast<DWORD>(1)));
555
556 ExpectAsserts expect_asserts;
557 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(false));
558
559 EXPECT_FALSE(RegKey::HasValue(USER_REG_UPDATE, _T("eulaaccepted")));
560 DWORD value = UINT_MAX;
561 EXPECT_SUCCEEDED(RegKey::GetValue(USER_REG_CLIENT_STATE_GOOPDATE,
562 _T("eulaaccepted"),
563 &value));
564 EXPECT_EQ(1, value);
565 }
566
567 TEST_F(GoopdateRegistryProtectedTest,
568 PromoteAppEulaAccepted_User_UpdateOne_AppZero) {
569 EXPECT_SUCCEEDED(RegKey::SetValue(USER_REG_UPDATE,
570 _T("eulaaccepted"),
571 static_cast<DWORD>(1)));
572 EXPECT_SUCCEEDED(RegKey::SetValue(kAppUserClientStatePath,
573 _T("eulaaccepted"),
574 static_cast<DWORD>(0)));
575
576 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(false));
577
578 DWORD value = UINT_MAX;
579 EXPECT_SUCCEEDED(
580 RegKey::GetValue(USER_REG_UPDATE, _T("eulaaccepted"), &value));
581 EXPECT_EQ(1, value);
582 value = UINT_MAX;
583 EXPECT_SUCCEEDED(
584 RegKey::GetValue(kAppUserClientStatePath, _T("eulaaccepted"), &value));
585 EXPECT_EQ(0, value);
586 }
587
588 // The fact that the value is deleted also tells us that the method continued
589 // processing because the value existed even though the value was not zero.
590 TEST_F(GoopdateRegistryProtectedTest,
591 PromoteAppEulaAccepted_User_UpdateOne_AppOne) {
592 EXPECT_SUCCEEDED(RegKey::SetValue(USER_REG_UPDATE,
593 _T("eulaaccepted"),
594 static_cast<DWORD>(1)));
595 EXPECT_SUCCEEDED(RegKey::SetValue(kAppUserClientStatePath,
596 _T("eulaaccepted"),
597 static_cast<DWORD>(1)));
598
599 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(false));
600
601 EXPECT_FALSE(RegKey::HasValue(USER_REG_UPDATE, _T("eulaaccepted")));
602 DWORD value = UINT_MAX;
603 EXPECT_SUCCEEDED(
604 RegKey::GetValue(kAppUserClientStatePath, _T("eulaaccepted"), &value));
605 EXPECT_EQ(1, value);
606 }
607
608 TEST_F(GoopdateRegistryProtectedTest,
609 PromoteAppEulaAccepted_User_UpdateZero_MachineAppOne) {
610 EXPECT_SUCCEEDED(RegKey::SetValue(USER_REG_UPDATE,
611 _T("eulaaccepted"),
612 static_cast<DWORD>(0)));
613 EXPECT_SUCCEEDED(RegKey::SetValue(kAppMachineClientStatePath,
614 _T("eulaaccepted"),
615 static_cast<DWORD>(1)));
616
617 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(false));
618
619 DWORD value = UINT_MAX;
620 EXPECT_SUCCEEDED(
621 RegKey::GetValue(USER_REG_UPDATE, _T("eulaaccepted"), &value));
622 EXPECT_EQ(0, value);
623 value = UINT_MAX;
624 EXPECT_SUCCEEDED(
625 RegKey::GetValue(kAppMachineClientStatePath, _T("eulaaccepted"), &value));
626 EXPECT_EQ(1, value);
627 }
628
629 // ClientStateMedium is not used.
630 TEST_F(GoopdateRegistryProtectedTest,
631 PromoteAppEulaAccepted_User_UpdateZero_MediumAppValueOneAndStateKey) {
632 const TCHAR* const kAppUserClientStateMediumPath =
633 _T("HKCU\\Software\\") SHORT_COMPANY_NAME _T("\\") PRODUCT_NAME
634 _T("\\ClientStateMedium\\{19BE47E4-CF32-48c1-94C4-046507F6A8A6}\\");
635
636 EXPECT_SUCCEEDED(RegKey::CreateKey(kAppUserClientStatePath));
637 EXPECT_SUCCEEDED(RegKey::SetValue(USER_REG_UPDATE,
638 _T("eulaaccepted"),
639 static_cast<DWORD>(0)));
640 EXPECT_SUCCEEDED(RegKey::SetValue(kAppUserClientStateMediumPath,
641 _T("eulaaccepted"),
642 static_cast<DWORD>(1)));
643
644 EXPECT_SUCCEEDED(internal::PromoteAppEulaAccepted(false));
645
646 DWORD value = UINT_MAX;
647 EXPECT_SUCCEEDED(RegKey::GetValue(USER_REG_UPDATE,
648 _T("eulaaccepted"),
649 &value));
650 EXPECT_EQ(0, value);
651 EXPECT_FALSE(
652 RegKey::HasValue(kAppUserClientStatePath, _T("eulaaccepted")));
653 value = UINT_MAX;
654 EXPECT_SUCCEEDED(RegKey::GetValue(kAppUserClientStateMediumPath,
655 _T("eulaaccepted"),
656 &value));
657 EXPECT_EQ(1, value);
658 }
659
660 //
661 // IsMachineProcess tests.
662 //
663
664 class GoopdateIsMachineProcessTest : public testing::Test {
665 protected:
666 bool FromMachineDirHelper(CommandLineMode mode) {
667 return internal::IsMachineProcess(mode,
668 true,
669 false,
670 false,
671 TRISTATE_NONE);
672 }
673
674 bool IsLocalSystemHelper(CommandLineMode mode) {
675 return internal::IsMachineProcess(mode,
676 false,
677 true,
678 false,
679 TRISTATE_NONE);
680 }
681
682 bool MachineOverrideHelper(CommandLineMode mode) {
683 return internal::IsMachineProcess(mode,
684 false,
685 false,
686 true,
687 TRISTATE_NONE);
688 }
689
690 bool NeedsAdminFalseHelper(CommandLineMode mode) {
691 return internal::IsMachineProcess(mode,
692 false,
693 false,
694 false,
695 TRISTATE_FALSE);
696 }
697
698 bool NeedsAdminTrueHelper(CommandLineMode mode) {
699 return internal::IsMachineProcess(mode,
700 false,
701 false,
702 false,
703 TRISTATE_TRUE);
704 }
705 };
706
707 // Unused function. Its sole purpose is to make sure that the unit tests below
708 // were correctly updated when new modes were added.
709 #pragma warning(push)
710 // enumerator 'identifier' in switch of enum 'enumeration' is not explicitly
711 // handled by a case label.
712 // enumerator 'identifier' in switch of enum 'enumeration' is not handled.
713 #pragma warning(1: 4061 4062)
714 static void EnsureUnitTestUpdatedWithNewModes() {
715 CommandLineMode unused_mode;
716 switch (unused_mode) {
717 case COMMANDLINE_MODE_UNKNOWN:
718 case COMMANDLINE_MODE_NOARGS:
719 case COMMANDLINE_MODE_CORE:
720 case COMMANDLINE_MODE_SERVICE:
721 case COMMANDLINE_MODE_REGSERVER:
722 case COMMANDLINE_MODE_UNREGSERVER:
723 case COMMANDLINE_MODE_NETDIAGS:
724 case COMMANDLINE_MODE_CRASH:
725 case COMMANDLINE_MODE_REPORTCRASH:
726 case COMMANDLINE_MODE_INSTALL:
727 case COMMANDLINE_MODE_UPDATE:
728 case COMMANDLINE_MODE_HANDOFF_INSTALL:
729 case COMMANDLINE_MODE_UA:
730 case COMMANDLINE_MODE_RECOVER:
731 case COMMANDLINE_MODE_WEBPLUGIN:
732 case COMMANDLINE_MODE_CODE_RED_CHECK:
733 case COMMANDLINE_MODE_COMSERVER:
734 case COMMANDLINE_MODE_REGISTER_PRODUCT:
735 case COMMANDLINE_MODE_UNREGISTER_PRODUCT:
736 case COMMANDLINE_MODE_SERVICE_REGISTER:
737 case COMMANDLINE_MODE_SERVICE_UNREGISTER:
738 case COMMANDLINE_MODE_CRASH_HANDLER:
739 case COMMANDLINE_MODE_COMBROKER:
740 case COMMANDLINE_MODE_ONDEMAND:
741 case COMMANDLINE_MODE_MEDIUM_SERVICE:
742 case COMMANDLINE_MODE_UNINSTALL:
743 case COMMANDLINE_MODE_PING:
744 //
745 // When adding a new mode, be sure to update kLastMode too.
746 //
747 break;
748 }
749 }
750 #pragma warning(pop)
751
752 TEST_F(GoopdateIsMachineProcessTest, IsMachineProcess_MachineDirOnly) {
753 EXPECT_TRUE(FromMachineDirHelper(COMMANDLINE_MODE_UNKNOWN));
754 EXPECT_TRUE(FromMachineDirHelper(COMMANDLINE_MODE_NOARGS));
755 EXPECT_FALSE(FromMachineDirHelper(COMMANDLINE_MODE_CORE));
756 {
757 ExpectAsserts expect_asserts;
758 EXPECT_FALSE(FromMachineDirHelper(COMMANDLINE_MODE_SERVICE));
759 }
760 EXPECT_TRUE(FromMachineDirHelper(COMMANDLINE_MODE_REGSERVER));
761 EXPECT_TRUE(FromMachineDirHelper(COMMANDLINE_MODE_UNREGSERVER));
762 EXPECT_TRUE(FromMachineDirHelper(COMMANDLINE_MODE_NETDIAGS));
763 EXPECT_TRUE(FromMachineDirHelper(COMMANDLINE_MODE_CRASH));
764 // TODO(omaha): Change to machine.
765 EXPECT_FALSE(FromMachineDirHelper(COMMANDLINE_MODE_REPORTCRASH));
766 {
767 ExpectAsserts expect_asserts;
768 EXPECT_FALSE(FromMachineDirHelper(COMMANDLINE_MODE_INSTALL));
769 }
770 EXPECT_FALSE(FromMachineDirHelper(COMMANDLINE_MODE_UPDATE));
771 {
772 ExpectAsserts expect_asserts;
773 EXPECT_FALSE(FromMachineDirHelper(COMMANDLINE_MODE_HANDOFF_INSTALL));
774 }
775 EXPECT_FALSE(FromMachineDirHelper(COMMANDLINE_MODE_UA));
776 EXPECT_FALSE(FromMachineDirHelper(COMMANDLINE_MODE_RECOVER));
777 EXPECT_TRUE(FromMachineDirHelper(COMMANDLINE_MODE_WEBPLUGIN));
778 EXPECT_FALSE(FromMachineDirHelper(COMMANDLINE_MODE_CODE_RED_CHECK));
779 EXPECT_TRUE(FromMachineDirHelper(COMMANDLINE_MODE_COMSERVER));
780 {
781 ExpectAsserts expect_asserts;
782 EXPECT_FALSE(FromMachineDirHelper(COMMANDLINE_MODE_REGISTER_PRODUCT));
783 }
784 {
785 ExpectAsserts expect_asserts;
786 EXPECT_FALSE(FromMachineDirHelper(COMMANDLINE_MODE_UNREGISTER_PRODUCT));
787 }
788 EXPECT_TRUE(FromMachineDirHelper(COMMANDLINE_MODE_SERVICE_REGISTER));
789 EXPECT_TRUE(FromMachineDirHelper(COMMANDLINE_MODE_SERVICE_UNREGISTER));
790 EXPECT_FALSE(FromMachineDirHelper(COMMANDLINE_MODE_CRASH_HANDLER));
791 EXPECT_TRUE(FromMachineDirHelper(COMMANDLINE_MODE_COMBROKER));
792 EXPECT_TRUE(FromMachineDirHelper(COMMANDLINE_MODE_ONDEMAND));
793 {
794 ExpectAsserts expect_asserts;
795 EXPECT_FALSE(FromMachineDirHelper(COMMANDLINE_MODE_MEDIUM_SERVICE));
796 }
797 EXPECT_TRUE(FromMachineDirHelper(COMMANDLINE_MODE_UNINSTALL));
798 EXPECT_TRUE(FromMachineDirHelper(COMMANDLINE_MODE_PING));
799 EXPECT_TRUE(FromMachineDirHelper(
800 static_cast<CommandLineMode>(kLastMode + 1)));
801 }
802
803 TEST_F(GoopdateIsMachineProcessTest, IsMachineProcess_IsLocalSystemOnly) {
804 EXPECT_FALSE(IsLocalSystemHelper(COMMANDLINE_MODE_UNKNOWN));
805 EXPECT_FALSE(IsLocalSystemHelper(COMMANDLINE_MODE_NOARGS));
806 EXPECT_TRUE(IsLocalSystemHelper(COMMANDLINE_MODE_CORE));
807 EXPECT_TRUE(IsLocalSystemHelper(COMMANDLINE_MODE_SERVICE));
808 EXPECT_FALSE(IsLocalSystemHelper(COMMANDLINE_MODE_REGSERVER));
809 EXPECT_FALSE(IsLocalSystemHelper(COMMANDLINE_MODE_UNREGSERVER));
810 EXPECT_FALSE(IsLocalSystemHelper(COMMANDLINE_MODE_NETDIAGS));
811 EXPECT_FALSE(IsLocalSystemHelper(COMMANDLINE_MODE_CRASH));
812 EXPECT_FALSE(IsLocalSystemHelper(COMMANDLINE_MODE_REPORTCRASH));
813 {
814 ExpectAsserts expect_asserts;
815 EXPECT_FALSE(IsLocalSystemHelper(COMMANDLINE_MODE_INSTALL));
816 }
817 EXPECT_TRUE(IsLocalSystemHelper(COMMANDLINE_MODE_UPDATE));
818 {
819 ExpectAsserts expect_asserts;
820 EXPECT_FALSE(IsLocalSystemHelper(COMMANDLINE_MODE_HANDOFF_INSTALL));
821 }
822 EXPECT_TRUE(IsLocalSystemHelper(COMMANDLINE_MODE_UA));
823 EXPECT_FALSE(IsLocalSystemHelper(COMMANDLINE_MODE_RECOVER));
824 EXPECT_FALSE(IsLocalSystemHelper(COMMANDLINE_MODE_WEBPLUGIN));
825 EXPECT_TRUE(IsLocalSystemHelper(COMMANDLINE_MODE_CODE_RED_CHECK));
826 EXPECT_FALSE(IsLocalSystemHelper(COMMANDLINE_MODE_COMSERVER));
827 {
828 ExpectAsserts expect_asserts;
829 EXPECT_FALSE(IsLocalSystemHelper(COMMANDLINE_MODE_REGISTER_PRODUCT));
830 }
831 {
832 ExpectAsserts expect_asserts;
833 EXPECT_FALSE(IsLocalSystemHelper(COMMANDLINE_MODE_UNREGISTER_PRODUCT));
834 }
835 EXPECT_TRUE(IsLocalSystemHelper(COMMANDLINE_MODE_SERVICE_REGISTER));
836 EXPECT_TRUE(IsLocalSystemHelper(COMMANDLINE_MODE_SERVICE_UNREGISTER));
837 EXPECT_TRUE(IsLocalSystemHelper(COMMANDLINE_MODE_CRASH_HANDLER));
838 EXPECT_FALSE(IsLocalSystemHelper(COMMANDLINE_MODE_COMBROKER));
839 EXPECT_FALSE(IsLocalSystemHelper(COMMANDLINE_MODE_ONDEMAND));
840 EXPECT_TRUE(IsLocalSystemHelper(COMMANDLINE_MODE_MEDIUM_SERVICE));
841 EXPECT_FALSE(IsLocalSystemHelper(COMMANDLINE_MODE_UNINSTALL));
842 EXPECT_FALSE(IsLocalSystemHelper(COMMANDLINE_MODE_PING));
843 EXPECT_FALSE(IsLocalSystemHelper(
844 static_cast<CommandLineMode>(kLastMode + 1)));
845 }
846
847 TEST_F(GoopdateIsMachineProcessTest, IsMachineProcess_MachineOverrideOnly) {
848 EXPECT_FALSE(MachineOverrideHelper(COMMANDLINE_MODE_UNKNOWN));
849 EXPECT_FALSE(MachineOverrideHelper(COMMANDLINE_MODE_NOARGS));
850 EXPECT_FALSE(MachineOverrideHelper(COMMANDLINE_MODE_CORE));
851 {
852 ExpectAsserts expect_asserts;
853 EXPECT_FALSE(MachineOverrideHelper(COMMANDLINE_MODE_SERVICE));
854 }
855 EXPECT_FALSE(MachineOverrideHelper(COMMANDLINE_MODE_REGSERVER));
856 EXPECT_FALSE(MachineOverrideHelper(COMMANDLINE_MODE_UNREGSERVER));
857 EXPECT_FALSE(MachineOverrideHelper(COMMANDLINE_MODE_NETDIAGS));
858 EXPECT_FALSE(MachineOverrideHelper(COMMANDLINE_MODE_CRASH));
859 EXPECT_TRUE(MachineOverrideHelper(COMMANDLINE_MODE_REPORTCRASH));
860 {
861 ExpectAsserts expect_asserts;
862 EXPECT_FALSE(MachineOverrideHelper(COMMANDLINE_MODE_INSTALL));
863 }
864 EXPECT_FALSE(MachineOverrideHelper(COMMANDLINE_MODE_UPDATE));
865 {
866 ExpectAsserts expect_asserts;
867 EXPECT_FALSE(MachineOverrideHelper(COMMANDLINE_MODE_HANDOFF_INSTALL));
868 }
869 EXPECT_TRUE(MachineOverrideHelper(COMMANDLINE_MODE_UA));
870 EXPECT_TRUE(MachineOverrideHelper(COMMANDLINE_MODE_RECOVER));
871 EXPECT_FALSE(MachineOverrideHelper(COMMANDLINE_MODE_WEBPLUGIN));
872 EXPECT_FALSE(MachineOverrideHelper(COMMANDLINE_MODE_CODE_RED_CHECK));
873 EXPECT_FALSE(MachineOverrideHelper(COMMANDLINE_MODE_COMSERVER));
874 {
875 ExpectAsserts expect_asserts;
876 EXPECT_FALSE(MachineOverrideHelper(COMMANDLINE_MODE_REGISTER_PRODUCT));
877 }
878 {
879 ExpectAsserts expect_asserts;
880 EXPECT_FALSE(MachineOverrideHelper(COMMANDLINE_MODE_UNREGISTER_PRODUCT));
881 }
882 EXPECT_TRUE(MachineOverrideHelper(COMMANDLINE_MODE_SERVICE_REGISTER));
883 EXPECT_TRUE(MachineOverrideHelper(COMMANDLINE_MODE_SERVICE_UNREGISTER));
884 EXPECT_FALSE(MachineOverrideHelper(COMMANDLINE_MODE_CRASH_HANDLER));
885 EXPECT_FALSE(MachineOverrideHelper(COMMANDLINE_MODE_COMBROKER));
886 EXPECT_FALSE(MachineOverrideHelper(COMMANDLINE_MODE_ONDEMAND));
887 {
888 ExpectAsserts expect_asserts;
889 EXPECT_FALSE(MachineOverrideHelper(COMMANDLINE_MODE_MEDIUM_SERVICE));
890 }
891 EXPECT_FALSE(MachineOverrideHelper(COMMANDLINE_MODE_UNINSTALL));
892 EXPECT_FALSE(MachineOverrideHelper(COMMANDLINE_MODE_PING));
893 EXPECT_FALSE(MachineOverrideHelper(
894 static_cast<CommandLineMode>(kLastMode + 1)));
895 }
896
897 TEST_F(GoopdateIsMachineProcessTest, IsMachineProcess_NeedsAdminFalseOnly) {
898 EXPECT_FALSE(NeedsAdminFalseHelper(COMMANDLINE_MODE_UNKNOWN));
899 EXPECT_FALSE(NeedsAdminFalseHelper(COMMANDLINE_MODE_NOARGS));
900 EXPECT_FALSE(NeedsAdminFalseHelper(COMMANDLINE_MODE_CORE));
901 {
902 ExpectAsserts expect_asserts;
903 EXPECT_FALSE(NeedsAdminFalseHelper(COMMANDLINE_MODE_SERVICE));
904 }
905 EXPECT_FALSE(NeedsAdminFalseHelper(COMMANDLINE_MODE_REGSERVER));
906 EXPECT_FALSE(NeedsAdminFalseHelper(COMMANDLINE_MODE_UNREGSERVER));
907 EXPECT_FALSE(NeedsAdminFalseHelper(COMMANDLINE_MODE_NETDIAGS));
908 EXPECT_FALSE(NeedsAdminFalseHelper(COMMANDLINE_MODE_CRASH));
909 EXPECT_FALSE(NeedsAdminFalseHelper(COMMANDLINE_MODE_REPORTCRASH));
910 EXPECT_FALSE(NeedsAdminFalseHelper(COMMANDLINE_MODE_INSTALL));
911 EXPECT_FALSE(NeedsAdminFalseHelper(COMMANDLINE_MODE_UPDATE));
912 EXPECT_FALSE(NeedsAdminFalseHelper(COMMANDLINE_MODE_HANDOFF_INSTALL));
913 EXPECT_FALSE(NeedsAdminFalseHelper(COMMANDLINE_MODE_UA));
914 EXPECT_FALSE(NeedsAdminFalseHelper(COMMANDLINE_MODE_RECOVER));
915 EXPECT_FALSE(NeedsAdminFalseHelper(COMMANDLINE_MODE_WEBPLUGIN));
916 EXPECT_FALSE(NeedsAdminFalseHelper(COMMANDLINE_MODE_CODE_RED_CHECK));
917 EXPECT_FALSE(NeedsAdminFalseHelper(COMMANDLINE_MODE_COMSERVER));
918 EXPECT_FALSE(NeedsAdminFalseHelper(COMMANDLINE_MODE_REGISTER_PRODUCT));
919 EXPECT_FALSE(NeedsAdminFalseHelper(COMMANDLINE_MODE_UNREGISTER_PRODUCT));
920 EXPECT_TRUE(NeedsAdminFalseHelper(COMMANDLINE_MODE_SERVICE_REGISTER));
921 EXPECT_TRUE(NeedsAdminFalseHelper(COMMANDLINE_MODE_SERVICE_UNREGISTER));
922 EXPECT_FALSE(NeedsAdminFalseHelper(COMMANDLINE_MODE_CRASH_HANDLER));
923 EXPECT_FALSE(NeedsAdminFalseHelper(COMMANDLINE_MODE_COMBROKER));
924 EXPECT_FALSE(NeedsAdminFalseHelper(COMMANDLINE_MODE_ONDEMAND));
925 {
926 ExpectAsserts expect_asserts;
927 EXPECT_FALSE(NeedsAdminFalseHelper(COMMANDLINE_MODE_MEDIUM_SERVICE));
928 }
929 EXPECT_FALSE(NeedsAdminFalseHelper(COMMANDLINE_MODE_UNINSTALL));
930 EXPECT_FALSE(NeedsAdminFalseHelper(COMMANDLINE_MODE_PING));
931 EXPECT_FALSE(NeedsAdminFalseHelper(
932 static_cast<CommandLineMode>(kLastMode + 1)));
933 }
934
935 TEST_F(GoopdateIsMachineProcessTest, IsMachineProcess_NeedsAdminTrueOnly) {
936 EXPECT_FALSE(NeedsAdminTrueHelper(COMMANDLINE_MODE_UNKNOWN));
937 EXPECT_FALSE(NeedsAdminTrueHelper(COMMANDLINE_MODE_NOARGS));
938 EXPECT_FALSE(NeedsAdminTrueHelper(COMMANDLINE_MODE_CORE));
939 {
940 ExpectAsserts expect_asserts;
941 EXPECT_FALSE(NeedsAdminTrueHelper(COMMANDLINE_MODE_SERVICE));
942 }
943 EXPECT_FALSE(NeedsAdminTrueHelper(COMMANDLINE_MODE_REGSERVER));
944 EXPECT_FALSE(NeedsAdminTrueHelper(COMMANDLINE_MODE_UNREGSERVER));
945 EXPECT_FALSE(NeedsAdminTrueHelper(COMMANDLINE_MODE_NETDIAGS));
946 EXPECT_FALSE(NeedsAdminTrueHelper(COMMANDLINE_MODE_CRASH));
947 EXPECT_FALSE(NeedsAdminTrueHelper(COMMANDLINE_MODE_REPORTCRASH));
948 EXPECT_TRUE(NeedsAdminTrueHelper(COMMANDLINE_MODE_INSTALL));
949 EXPECT_FALSE(NeedsAdminTrueHelper(COMMANDLINE_MODE_UPDATE));
950 EXPECT_TRUE(NeedsAdminTrueHelper(COMMANDLINE_MODE_HANDOFF_INSTALL));
951 EXPECT_FALSE(NeedsAdminTrueHelper(COMMANDLINE_MODE_UA));
952 EXPECT_FALSE(NeedsAdminTrueHelper(COMMANDLINE_MODE_RECOVER));
953 EXPECT_FALSE(NeedsAdminTrueHelper(COMMANDLINE_MODE_WEBPLUGIN));
954 EXPECT_FALSE(NeedsAdminTrueHelper(COMMANDLINE_MODE_CODE_RED_CHECK));
955 EXPECT_FALSE(NeedsAdminTrueHelper(COMMANDLINE_MODE_COMSERVER));
956 EXPECT_TRUE(NeedsAdminTrueHelper(COMMANDLINE_MODE_REGISTER_PRODUCT));
957 EXPECT_TRUE(NeedsAdminTrueHelper(COMMANDLINE_MODE_UNREGISTER_PRODUCT));
958 EXPECT_TRUE(NeedsAdminTrueHelper(COMMANDLINE_MODE_SERVICE_REGISTER));
959 EXPECT_TRUE(NeedsAdminTrueHelper(COMMANDLINE_MODE_SERVICE_UNREGISTER));
960 EXPECT_FALSE(NeedsAdminTrueHelper(COMMANDLINE_MODE_CRASH_HANDLER));
961 EXPECT_FALSE(NeedsAdminTrueHelper(COMMANDLINE_MODE_COMBROKER));
962 EXPECT_FALSE(NeedsAdminTrueHelper(COMMANDLINE_MODE_ONDEMAND));
963 {
964 ExpectAsserts expect_asserts;
965 EXPECT_FALSE(NeedsAdminTrueHelper(COMMANDLINE_MODE_MEDIUM_SERVICE));
966 }
967 EXPECT_FALSE(NeedsAdminTrueHelper(COMMANDLINE_MODE_UNINSTALL));
968 EXPECT_FALSE(NeedsAdminTrueHelper(COMMANDLINE_MODE_PING));
969 EXPECT_FALSE(NeedsAdminTrueHelper(
970 static_cast<CommandLineMode>(kLastMode + 1)));
971 }
972
973 // Tests all modes plus an undefined one.
974 TEST(GoopdateTest, CanDisplayUi_NotSilent) {
975 for (int mode = 0; mode <= kLastMode + 1; ++mode) {
976 const bool kExpected = mode == COMMANDLINE_MODE_UNKNOWN ||
977 mode == COMMANDLINE_MODE_INSTALL ||
978 mode == COMMANDLINE_MODE_HANDOFF_INSTALL ||
979 mode == COMMANDLINE_MODE_UA;
980
981 EXPECT_EQ(kExpected,
982 internal::CanDisplayUi(static_cast<CommandLineMode>(mode),
983 false));
984 }
985 }
986
987 TEST(GoopdateTest, CanDisplayUi_Silent) {
988 int mode = 0;
989 // These two modes always return true.
990 for (; mode <= COMMANDLINE_MODE_UNKNOWN; ++mode) {
991 EXPECT_TRUE(internal::CanDisplayUi(static_cast<CommandLineMode>(mode),
992 true));
993 }
994
995 // Tests the remaining modes plus an undefined one.
996 for (; mode <= kLastMode + 1; ++mode) {
997 EXPECT_FALSE(internal::CanDisplayUi(static_cast<CommandLineMode>(mode),
998 true));
999 }
1000 }
1001
1002 } // namespace omaha
OLDNEW
« no previous file with comments | « goopdate/goopdate_metrics.cc ('k') | goopdate/goopdate_version.rc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698