OLD | NEW |
1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium OS 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 #include <vector> | 6 #include <vector> |
7 | 7 |
8 #include <glib.h> | 8 #include <glib.h> |
9 | 9 |
10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
11 #include "base/time.h" | 11 #include "base/time.h" |
12 #include "gtest/gtest.h" | 12 #include "gtest/gtest.h" |
13 #include "update_engine/action_pipe.h" | 13 #include "update_engine/action_pipe.h" |
14 #include "update_engine/mock_http_fetcher.h" | 14 #include "update_engine/mock_http_fetcher.h" |
15 #include "update_engine/omaha_hash_calculator.h" | 15 #include "update_engine/omaha_hash_calculator.h" |
16 #include "update_engine/omaha_request_action.h" | 16 #include "update_engine/omaha_request_action.h" |
17 #include "update_engine/omaha_request_params.h" | 17 #include "update_engine/omaha_request_params.h" |
18 #include "update_engine/prefs_mock.h" | 18 #include "update_engine/prefs_mock.h" |
19 #include "update_engine/test_utils.h" | 19 #include "update_engine/test_utils.h" |
20 | 20 |
21 using base::Time; | 21 using base::Time; |
22 using base::TimeDelta; | 22 using base::TimeDelta; |
23 using std::string; | 23 using std::string; |
24 using std::vector; | 24 using std::vector; |
25 using testing::_; | 25 using testing::_; |
26 using testing::AllOf; | 26 using testing::AllOf; |
27 using testing::Ge; | 27 using testing::Ge; |
28 using testing::Le; | 28 using testing::Le; |
| 29 using testing::NiceMock; |
29 using testing::Return; | 30 using testing::Return; |
30 using testing::SetArgumentPointee; | 31 using testing::SetArgumentPointee; |
31 | 32 |
32 namespace chromeos_update_engine { | 33 namespace chromeos_update_engine { |
33 | 34 |
34 class OmahaRequestActionTest : public ::testing::Test { }; | 35 class OmahaRequestActionTest : public ::testing::Test { }; |
35 | 36 |
36 namespace { | 37 namespace { |
37 const OmahaRequestParams kDefaultTestParams( | 38 const OmahaRequestParams kDefaultTestParams( |
38 OmahaRequestParams::kOsPlatform, | 39 OmahaRequestParams::kOsPlatform, |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
156 int fail_http_response_code, | 157 int fail_http_response_code, |
157 ActionExitCode expected_code, | 158 ActionExitCode expected_code, |
158 OmahaResponse* out_response, | 159 OmahaResponse* out_response, |
159 vector<char>* out_post_data) { | 160 vector<char>* out_post_data) { |
160 GMainLoop* loop = g_main_loop_new(g_main_context_default(), FALSE); | 161 GMainLoop* loop = g_main_loop_new(g_main_context_default(), FALSE); |
161 MockHttpFetcher* fetcher = new MockHttpFetcher(http_response.data(), | 162 MockHttpFetcher* fetcher = new MockHttpFetcher(http_response.data(), |
162 http_response.size()); | 163 http_response.size()); |
163 if (fail_http_response_code >= 0) { | 164 if (fail_http_response_code >= 0) { |
164 fetcher->FailTransfer(fail_http_response_code); | 165 fetcher->FailTransfer(fail_http_response_code); |
165 } | 166 } |
166 PrefsMock local_prefs; | 167 NiceMock<PrefsMock> local_prefs; |
167 OmahaRequestAction action(prefs ? prefs : &local_prefs, | 168 OmahaRequestAction action(prefs ? prefs : &local_prefs, |
168 params, | 169 params, |
169 NULL, | 170 NULL, |
170 fetcher); | 171 fetcher); |
171 OmahaRequestActionTestProcessorDelegate delegate; | 172 OmahaRequestActionTestProcessorDelegate delegate; |
172 delegate.loop_ = loop; | 173 delegate.loop_ = loop; |
173 delegate.expected_code_ = expected_code; | 174 delegate.expected_code_ = expected_code; |
174 | 175 |
175 ActionProcessor processor; | 176 ActionProcessor processor; |
176 processor.set_delegate(&delegate); | 177 processor.set_delegate(&delegate); |
(...skipping 16 matching lines...) Expand all Loading... |
193 // Tests Event requests -- they should always succeed. |out_post_data| | 194 // Tests Event requests -- they should always succeed. |out_post_data| |
194 // may be null; if non-null, the post-data received by the mock | 195 // may be null; if non-null, the post-data received by the mock |
195 // HttpFetcher is returned. | 196 // HttpFetcher is returned. |
196 void TestEvent(const OmahaRequestParams& params, | 197 void TestEvent(const OmahaRequestParams& params, |
197 OmahaEvent* event, | 198 OmahaEvent* event, |
198 const string& http_response, | 199 const string& http_response, |
199 vector<char>* out_post_data) { | 200 vector<char>* out_post_data) { |
200 GMainLoop* loop = g_main_loop_new(g_main_context_default(), FALSE); | 201 GMainLoop* loop = g_main_loop_new(g_main_context_default(), FALSE); |
201 MockHttpFetcher* fetcher = new MockHttpFetcher(http_response.data(), | 202 MockHttpFetcher* fetcher = new MockHttpFetcher(http_response.data(), |
202 http_response.size()); | 203 http_response.size()); |
203 PrefsMock prefs; | 204 NiceMock<PrefsMock> prefs; |
204 OmahaRequestAction action(&prefs, params, event, fetcher); | 205 OmahaRequestAction action(&prefs, params, event, fetcher); |
205 OmahaRequestActionTestProcessorDelegate delegate; | 206 OmahaRequestActionTestProcessorDelegate delegate; |
206 delegate.loop_ = loop; | 207 delegate.loop_ = loop; |
207 ActionProcessor processor; | 208 ActionProcessor processor; |
208 processor.set_delegate(&delegate); | 209 processor.set_delegate(&delegate); |
209 processor.EnqueueAction(&action); | 210 processor.EnqueueAction(&action); |
210 | 211 |
211 g_timeout_add(0, &StartProcessorInRunLoop, &processor); | 212 g_timeout_add(0, &StartProcessorInRunLoop, &processor); |
212 g_main_loop_run(loop); | 213 g_main_loop_run(loop); |
213 g_main_loop_unref(loop); | 214 g_main_loop_unref(loop); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
256 EXPECT_FALSE(response.needs_admin); | 257 EXPECT_FALSE(response.needs_admin); |
257 EXPECT_TRUE(response.prompt); | 258 EXPECT_TRUE(response.prompt); |
258 EXPECT_EQ("20101020", response.deadline); | 259 EXPECT_EQ("20101020", response.deadline); |
259 } | 260 } |
260 | 261 |
261 TEST(OmahaRequestActionTest, NoOutputPipeTest) { | 262 TEST(OmahaRequestActionTest, NoOutputPipeTest) { |
262 const string http_response(GetNoUpdateResponse(OmahaRequestParams::kAppId)); | 263 const string http_response(GetNoUpdateResponse(OmahaRequestParams::kAppId)); |
263 | 264 |
264 GMainLoop *loop = g_main_loop_new(g_main_context_default(), FALSE); | 265 GMainLoop *loop = g_main_loop_new(g_main_context_default(), FALSE); |
265 | 266 |
266 PrefsMock prefs; | 267 NiceMock<PrefsMock> prefs; |
267 OmahaRequestAction action(&prefs, kDefaultTestParams, NULL, | 268 OmahaRequestAction action(&prefs, kDefaultTestParams, NULL, |
268 new MockHttpFetcher(http_response.data(), | 269 new MockHttpFetcher(http_response.data(), |
269 http_response.size())); | 270 http_response.size())); |
270 OmahaRequestActionTestProcessorDelegate delegate; | 271 OmahaRequestActionTestProcessorDelegate delegate; |
271 delegate.loop_ = loop; | 272 delegate.loop_ = loop; |
272 ActionProcessor processor; | 273 ActionProcessor processor; |
273 processor.set_delegate(&delegate); | 274 processor.set_delegate(&delegate); |
274 processor.EnqueueAction(&action); | 275 processor.EnqueueAction(&action); |
275 | 276 |
276 g_timeout_add(0, &StartProcessorInRunLoop, &processor); | 277 g_timeout_add(0, &StartProcessorInRunLoop, &processor); |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
403 CHECK(processor->IsRunning()); | 404 CHECK(processor->IsRunning()); |
404 processor->StopProcessing(); | 405 processor->StopProcessing(); |
405 return FALSE; | 406 return FALSE; |
406 } | 407 } |
407 } // namespace {} | 408 } // namespace {} |
408 | 409 |
409 TEST(OmahaRequestActionTest, TerminateTransferTest) { | 410 TEST(OmahaRequestActionTest, TerminateTransferTest) { |
410 string http_response("doesn't matter"); | 411 string http_response("doesn't matter"); |
411 GMainLoop *loop = g_main_loop_new(g_main_context_default(), FALSE); | 412 GMainLoop *loop = g_main_loop_new(g_main_context_default(), FALSE); |
412 | 413 |
413 PrefsMock prefs; | 414 NiceMock<PrefsMock> prefs; |
414 OmahaRequestAction action(&prefs, kDefaultTestParams, NULL, | 415 OmahaRequestAction action(&prefs, kDefaultTestParams, NULL, |
415 new MockHttpFetcher(http_response.data(), | 416 new MockHttpFetcher(http_response.data(), |
416 http_response.size())); | 417 http_response.size())); |
417 TerminateEarlyTestProcessorDelegate delegate; | 418 TerminateEarlyTestProcessorDelegate delegate; |
418 delegate.loop_ = loop; | 419 delegate.loop_ = loop; |
419 ActionProcessor processor; | 420 ActionProcessor processor; |
420 processor.set_delegate(&delegate); | 421 processor.set_delegate(&delegate); |
421 processor.EnqueueAction(&action); | 422 processor.EnqueueAction(&action); |
422 | 423 |
423 g_timeout_add(0, &TerminateTransferTestStarter, &processor); | 424 g_timeout_add(0, &TerminateTransferTestStarter, &processor); |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
585 "errorcode=\"%d\"></o:event>\n", | 586 "errorcode=\"%d\"></o:event>\n", |
586 OmahaEvent::kTypeDownloadComplete, | 587 OmahaEvent::kTypeDownloadComplete, |
587 OmahaEvent::kResultError, | 588 OmahaEvent::kResultError, |
588 kActionCodeError); | 589 kActionCodeError); |
589 EXPECT_NE(post_str.find(expected_event), string::npos); | 590 EXPECT_NE(post_str.find(expected_event), string::npos); |
590 EXPECT_EQ(post_str.find("o:updatecheck"), string::npos); | 591 EXPECT_EQ(post_str.find("o:updatecheck"), string::npos); |
591 } | 592 } |
592 | 593 |
593 TEST(OmahaRequestActionTest, IsEventTest) { | 594 TEST(OmahaRequestActionTest, IsEventTest) { |
594 string http_response("doesn't matter"); | 595 string http_response("doesn't matter"); |
595 PrefsMock prefs; | 596 NiceMock<PrefsMock> prefs; |
596 OmahaRequestAction update_check_action( | 597 OmahaRequestAction update_check_action( |
597 &prefs, | 598 &prefs, |
598 kDefaultTestParams, | 599 kDefaultTestParams, |
599 NULL, | 600 NULL, |
600 new MockHttpFetcher(http_response.data(), | 601 new MockHttpFetcher(http_response.data(), |
601 http_response.size())); | 602 http_response.size())); |
602 EXPECT_FALSE(update_check_action.IsEvent()); | 603 EXPECT_FALSE(update_check_action.IsEvent()); |
603 | 604 |
604 OmahaRequestAction event_action( | 605 OmahaRequestAction event_action( |
605 &prefs, | 606 &prefs, |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
654 | 655 |
655 OmahaEvent error_event(OmahaEvent::kTypeUpdateDownloadFinished, | 656 OmahaEvent error_event(OmahaEvent::kTypeUpdateDownloadFinished, |
656 OmahaEvent::kResultError, | 657 OmahaEvent::kResultError, |
657 kActionCodeError); | 658 kActionCodeError); |
658 EXPECT_EQ(OmahaEvent::kTypeUpdateDownloadFinished, error_event.type); | 659 EXPECT_EQ(OmahaEvent::kTypeUpdateDownloadFinished, error_event.type); |
659 EXPECT_EQ(OmahaEvent::kResultError, error_event.result); | 660 EXPECT_EQ(OmahaEvent::kResultError, error_event.result); |
660 EXPECT_EQ(kActionCodeError, error_event.error_code); | 661 EXPECT_EQ(kActionCodeError, error_event.error_code); |
661 } | 662 } |
662 | 663 |
663 TEST(OmahaRequestActionTest, PingTest) { | 664 TEST(OmahaRequestActionTest, PingTest) { |
664 PrefsMock prefs; | 665 NiceMock<PrefsMock> prefs; |
665 // Add a few hours to the day difference to test no rounding, etc. | 666 // Add a few hours to the day difference to test no rounding, etc. |
666 int64_t five_days_ago = | 667 int64_t five_days_ago = |
667 (Time::Now() - TimeDelta::FromHours(5 * 24 + 13)).ToInternalValue(); | 668 (Time::Now() - TimeDelta::FromHours(5 * 24 + 13)).ToInternalValue(); |
668 int64_t six_days_ago = | 669 int64_t six_days_ago = |
669 (Time::Now() - TimeDelta::FromHours(6 * 24 + 11)).ToInternalValue(); | 670 (Time::Now() - TimeDelta::FromHours(6 * 24 + 11)).ToInternalValue(); |
670 EXPECT_CALL(prefs, GetInt64(kPrefsLastActivePingDay, _)) | 671 EXPECT_CALL(prefs, GetInt64(kPrefsLastActivePingDay, _)) |
671 .WillOnce(DoAll(SetArgumentPointee<1>(six_days_ago), Return(true))); | 672 .WillOnce(DoAll(SetArgumentPointee<1>(six_days_ago), Return(true))); |
672 EXPECT_CALL(prefs, GetInt64(kPrefsLastRollCallPingDay, _)) | 673 EXPECT_CALL(prefs, GetInt64(kPrefsLastRollCallPingDay, _)) |
673 .WillOnce(DoAll(SetArgumentPointee<1>(five_days_ago), Return(true))); | 674 .WillOnce(DoAll(SetArgumentPointee<1>(five_days_ago), Return(true))); |
674 vector<char> post_data; | 675 vector<char> post_data; |
675 ASSERT_TRUE( | 676 ASSERT_TRUE( |
676 TestUpdateCheck(&prefs, | 677 TestUpdateCheck(&prefs, |
677 kDefaultTestParams, | 678 kDefaultTestParams, |
678 GetNoUpdateResponse(OmahaRequestParams::kAppId), | 679 GetNoUpdateResponse(OmahaRequestParams::kAppId), |
679 -1, | 680 -1, |
680 kActionCodeSuccess, | 681 kActionCodeSuccess, |
681 NULL, | 682 NULL, |
682 &post_data)); | 683 &post_data)); |
683 string post_str(&post_data[0], post_data.size()); | 684 string post_str(&post_data[0], post_data.size()); |
684 EXPECT_NE(post_str.find("<o:ping a=\"6\" r=\"5\"></o:ping>"), string::npos); | 685 EXPECT_NE(post_str.find("<o:ping a=\"6\" r=\"5\"></o:ping>"), string::npos); |
685 } | 686 } |
686 | 687 |
687 TEST(OmahaRequestActionTest, ActivePingTest) { | 688 TEST(OmahaRequestActionTest, ActivePingTest) { |
688 PrefsMock prefs; | 689 NiceMock<PrefsMock> prefs; |
689 int64_t three_days_ago = | 690 int64_t three_days_ago = |
690 (Time::Now() - TimeDelta::FromHours(3 * 24 + 12)).ToInternalValue(); | 691 (Time::Now() - TimeDelta::FromHours(3 * 24 + 12)).ToInternalValue(); |
691 int64_t now = Time::Now().ToInternalValue(); | 692 int64_t now = Time::Now().ToInternalValue(); |
692 EXPECT_CALL(prefs, GetInt64(kPrefsLastActivePingDay, _)) | 693 EXPECT_CALL(prefs, GetInt64(kPrefsLastActivePingDay, _)) |
693 .WillOnce(DoAll(SetArgumentPointee<1>(three_days_ago), Return(true))); | 694 .WillOnce(DoAll(SetArgumentPointee<1>(three_days_ago), Return(true))); |
694 EXPECT_CALL(prefs, GetInt64(kPrefsLastRollCallPingDay, _)) | 695 EXPECT_CALL(prefs, GetInt64(kPrefsLastRollCallPingDay, _)) |
695 .WillOnce(DoAll(SetArgumentPointee<1>(now), Return(true))); | 696 .WillOnce(DoAll(SetArgumentPointee<1>(now), Return(true))); |
696 vector<char> post_data; | 697 vector<char> post_data; |
697 ASSERT_TRUE( | 698 ASSERT_TRUE( |
698 TestUpdateCheck(&prefs, | 699 TestUpdateCheck(&prefs, |
699 kDefaultTestParams, | 700 kDefaultTestParams, |
700 GetNoUpdateResponse(OmahaRequestParams::kAppId), | 701 GetNoUpdateResponse(OmahaRequestParams::kAppId), |
701 -1, | 702 -1, |
702 kActionCodeSuccess, | 703 kActionCodeSuccess, |
703 NULL, | 704 NULL, |
704 &post_data)); | 705 &post_data)); |
705 string post_str(&post_data[0], post_data.size()); | 706 string post_str(&post_data[0], post_data.size()); |
706 EXPECT_NE(post_str.find("<o:ping a=\"3\"></o:ping>"), string::npos); | 707 EXPECT_NE(post_str.find("<o:ping a=\"3\"></o:ping>"), string::npos); |
707 } | 708 } |
708 | 709 |
709 TEST(OmahaRequestActionTest, RollCallPingTest) { | 710 TEST(OmahaRequestActionTest, RollCallPingTest) { |
710 PrefsMock prefs; | 711 NiceMock<PrefsMock> prefs; |
711 int64_t four_days_ago = | 712 int64_t four_days_ago = |
712 (Time::Now() - TimeDelta::FromHours(4 * 24)).ToInternalValue(); | 713 (Time::Now() - TimeDelta::FromHours(4 * 24)).ToInternalValue(); |
713 int64_t now = Time::Now().ToInternalValue(); | 714 int64_t now = Time::Now().ToInternalValue(); |
714 EXPECT_CALL(prefs, GetInt64(kPrefsLastActivePingDay, _)) | 715 EXPECT_CALL(prefs, GetInt64(kPrefsLastActivePingDay, _)) |
715 .WillOnce(DoAll(SetArgumentPointee<1>(now), Return(true))); | 716 .WillOnce(DoAll(SetArgumentPointee<1>(now), Return(true))); |
716 EXPECT_CALL(prefs, GetInt64(kPrefsLastRollCallPingDay, _)) | 717 EXPECT_CALL(prefs, GetInt64(kPrefsLastRollCallPingDay, _)) |
717 .WillOnce(DoAll(SetArgumentPointee<1>(four_days_ago), Return(true))); | 718 .WillOnce(DoAll(SetArgumentPointee<1>(four_days_ago), Return(true))); |
718 vector<char> post_data; | 719 vector<char> post_data; |
719 ASSERT_TRUE( | 720 ASSERT_TRUE( |
720 TestUpdateCheck(&prefs, | 721 TestUpdateCheck(&prefs, |
721 kDefaultTestParams, | 722 kDefaultTestParams, |
722 GetNoUpdateResponse(OmahaRequestParams::kAppId), | 723 GetNoUpdateResponse(OmahaRequestParams::kAppId), |
723 -1, | 724 -1, |
724 kActionCodeSuccess, | 725 kActionCodeSuccess, |
725 NULL, | 726 NULL, |
726 &post_data)); | 727 &post_data)); |
727 string post_str(&post_data[0], post_data.size()); | 728 string post_str(&post_data[0], post_data.size()); |
728 EXPECT_NE(post_str.find("<o:ping r=\"4\"></o:ping>\n"), string::npos); | 729 EXPECT_NE(post_str.find("<o:ping r=\"4\"></o:ping>\n"), string::npos); |
729 } | 730 } |
730 | 731 |
731 TEST(OmahaRequestActionTest, NoPingTest) { | 732 TEST(OmahaRequestActionTest, NoPingTest) { |
732 PrefsMock prefs; | 733 NiceMock<PrefsMock> prefs; |
733 int64_t one_hour_ago = | 734 int64_t one_hour_ago = |
734 (Time::Now() - TimeDelta::FromHours(1)).ToInternalValue(); | 735 (Time::Now() - TimeDelta::FromHours(1)).ToInternalValue(); |
735 EXPECT_CALL(prefs, GetInt64(kPrefsLastActivePingDay, _)) | 736 EXPECT_CALL(prefs, GetInt64(kPrefsLastActivePingDay, _)) |
736 .WillOnce(DoAll(SetArgumentPointee<1>(one_hour_ago), Return(true))); | 737 .WillOnce(DoAll(SetArgumentPointee<1>(one_hour_ago), Return(true))); |
737 EXPECT_CALL(prefs, GetInt64(kPrefsLastRollCallPingDay, _)) | 738 EXPECT_CALL(prefs, GetInt64(kPrefsLastRollCallPingDay, _)) |
738 .WillOnce(DoAll(SetArgumentPointee<1>(one_hour_ago), Return(true))); | 739 .WillOnce(DoAll(SetArgumentPointee<1>(one_hour_ago), Return(true))); |
739 EXPECT_CALL(prefs, SetInt64(kPrefsLastActivePingDay, _)).Times(0); | 740 EXPECT_CALL(prefs, SetInt64(kPrefsLastActivePingDay, _)).Times(0); |
740 EXPECT_CALL(prefs, SetInt64(kPrefsLastRollCallPingDay, _)).Times(0); | 741 EXPECT_CALL(prefs, SetInt64(kPrefsLastRollCallPingDay, _)).Times(0); |
741 vector<char> post_data; | 742 vector<char> post_data; |
742 ASSERT_TRUE( | 743 ASSERT_TRUE( |
743 TestUpdateCheck(&prefs, | 744 TestUpdateCheck(&prefs, |
744 kDefaultTestParams, | 745 kDefaultTestParams, |
745 GetNoUpdateResponse(OmahaRequestParams::kAppId), | 746 GetNoUpdateResponse(OmahaRequestParams::kAppId), |
746 -1, | 747 -1, |
747 kActionCodeSuccess, | 748 kActionCodeSuccess, |
748 NULL, | 749 NULL, |
749 &post_data)); | 750 &post_data)); |
750 string post_str(&post_data[0], post_data.size()); | 751 string post_str(&post_data[0], post_data.size()); |
751 EXPECT_EQ(post_str.find("o:ping"), string::npos); | 752 EXPECT_EQ(post_str.find("o:ping"), string::npos); |
752 } | 753 } |
753 | 754 |
754 TEST(OmahaRequestActionTest, BackInTimePingTest) { | 755 TEST(OmahaRequestActionTest, BackInTimePingTest) { |
755 PrefsMock prefs; | 756 NiceMock<PrefsMock> prefs; |
756 int64_t future = | 757 int64_t future = |
757 (Time::Now() + TimeDelta::FromHours(3 * 24 + 4)).ToInternalValue(); | 758 (Time::Now() + TimeDelta::FromHours(3 * 24 + 4)).ToInternalValue(); |
758 EXPECT_CALL(prefs, GetInt64(kPrefsLastActivePingDay, _)) | 759 EXPECT_CALL(prefs, GetInt64(kPrefsLastActivePingDay, _)) |
759 .WillOnce(DoAll(SetArgumentPointee<1>(future), Return(true))); | 760 .WillOnce(DoAll(SetArgumentPointee<1>(future), Return(true))); |
760 EXPECT_CALL(prefs, GetInt64(kPrefsLastRollCallPingDay, _)) | 761 EXPECT_CALL(prefs, GetInt64(kPrefsLastRollCallPingDay, _)) |
761 .WillOnce(DoAll(SetArgumentPointee<1>(future), Return(true))); | 762 .WillOnce(DoAll(SetArgumentPointee<1>(future), Return(true))); |
762 EXPECT_CALL(prefs, SetInt64(kPrefsLastActivePingDay, _)) | 763 EXPECT_CALL(prefs, SetInt64(kPrefsLastActivePingDay, _)) |
763 .WillOnce(Return(true)); | 764 .WillOnce(Return(true)); |
764 EXPECT_CALL(prefs, SetInt64(kPrefsLastRollCallPingDay, _)) | 765 EXPECT_CALL(prefs, SetInt64(kPrefsLastRollCallPingDay, _)) |
765 .WillOnce(Return(true)); | 766 .WillOnce(Return(true)); |
(...skipping 16 matching lines...) Expand all Loading... |
782 | 783 |
783 TEST(OmahaRequestActionTest, LastPingDayUpdateTest) { | 784 TEST(OmahaRequestActionTest, LastPingDayUpdateTest) { |
784 // This test checks that the action updates the last ping day to now | 785 // This test checks that the action updates the last ping day to now |
785 // minus 200 seconds with a slack of 5 seconds. Therefore, the test | 786 // minus 200 seconds with a slack of 5 seconds. Therefore, the test |
786 // may fail if it runs for longer than 5 seconds. It shouldn't run | 787 // may fail if it runs for longer than 5 seconds. It shouldn't run |
787 // that long though. | 788 // that long though. |
788 int64_t midnight = | 789 int64_t midnight = |
789 (Time::Now() - TimeDelta::FromSeconds(200)).ToInternalValue(); | 790 (Time::Now() - TimeDelta::FromSeconds(200)).ToInternalValue(); |
790 int64_t midnight_slack = | 791 int64_t midnight_slack = |
791 (Time::Now() - TimeDelta::FromSeconds(195)).ToInternalValue(); | 792 (Time::Now() - TimeDelta::FromSeconds(195)).ToInternalValue(); |
792 PrefsMock prefs; | 793 NiceMock<PrefsMock> prefs; |
793 EXPECT_CALL(prefs, SetInt64(kPrefsLastActivePingDay, | 794 EXPECT_CALL(prefs, SetInt64(kPrefsLastActivePingDay, |
794 AllOf(Ge(midnight), Le(midnight_slack)))) | 795 AllOf(Ge(midnight), Le(midnight_slack)))) |
795 .WillOnce(Return(true)); | 796 .WillOnce(Return(true)); |
796 EXPECT_CALL(prefs, SetInt64(kPrefsLastRollCallPingDay, | 797 EXPECT_CALL(prefs, SetInt64(kPrefsLastRollCallPingDay, |
797 AllOf(Ge(midnight), Le(midnight_slack)))) | 798 AllOf(Ge(midnight), Le(midnight_slack)))) |
798 .WillOnce(Return(true)); | 799 .WillOnce(Return(true)); |
799 ASSERT_TRUE( | 800 ASSERT_TRUE( |
800 TestUpdateCheck(&prefs, | 801 TestUpdateCheck(&prefs, |
801 kDefaultTestParams, | 802 kDefaultTestParams, |
802 "<?xml version=\"1.0\" encoding=\"UTF-8\"?><gupdate " | 803 "<?xml version=\"1.0\" encoding=\"UTF-8\"?><gupdate " |
803 "xmlns=\"http://www.google.com/update2/response\" " | 804 "xmlns=\"http://www.google.com/update2/response\" " |
804 "protocol=\"2.0\"><daystart elapsed_seconds=\"200\"/>" | 805 "protocol=\"2.0\"><daystart elapsed_seconds=\"200\"/>" |
805 "<app appid=\"foo\" status=\"ok\"><ping status=\"ok\"/>" | 806 "<app appid=\"foo\" status=\"ok\"><ping status=\"ok\"/>" |
806 "<updatecheck status=\"noupdate\"/></app></gupdate>", | 807 "<updatecheck status=\"noupdate\"/></app></gupdate>", |
807 -1, | 808 -1, |
808 kActionCodeSuccess, | 809 kActionCodeSuccess, |
809 NULL, | 810 NULL, |
810 NULL)); | 811 NULL)); |
811 } | 812 } |
812 | 813 |
813 TEST(OmahaRequestActionTest, NoElapsedSecondsTest) { | 814 TEST(OmahaRequestActionTest, NoElapsedSecondsTest) { |
814 PrefsMock prefs; | 815 NiceMock<PrefsMock> prefs; |
815 EXPECT_CALL(prefs, SetInt64(kPrefsLastActivePingDay, _)).Times(0); | 816 EXPECT_CALL(prefs, SetInt64(kPrefsLastActivePingDay, _)).Times(0); |
816 EXPECT_CALL(prefs, SetInt64(kPrefsLastRollCallPingDay, _)).Times(0); | 817 EXPECT_CALL(prefs, SetInt64(kPrefsLastRollCallPingDay, _)).Times(0); |
817 ASSERT_TRUE( | 818 ASSERT_TRUE( |
818 TestUpdateCheck(&prefs, | 819 TestUpdateCheck(&prefs, |
819 kDefaultTestParams, | 820 kDefaultTestParams, |
820 "<?xml version=\"1.0\" encoding=\"UTF-8\"?><gupdate " | 821 "<?xml version=\"1.0\" encoding=\"UTF-8\"?><gupdate " |
821 "xmlns=\"http://www.google.com/update2/response\" " | 822 "xmlns=\"http://www.google.com/update2/response\" " |
822 "protocol=\"2.0\"><daystart blah=\"200\"/>" | 823 "protocol=\"2.0\"><daystart blah=\"200\"/>" |
823 "<app appid=\"foo\" status=\"ok\"><ping status=\"ok\"/>" | 824 "<app appid=\"foo\" status=\"ok\"><ping status=\"ok\"/>" |
824 "<updatecheck status=\"noupdate\"/></app></gupdate>", | 825 "<updatecheck status=\"noupdate\"/></app></gupdate>", |
825 -1, | 826 -1, |
826 kActionCodeSuccess, | 827 kActionCodeSuccess, |
827 NULL, | 828 NULL, |
828 NULL)); | 829 NULL)); |
829 } | 830 } |
830 | 831 |
831 TEST(OmahaRequestActionTest, BadElapsedSecondsTest) { | 832 TEST(OmahaRequestActionTest, BadElapsedSecondsTest) { |
832 PrefsMock prefs; | 833 NiceMock<PrefsMock> prefs; |
833 EXPECT_CALL(prefs, SetInt64(kPrefsLastActivePingDay, _)).Times(0); | 834 EXPECT_CALL(prefs, SetInt64(kPrefsLastActivePingDay, _)).Times(0); |
834 EXPECT_CALL(prefs, SetInt64(kPrefsLastRollCallPingDay, _)).Times(0); | 835 EXPECT_CALL(prefs, SetInt64(kPrefsLastRollCallPingDay, _)).Times(0); |
835 ASSERT_TRUE( | 836 ASSERT_TRUE( |
836 TestUpdateCheck(&prefs, | 837 TestUpdateCheck(&prefs, |
837 kDefaultTestParams, | 838 kDefaultTestParams, |
838 "<?xml version=\"1.0\" encoding=\"UTF-8\"?><gupdate " | 839 "<?xml version=\"1.0\" encoding=\"UTF-8\"?><gupdate " |
839 "xmlns=\"http://www.google.com/update2/response\" " | 840 "xmlns=\"http://www.google.com/update2/response\" " |
840 "protocol=\"2.0\"><daystart elapsed_seconds=\"x\"/>" | 841 "protocol=\"2.0\"><daystart elapsed_seconds=\"x\"/>" |
841 "<app appid=\"foo\" status=\"ok\"><ping status=\"ok\"/>" | 842 "<app appid=\"foo\" status=\"ok\"><ping status=\"ok\"/>" |
842 "<updatecheck status=\"noupdate\"/></app></gupdate>", | 843 "<updatecheck status=\"noupdate\"/></app></gupdate>", |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
883 "", | 884 "", |
884 1500, | 885 1500, |
885 static_cast<ActionExitCode>( | 886 static_cast<ActionExitCode>( |
886 kActionCodeOmahaRequestHTTPResponseBase + 999), | 887 kActionCodeOmahaRequestHTTPResponseBase + 999), |
887 &response, | 888 &response, |
888 NULL)); | 889 NULL)); |
889 EXPECT_FALSE(response.update_exists); | 890 EXPECT_FALSE(response.update_exists); |
890 } | 891 } |
891 | 892 |
892 } // namespace chromeos_update_engine | 893 } // namespace chromeos_update_engine |
OLD | NEW |