| Index: update_attempter_unittest.cc
|
| diff --git a/update_attempter_unittest.cc b/update_attempter_unittest.cc
|
| index a65ffea68f3003ee0a39ab973a86b38cb28dc91d..6d61c4e11fc1fac582a250fa02af01b17cdbe8b2 100644
|
| --- a/update_attempter_unittest.cc
|
| +++ b/update_attempter_unittest.cc
|
| @@ -9,9 +9,12 @@
|
| #include "update_engine/action_processor_mock.h"
|
| #include "update_engine/filesystem_copier_action.h"
|
| #include "update_engine/mock_dbus_interface.h"
|
| +#include "update_engine/mock_http_fetcher.h"
|
| #include "update_engine/postinstall_runner_action.h"
|
| #include "update_engine/prefs_mock.h"
|
| +#include "update_engine/test_utils.h"
|
| #include "update_engine/update_attempter.h"
|
| +#include "update_engine/update_check_scheduler.h"
|
|
|
| using std::string;
|
| using testing::_;
|
| @@ -62,6 +65,47 @@ class UpdateAttempterTest : public ::testing::Test {
|
| NiceMock<PrefsMock> prefs_;
|
| };
|
|
|
| +TEST_F(UpdateAttempterTest, ActionCompletedDownloadTest) {
|
| + scoped_ptr<MockHttpFetcher> fetcher(new MockHttpFetcher("", 0, NULL));
|
| + fetcher->FailTransfer(503); // Sets the HTTP response code.
|
| + DownloadAction action(&prefs_, fetcher.release());
|
| + EXPECT_CALL(prefs_, GetInt64(kPrefsDeltaUpdateFailures, _)).Times(0);
|
| + attempter_.ActionCompleted(NULL, &action, kActionCodeSuccess);
|
| + EXPECT_EQ(503, attempter_.http_response_code());
|
| + EXPECT_EQ(UPDATE_STATUS_FINALIZING, attempter_.status());
|
| + ASSERT_TRUE(attempter_.error_event_.get() == NULL);
|
| +}
|
| +
|
| +TEST_F(UpdateAttempterTest, ActionCompletedErrorTest) {
|
| + ActionMock action;
|
| + EXPECT_CALL(action, Type()).WillRepeatedly(Return("ActionMock"));
|
| + attempter_.status_ = UPDATE_STATUS_DOWNLOADING;
|
| + EXPECT_CALL(prefs_, GetInt64(kPrefsDeltaUpdateFailures, _))
|
| + .WillOnce(Return(false));
|
| + attempter_.ActionCompleted(NULL, &action, kActionCodeError);
|
| + ASSERT_TRUE(attempter_.error_event_.get() != NULL);
|
| +}
|
| +
|
| +TEST_F(UpdateAttempterTest, ActionCompletedOmahaRequestTest) {
|
| + scoped_ptr<MockHttpFetcher> fetcher(new MockHttpFetcher("", 0, NULL));
|
| + fetcher->FailTransfer(500); // Sets the HTTP response code.
|
| + OmahaRequestParams params;
|
| + OmahaRequestAction action(&prefs_, params, NULL, fetcher.release());
|
| + ObjectCollectorAction<OmahaResponse> collector_action;
|
| + BondActions(&action, &collector_action);
|
| + OmahaResponse response;
|
| + response.poll_interval = 234;
|
| + action.SetOutputObject(response);
|
| + UpdateCheckScheduler scheduler(&attempter_);
|
| + attempter_.set_update_check_scheduler(&scheduler);
|
| + EXPECT_CALL(prefs_, GetInt64(kPrefsDeltaUpdateFailures, _)).Times(0);
|
| + attempter_.ActionCompleted(NULL, &action, kActionCodeSuccess);
|
| + EXPECT_EQ(500, attempter_.http_response_code());
|
| + EXPECT_EQ(UPDATE_STATUS_IDLE, attempter_.status());
|
| + EXPECT_EQ(234, scheduler.poll_interval());
|
| + ASSERT_TRUE(attempter_.error_event_.get() == NULL);
|
| +}
|
| +
|
| TEST_F(UpdateAttempterTest, RunAsRootConstructWithUpdatedMarkerTest) {
|
| extern const char* kUpdateCompletedMarker;
|
| const FilePath kMarker(kUpdateCompletedMarker);
|
| @@ -141,6 +185,25 @@ TEST_F(UpdateAttempterTest, MarkDeltaUpdateFailureTest) {
|
| attempter_.MarkDeltaUpdateFailure();
|
| }
|
|
|
| +TEST_F(UpdateAttempterTest, ScheduleErrorEventActionNoEventTest) {
|
| + EXPECT_CALL(*processor_, EnqueueAction(_)).Times(0);
|
| + EXPECT_CALL(*processor_, StartProcessing()).Times(0);
|
| + attempter_.ScheduleErrorEventAction();
|
| +}
|
| +
|
| +TEST_F(UpdateAttempterTest, ScheduleErrorEventActionTest) {
|
| + EXPECT_CALL(*processor_,
|
| + EnqueueAction(Property(&AbstractAction::Type,
|
| + OmahaRequestAction::StaticType())))
|
| + .Times(1);
|
| + EXPECT_CALL(*processor_, StartProcessing()).Times(1);
|
| + attempter_.error_event_.reset(new OmahaEvent(OmahaEvent::kTypeUpdateComplete,
|
| + OmahaEvent::kResultError,
|
| + kActionCodeError));
|
| + attempter_.ScheduleErrorEventAction();
|
| + EXPECT_EQ(UPDATE_STATUS_REPORTING_ERROR_EVENT, attempter_.status());
|
| +}
|
| +
|
| TEST_F(UpdateAttempterTest, UpdateStatusToStringTest) {
|
| extern const char* UpdateStatusToString(UpdateStatus);
|
| EXPECT_STREQ("UPDATE_STATUS_IDLE", UpdateStatusToString(UPDATE_STATUS_IDLE));
|
|
|