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

Side by Side Diff: goopdate/app_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/app_state_waiting_to_install.cc ('k') | goopdate/app_unittest_base.h » ('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 2010 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 <atlbase.h>
17 #include <atlcom.h>
18 #include "omaha/base/error.h"
19 #include "omaha/common/const_goopdate.h"
20 #include "omaha/common/const_group_policy.h"
21 #include "omaha/common/update_request.h"
22 #include "omaha/common/update_response.h"
23 #include "omaha/goopdate/app_state_checking_for_update.h"
24 #include "omaha/goopdate/app_state_update_available.h"
25 #include "omaha/goopdate/app_state_waiting_to_check_for_update.h"
26 #include "omaha/goopdate/app_unittest_base.h"
27 #include "omaha/testing/unit_test.h"
28
29 using ::testing::_;
30
31 namespace omaha {
32
33 namespace {
34
35 #define APP_ID1 _T("{D9F05AEA-BEDA-4f91-B216-BE45DAE330CB}");
36 const TCHAR* const kAppId1 = APP_ID1
37 const TCHAR* const kInstallPolicyApp1 = _T("Install") APP_ID1;
38 const TCHAR* const kUpdatePolicyApp1 = _T("Update") APP_ID1;
39 const TCHAR* const kAppId1ClientsKeyPathUser =
40 _T("HKCU\\Software\\") SHORT_COMPANY_NAME _T("\\")
41 PRODUCT_NAME _T("\\Clients\\") APP_ID1;
42 const TCHAR* const kGuid1ClientStateKeyPathUser =
43 _T("HKCU\\Software\\") SHORT_COMPANY_NAME _T("\\")
44 PRODUCT_NAME _T("\\ClientState\\") APP_ID1;
45
46 #define APP_ID2 _T("{EF3CACD4-89EB-46b7-B9BF-B16B15F08584}");
47 const TCHAR* const kInstallPolicyApp2 = _T("Install") APP_ID2;
48 const TCHAR* const kUpdatePolicyApp2 = _T("Update") APP_ID2;
49
50 void SetPolicy(const CString& policy, DWORD value) {
51 EXPECT_SUCCEEDED(RegKey::SetValue(kRegKeyGoopdateGroupPolicy,
52 policy,
53 value));
54 }
55
56 } // namespace
57
58 class AppTest : public AppTestBaseWithRegistryOverride {
59 protected:
60 explicit AppTest(bool use_strict_mock)
61 : AppTestBaseWithRegistryOverride(false, // Always as user for now.
62 use_strict_mock),
63 app_(NULL) {}
64
65 virtual void SetUp() {
66 AppTestBaseWithRegistryOverride::SetUp();
67
68 update_response_.reset(xml::UpdateResponse::Create());
69 }
70
71 void AddAppResponse(const CString& status) {
72 xml::response::App app;
73 app.status = kResponseStatusOkValue;
74 app.appid = kAppId1;
75 app.update_check.status = status;
76
77 xml::response::Response response;
78 response.apps.push_back(app);
79
80 SetResponseForUnitTest(update_response_.get(), response);
81 }
82
83 App* app_;
84 scoped_ptr<xml::UpdateResponse> update_response_;
85
86 private:
87 DISALLOW_COPY_AND_ASSIGN(AppTest);
88 };
89
90 class AppInstallTest : public AppTest {
91 protected:
92 AppInstallTest() : AppTest(true) {}
93
94 virtual void SetUp() {
95 AppTest::SetUp();
96 EXPECT_SUCCEEDED(
97 app_bundle_->createApp(CComBSTR(kAppId1), &app_));
98 ASSERT_TRUE(app_);
99 }
100 };
101
102 class AppManualUpdateTest : public AppTest {
103 protected:
104 AppManualUpdateTest() : AppTest(true) {}
105 explicit AppManualUpdateTest(bool use_strict_mock)
106 : AppTest(use_strict_mock) {}
107
108 // Calling checkForUpdate() should leave AppBundle::is_auto_update as false.
109 virtual void SetUp() {
110 AppTest::SetUp();
111 EXPECT_SUCCEEDED(RegKey::SetValue(kAppId1ClientsKeyPathUser,
112 kRegValueProductVersion,
113 _T("1.2.3.4")));
114 EXPECT_SUCCEEDED(RegKey::SetValue(kAppId1ClientsKeyPathUser,
115 kRegValueAppName,
116 _T("Unit Test App")));
117 EXPECT_SUCCEEDED(app_bundle_->createInstalledApp(
118 CComBSTR(kAppId1), &app_));
119 ASSERT_TRUE(app_);
120
121 EXPECT_CALL(*mock_worker_, CheckForUpdateAsync(_)).Times(1);
122 EXPECT_SUCCEEDED(app_bundle_->checkForUpdate());
123 EXPECT_FALSE(app_bundle_->is_auto_update());
124 }
125 };
126
127 class AppAutoUpdateTest : public AppManualUpdateTest {
128 protected:
129 AppAutoUpdateTest() : AppManualUpdateTest(false) {}
130
131 // Calling UpdateAllAppsAsync() sets AppBundle::is_auto_update.
132 virtual void SetUp() {
133 AppTest::SetUp();
134 EXPECT_SUCCEEDED(RegKey::SetValue(kAppId1ClientsKeyPathUser,
135 kRegValueProductVersion,
136 _T("1.2.3.4")));
137 EXPECT_SUCCEEDED(RegKey::SetValue(kGuid1ClientStateKeyPathUser,
138 kRegValueProductVersion,
139 _T("1.2.3.4")));
140 EXPECT_SUCCEEDED(RegKey::SetValue(kAppId1ClientsKeyPathUser,
141 kRegValueAppName,
142 _T("Unit Test App")));
143
144 EXPECT_CALL(*mock_worker_, UpdateAllAppsAsync(_)).Times(1);
145 EXPECT_SUCCEEDED(app_bundle_->updateAllApps());
146 EXPECT_TRUE(app_bundle_->is_auto_update());
147
148 app_= app_bundle_->GetApp(0);
149 ASSERT_TRUE(app_);
150 }
151 };
152
153 //
154 // CheckGroupPolicy Tests.
155 //
156
157 TEST_F(AppInstallTest, CheckGroupPolicy_NoPolicy) {
158 EXPECT_SUCCEEDED(app_->CheckGroupPolicy());
159 }
160
161 TEST_F(AppManualUpdateTest, CheckGroupPolicy_NoPolicy) {
162 EXPECT_SUCCEEDED(app_->CheckGroupPolicy());
163 }
164
165 TEST_F(AppAutoUpdateTest, CheckGroupPolicy_NoPolicy) {
166 EXPECT_SUCCEEDED(app_->CheckGroupPolicy());
167 }
168
169 TEST_F(AppInstallTest, CheckGroupPolicy_InstallDisabled) {
170 SetPolicy(kInstallPolicyApp1, kPolicyDisabled);
171 EXPECT_EQ(GOOPDATE_E_APP_INSTALL_DISABLED_BY_POLICY,
172 app_->CheckGroupPolicy());
173 }
174
175 TEST_F(AppManualUpdateTest, CheckGroupPolicy_InstallDisabled) {
176 SetPolicy(kInstallPolicyApp1, kPolicyDisabled);
177 EXPECT_SUCCEEDED(app_->CheckGroupPolicy());
178 }
179
180 TEST_F(AppAutoUpdateTest, CheckGroupPolicy_InstallDisabled) {
181 SetPolicy(kInstallPolicyApp1, kPolicyDisabled);
182 EXPECT_SUCCEEDED(app_->CheckGroupPolicy());
183 }
184
185 TEST_F(AppInstallTest, CheckGroupPolicy_AllUpdatesDisabled) {
186 SetPolicy(kUpdatePolicyApp1, kPolicyDisabled);
187 EXPECT_SUCCEEDED(app_->CheckGroupPolicy());
188 }
189
190 TEST_F(AppManualUpdateTest, CheckGroupPolicy_AllUpdatesDisabled) {
191 SetPolicy(kUpdatePolicyApp1, kPolicyDisabled);
192 EXPECT_EQ(GOOPDATE_E_APP_UPDATE_DISABLED_BY_POLICY, app_->CheckGroupPolicy());
193 }
194
195 TEST_F(AppAutoUpdateTest, CheckGroupPolicy_AllUpdatesDisabled) {
196 SetPolicy(kUpdatePolicyApp1, kPolicyDisabled);
197 EXPECT_EQ(GOOPDATE_E_APP_UPDATE_DISABLED_BY_POLICY, app_->CheckGroupPolicy());
198 }
199
200 TEST_F(AppInstallTest, CheckGroupPolicy_AutoUpdatesDisabled) {
201 SetPolicy(kUpdatePolicyApp1, kPolicyManualUpdatesOnly);
202 EXPECT_SUCCEEDED(app_->CheckGroupPolicy());
203 }
204
205 TEST_F(AppManualUpdateTest, CheckGroupPolicy_AutoUpdatesDisabled) {
206 SetPolicy(kUpdatePolicyApp1, kPolicyManualUpdatesOnly);
207 EXPECT_SUCCEEDED(app_->CheckGroupPolicy());
208 }
209
210 TEST_F(AppAutoUpdateTest, CheckGroupPolicy_AutoUpdatesDisabled) {
211 SetPolicy(kUpdatePolicyApp1, kPolicyManualUpdatesOnly);
212 EXPECT_EQ(GOOPDATE_E_APP_UPDATE_DISABLED_BY_POLICY, app_->CheckGroupPolicy());
213 }
214
215 //
216 // PostUpdateCheck Tests.
217 //
218
219 TEST_F(AppInstallTest, PostUpdateCheck_NoUpdate) {
220 SetAppStateForUnitTest(app_, new fsm::AppStateCheckingForUpdate);
221 AddAppResponse(kResponseStatusNoUpdate);
222
223 app_->PostUpdateCheck(S_OK, update_response_.get());
224 EXPECT_EQ(STATE_ERROR, app_->state());
225 EXPECT_EQ(GOOPDATE_E_NO_UPDATE_RESPONSE, app_->error_code());
226 }
227
228 TEST_F(AppInstallTest, PostUpdateCheck_UpdateAvailable) {
229 SetAppStateForUnitTest(app_, new fsm::AppStateCheckingForUpdate);
230 AddAppResponse(kResponseStatusOkValue);
231
232 app_->PostUpdateCheck(S_OK, update_response_.get());
233 EXPECT_EQ(STATE_UPDATE_AVAILABLE, app_->state());
234 EXPECT_EQ(S_OK, app_->error_code());
235 }
236
237 // Policy is not checked by this function.
238 TEST_F(AppInstallTest, PostUpdateCheck_UpdateAvailable_InstallDisabled) {
239 SetPolicy(kInstallPolicyApp1, kPolicyDisabled);
240 SetAppStateForUnitTest(app_, new fsm::AppStateCheckingForUpdate);
241 AddAppResponse(kResponseStatusOkValue);
242
243 app_->PostUpdateCheck(S_OK, update_response_.get());
244 EXPECT_EQ(STATE_UPDATE_AVAILABLE, app_->state());
245 EXPECT_EQ(S_OK, app_->error_code());
246 }
247
248 TEST_F(AppManualUpdateTest, PostUpdateCheck_NoUpdate) {
249 SetAppStateForUnitTest(app_, new fsm::AppStateCheckingForUpdate);
250 AddAppResponse(kResponseStatusNoUpdate);
251
252 app_->PostUpdateCheck(S_OK, update_response_.get());
253 EXPECT_EQ(STATE_NO_UPDATE, app_->state());
254 EXPECT_EQ(0, app_->error_code());
255 }
256
257 TEST_F(AppManualUpdateTest, PostUpdateCheck_UpdateAvailable) {
258 SetAppStateForUnitTest(app_, new fsm::AppStateCheckingForUpdate);
259 AddAppResponse(kResponseStatusOkValue);
260
261 app_->PostUpdateCheck(S_OK, update_response_.get());
262 EXPECT_EQ(STATE_UPDATE_AVAILABLE, app_->state());
263 EXPECT_EQ(S_OK, app_->error_code());
264 }
265
266 // Policy is not checked by this function.
267 TEST_F(AppManualUpdateTest,
268 PostUpdateCheck_UpdateAvailable_AllUpdatesDisabled) {
269 SetPolicy(kUpdatePolicyApp1, kPolicyDisabled);
270 SetAppStateForUnitTest(app_, new fsm::AppStateCheckingForUpdate);
271 AddAppResponse(kResponseStatusOkValue);
272
273 app_->PostUpdateCheck(S_OK, update_response_.get());
274 EXPECT_EQ(STATE_UPDATE_AVAILABLE, app_->state());
275 EXPECT_EQ(S_OK, app_->error_code());
276 }
277
278 TEST_F(AppAutoUpdateTest, PostUpdateCheck_NoUpdate) {
279 SetAppStateForUnitTest(app_, new fsm::AppStateCheckingForUpdate);
280 AddAppResponse(kResponseStatusNoUpdate);
281
282 app_->PostUpdateCheck(S_OK, update_response_.get());
283 EXPECT_EQ(STATE_NO_UPDATE, app_->state());
284 EXPECT_EQ(0, app_->error_code());
285 }
286
287 TEST_F(AppAutoUpdateTest, PostUpdateCheck_UpdateAvailable) {
288 SetAppStateForUnitTest(app_, new fsm::AppStateCheckingForUpdate);
289 AddAppResponse(kResponseStatusOkValue);
290
291 app_->PostUpdateCheck(S_OK, update_response_.get());
292 EXPECT_EQ(STATE_UPDATE_AVAILABLE, app_->state());
293 EXPECT_EQ(S_OK, app_->error_code());
294 }
295
296 // Policy is not checked by this function.
297 TEST_F(AppAutoUpdateTest, PostUpdateCheck_UpdateAvailable_AllUpdatesDisabled) {
298 SetPolicy(kUpdatePolicyApp1, kPolicyDisabled);
299 SetAppStateForUnitTest(app_, new fsm::AppStateCheckingForUpdate);
300 AddAppResponse(kResponseStatusOkValue);
301
302 app_->PostUpdateCheck(S_OK, update_response_.get());
303 EXPECT_EQ(STATE_UPDATE_AVAILABLE, app_->state());
304 EXPECT_EQ(S_OK, app_->error_code());
305 }
306
307 //
308 // QueueDownload Tests.
309 //
310
311 TEST_F(AppInstallTest, QueueDownload_NoPolicy) {
312 SetAppStateForUnitTest(app_, new fsm::AppStateUpdateAvailable);
313
314 app_->QueueDownload();
315 EXPECT_EQ(STATE_WAITING_TO_DOWNLOAD, app_->state());
316 EXPECT_EQ(S_OK, app_->error_code());
317 }
318
319 TEST_F(AppInstallTest, QueueDownload_InstallDisabled) {
320 SetPolicy(kInstallPolicyApp1, kPolicyDisabled);
321 SetAppStateForUnitTest(app_, new fsm::AppStateUpdateAvailable);
322
323 app_->QueueDownload();
324 EXPECT_EQ(STATE_ERROR, app_->state());
325 EXPECT_EQ(GOOPDATE_E_APP_INSTALL_DISABLED_BY_POLICY, app_->error_code());
326 }
327
328 TEST_F(AppInstallTest,
329 QueueDownload_InstallDisabledForDifferentApp) {
330 SetPolicy(kInstallPolicyApp2, kPolicyDisabled);
331 SetAppStateForUnitTest(app_, new fsm::AppStateUpdateAvailable);
332
333 app_->QueueDownload();
334 EXPECT_EQ(STATE_WAITING_TO_DOWNLOAD, app_->state());
335 EXPECT_EQ(S_OK, app_->error_code());
336 }
337
338 TEST_F(AppInstallTest, QueueDownload_AllUpdatesDisabled) {
339 SetPolicy(kUpdatePolicyApp1, kPolicyDisabled);
340 SetAppStateForUnitTest(app_, new fsm::AppStateUpdateAvailable);
341
342 app_->QueueDownload();
343 EXPECT_EQ(STATE_WAITING_TO_DOWNLOAD, app_->state());
344 EXPECT_EQ(S_OK, app_->error_code());
345 }
346
347 TEST_F(AppManualUpdateTest, QueueDownload_NoPolicy) {
348 SetAppStateForUnitTest(app_, new fsm::AppStateUpdateAvailable);
349
350 app_->QueueDownload();
351 EXPECT_EQ(STATE_WAITING_TO_DOWNLOAD, app_->state());
352 EXPECT_EQ(S_OK, app_->error_code());
353 }
354
355 TEST_F(AppManualUpdateTest, QueueDownload_AllUpdatesDisabled) {
356 SetPolicy(kUpdatePolicyApp1, kPolicyDisabled);
357 SetAppStateForUnitTest(app_, new fsm::AppStateUpdateAvailable);
358
359 app_->QueueDownload();
360 EXPECT_EQ(STATE_ERROR, app_->state());
361 EXPECT_EQ(GOOPDATE_E_APP_UPDATE_DISABLED_BY_POLICY, app_->error_code());
362 }
363
364 TEST_F(AppManualUpdateTest,
365 QueueDownload_AllUpdatesDisabledForDifferentApp) {
366 SetPolicy(kUpdatePolicyApp2, kPolicyDisabled);
367 SetAppStateForUnitTest(app_, new fsm::AppStateUpdateAvailable);
368
369 app_->QueueDownload();
370 EXPECT_EQ(STATE_WAITING_TO_DOWNLOAD, app_->state());
371 EXPECT_EQ(S_OK, app_->error_code());
372 }
373
374 TEST_F(AppManualUpdateTest, QueueDownload_AutoUpdatesDisabled) {
375 SetPolicy(kUpdatePolicyApp1, kPolicyManualUpdatesOnly);
376 SetAppStateForUnitTest(app_, new fsm::AppStateUpdateAvailable);
377
378 app_->QueueDownload();
379 EXPECT_EQ(STATE_WAITING_TO_DOWNLOAD, app_->state());
380 EXPECT_EQ(S_OK, app_->error_code());
381 }
382
383 TEST_F(AppManualUpdateTest, QueueDownload_InstallDisabled) {
384 SetPolicy(kInstallPolicyApp1, kPolicyDisabled);
385 SetAppStateForUnitTest(app_, new fsm::AppStateUpdateAvailable);
386
387 app_->QueueDownload();
388 EXPECT_EQ(STATE_WAITING_TO_DOWNLOAD, app_->state());
389 EXPECT_EQ(S_OK, app_->error_code());
390 }
391
392 TEST_F(AppAutoUpdateTest, QueueDownload_AllUpdatesDisabled_NoPolicy) {
393 SetAppStateForUnitTest(app_, new fsm::AppStateUpdateAvailable);
394
395 app_->QueueDownload();
396 EXPECT_EQ(STATE_WAITING_TO_DOWNLOAD, app_->state());
397 EXPECT_EQ(S_OK, app_->error_code());
398 }
399
400 TEST_F(AppAutoUpdateTest, QueueDownload_AllUpdatesDisabled) {
401 SetPolicy(kUpdatePolicyApp1, kPolicyDisabled);
402 SetAppStateForUnitTest(app_, new fsm::AppStateUpdateAvailable);
403
404 app_->QueueDownload();
405 EXPECT_EQ(STATE_ERROR, app_->state());
406 EXPECT_EQ(GOOPDATE_E_APP_UPDATE_DISABLED_BY_POLICY, app_->error_code());
407 }
408
409 TEST_F(AppAutoUpdateTest, QueueDownload_AllUpdatesDisabledForDifferentApp) {
410 SetPolicy(kUpdatePolicyApp2, kPolicyDisabled);
411 SetAppStateForUnitTest(app_, new fsm::AppStateUpdateAvailable);
412
413 app_->QueueDownload();
414 EXPECT_EQ(STATE_WAITING_TO_DOWNLOAD, app_->state());
415 EXPECT_EQ(S_OK, app_->error_code());
416 }
417
418 TEST_F(AppAutoUpdateTest, QueueDownload_AutoUpdatesDisabled) {
419 SetPolicy(kUpdatePolicyApp1, kPolicyManualUpdatesOnly);
420 SetAppStateForUnitTest(app_, new fsm::AppStateUpdateAvailable);
421
422 app_->QueueDownload();
423 EXPECT_EQ(STATE_ERROR, app_->state());
424 EXPECT_EQ(GOOPDATE_E_APP_UPDATE_DISABLED_BY_POLICY, app_->error_code());
425 }
426
427 TEST_F(AppAutoUpdateTest, QueueDownload_InstallDisabled) {
428 SetPolicy(kInstallPolicyApp1, kPolicyDisabled);
429 SetAppStateForUnitTest(app_, new fsm::AppStateUpdateAvailable);
430
431 app_->QueueDownload();
432 EXPECT_EQ(STATE_WAITING_TO_DOWNLOAD, app_->state());
433 EXPECT_EQ(S_OK, app_->error_code());
434 }
435
436 //
437 // PreUpdateCheck Tests.
438 //
439
440 TEST_F(AppInstallTest, PreUpdateCheck_EulaAccepted) {
441 SetAppStateForUnitTest(app_, new fsm::AppStateWaitingToCheckForUpdate);
442 EXPECT_SUCCEEDED(app_->put_isEulaAccepted(VARIANT_TRUE));
443
444 scoped_ptr<xml::UpdateRequest> update_request;
445 update_request.reset(xml::UpdateRequest::Create(is_machine_,
446 _T("unittest_sessionid"),
447 _T("unittest_instsource"),
448 CString()));
449 EXPECT_TRUE(update_request->IsEmpty());
450
451 app_->PreUpdateCheck(update_request.get());
452 EXPECT_EQ(STATE_CHECKING_FOR_UPDATE, app_->state());
453 EXPECT_EQ(S_OK, app_->error_code());
454 EXPECT_FALSE(update_request->IsEmpty());
455 }
456
457 TEST_F(AppAutoUpdateTest, PreUpdateCheck_EulaAccepted) {
458 SetAppStateForUnitTest(app_, new fsm::AppStateWaitingToCheckForUpdate);
459 EXPECT_SUCCEEDED(app_->put_isEulaAccepted(VARIANT_TRUE));
460
461 scoped_ptr<xml::UpdateRequest> update_request;
462 update_request.reset(xml::UpdateRequest::Create(is_machine_,
463 _T("unittest_sessionid"),
464 _T("unittest_instsource"),
465 CString()));
466 EXPECT_TRUE(update_request->IsEmpty());
467
468 app_->PreUpdateCheck(update_request.get());
469 EXPECT_EQ(STATE_CHECKING_FOR_UPDATE, app_->state());
470 EXPECT_EQ(S_OK, app_->error_code());
471 EXPECT_FALSE(update_request->IsEmpty());
472 }
473
474 TEST_F(AppInstallTest, PreUpdateCheck_EulaNotAccepted_Online) {
475 SetAppStateForUnitTest(app_, new fsm::AppStateWaitingToCheckForUpdate);
476 EXPECT_SUCCEEDED(app_->put_isEulaAccepted(VARIANT_FALSE));
477
478 scoped_ptr<xml::UpdateRequest> update_request;
479 update_request.reset(xml::UpdateRequest::Create(is_machine_,
480 _T("unittest_sessionid"),
481 _T("unittest_instsource"),
482 CString()));
483
484 ExpectAsserts expect_asserts; // Asserts because not is_update.
485
486 app_->PreUpdateCheck(update_request.get());
487 EXPECT_EQ(STATE_ERROR, app_->state());
488 EXPECT_EQ(GOOPDATE_E_APP_UPDATE_DISABLED_EULA_NOT_ACCEPTED,
489 app_->error_code());
490 EXPECT_TRUE(update_request->IsEmpty()) << _T("Should not add request.");
491 }
492
493 TEST_F(AppInstallTest, PreUpdateCheck_EulaNotAccepted_Offline) {
494 SetAppStateForUnitTest(app_, new fsm::AppStateWaitingToCheckForUpdate);
495 EXPECT_SUCCEEDED(app_->put_isEulaAccepted(VARIANT_FALSE));
496 EXPECT_SUCCEEDED(app_bundle_->put_offlineDirectory(CComBSTR(_T("foo"))));
497
498 scoped_ptr<xml::UpdateRequest> update_request;
499 update_request.reset(xml::UpdateRequest::Create(is_machine_,
500 _T("unittest_sessionid"),
501 _T("unittest_instsource"),
502 CString()));
503
504 app_->PreUpdateCheck(update_request.get());
505 EXPECT_EQ(STATE_CHECKING_FOR_UPDATE, app_->state());
506 EXPECT_EQ(S_OK, app_->error_code());
507 EXPECT_TRUE(update_request->IsEmpty()) << _T("Should not add request.");
508 }
509
510 TEST_F(AppAutoUpdateTest, PreUpdateCheck_EulaNotAccepted) {
511 SetAppStateForUnitTest(app_, new fsm::AppStateWaitingToCheckForUpdate);
512 EXPECT_SUCCEEDED(app_->put_isEulaAccepted(VARIANT_FALSE));
513
514 scoped_ptr<xml::UpdateRequest> update_request;
515 update_request.reset(xml::UpdateRequest::Create(is_machine_,
516 _T("unittest_sessionid"),
517 _T("unittest_instsource"),
518 CString()));
519
520 app_->PreUpdateCheck(update_request.get());
521 EXPECT_EQ(STATE_ERROR, app_->state());
522 EXPECT_EQ(GOOPDATE_E_APP_UPDATE_DISABLED_EULA_NOT_ACCEPTED,
523 app_->error_code());
524 EXPECT_TRUE(update_request->IsEmpty()) << _T("Should not add request.");
525 }
526
527 } // namespace omaha
OLDNEW
« no previous file with comments | « goopdate/app_state_waiting_to_install.cc ('k') | goopdate/app_unittest_base.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698