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

Side by Side Diff: update_attempter_unittest.cc

Issue 6836025: Add support to update_engine to poke Omaha after an update has been applied (Closed) Base URL: http://git.chromium.org/git/update_engine.git@master
Patch Set: Fixed bug where last ping day was not properly updated Created 9 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 | « update_attempter.cc ('k') | update_check_scheduler.h » ('j') | 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) 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 <base/file_util.h> 5 #include <base/file_util.h>
6 #include <gtest/gtest.h> 6 #include <gtest/gtest.h>
7 7
8 #include "update_engine/action_mock.h" 8 #include "update_engine/action_mock.h"
9 #include "update_engine/action_processor_mock.h" 9 #include "update_engine/action_processor_mock.h"
10 #include "update_engine/filesystem_copier_action.h" 10 #include "update_engine/filesystem_copier_action.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 EXPECT_FALSE(attempter_.is_full_update_); 57 EXPECT_FALSE(attempter_.is_full_update_);
58 processor_ = new ActionProcessorMock(); 58 processor_ = new ActionProcessorMock();
59 attempter_.processor_.reset(processor_); // Transfers ownership. 59 attempter_.processor_.reset(processor_); // Transfers ownership.
60 attempter_.prefs_ = &prefs_; 60 attempter_.prefs_ = &prefs_;
61 } 61 }
62 62
63 void UpdateTestStart(); 63 void UpdateTestStart();
64 void UpdateTestVerify(); 64 void UpdateTestVerify();
65 static gboolean StaticUpdateTestStart(gpointer data); 65 static gboolean StaticUpdateTestStart(gpointer data);
66 static gboolean StaticUpdateTestVerify(gpointer data); 66 static gboolean StaticUpdateTestVerify(gpointer data);
67 void PingOmahaTestStart();
68 void PingOmahaTestDone();
69 static gboolean StaticPingOmahaTestStart(gpointer data);
70 static gboolean StaticPingOmahaTestDone(gpointer data);
67 71
68 MockDbusGlib dbus_; 72 MockDbusGlib dbus_;
69 UpdateAttempterUnderTest attempter_; 73 UpdateAttempterUnderTest attempter_;
70 ActionProcessorMock* processor_; 74 ActionProcessorMock* processor_;
71 NiceMock<PrefsMock> prefs_; 75 NiceMock<PrefsMock> prefs_;
72 GMainLoop* loop_; 76 GMainLoop* loop_;
73 }; 77 };
74 78
75 TEST_F(UpdateAttempterTest, ActionCompletedDownloadTest) { 79 TEST_F(UpdateAttempterTest, ActionCompletedDownloadTest) {
76 scoped_ptr<MockHttpFetcher> fetcher(new MockHttpFetcher("", 0, NULL)); 80 scoped_ptr<MockHttpFetcher> fetcher(new MockHttpFetcher("", 0, NULL));
(...skipping 13 matching lines...) Expand all
90 EXPECT_CALL(prefs_, GetInt64(kPrefsDeltaUpdateFailures, _)) 94 EXPECT_CALL(prefs_, GetInt64(kPrefsDeltaUpdateFailures, _))
91 .WillOnce(Return(false)); 95 .WillOnce(Return(false));
92 attempter_.ActionCompleted(NULL, &action, kActionCodeError); 96 attempter_.ActionCompleted(NULL, &action, kActionCodeError);
93 ASSERT_TRUE(attempter_.error_event_.get() != NULL); 97 ASSERT_TRUE(attempter_.error_event_.get() != NULL);
94 } 98 }
95 99
96 TEST_F(UpdateAttempterTest, ActionCompletedOmahaRequestTest) { 100 TEST_F(UpdateAttempterTest, ActionCompletedOmahaRequestTest) {
97 scoped_ptr<MockHttpFetcher> fetcher(new MockHttpFetcher("", 0, NULL)); 101 scoped_ptr<MockHttpFetcher> fetcher(new MockHttpFetcher("", 0, NULL));
98 fetcher->FailTransfer(500); // Sets the HTTP response code. 102 fetcher->FailTransfer(500); // Sets the HTTP response code.
99 OmahaRequestParams params; 103 OmahaRequestParams params;
100 OmahaRequestAction action(&prefs_, params, NULL, fetcher.release()); 104 OmahaRequestAction action(&prefs_, params, NULL, fetcher.release(), false);
101 ObjectCollectorAction<OmahaResponse> collector_action; 105 ObjectCollectorAction<OmahaResponse> collector_action;
102 BondActions(&action, &collector_action); 106 BondActions(&action, &collector_action);
103 OmahaResponse response; 107 OmahaResponse response;
104 response.poll_interval = 234; 108 response.poll_interval = 234;
105 action.SetOutputObject(response); 109 action.SetOutputObject(response);
106 UpdateCheckScheduler scheduler(&attempter_); 110 UpdateCheckScheduler scheduler(&attempter_);
107 attempter_.set_update_check_scheduler(&scheduler); 111 attempter_.set_update_check_scheduler(&scheduler);
108 EXPECT_CALL(prefs_, GetInt64(kPrefsDeltaUpdateFailures, _)).Times(0); 112 EXPECT_CALL(prefs_, GetInt64(kPrefsDeltaUpdateFailures, _)).Times(0);
109 attempter_.ActionCompleted(NULL, &action, kActionCodeSuccess); 113 attempter_.ActionCompleted(NULL, &action, kActionCodeSuccess);
110 EXPECT_EQ(500, attempter_.http_response_code()); 114 EXPECT_EQ(500, attempter_.http_response_code());
(...skipping 12 matching lines...) Expand all
123 EXPECT_TRUE(file_util::Delete(kMarker, false)); 127 EXPECT_TRUE(file_util::Delete(kMarker, false));
124 } 128 }
125 129
126 TEST_F(UpdateAttempterTest, GetErrorCodeForActionTest) { 130 TEST_F(UpdateAttempterTest, GetErrorCodeForActionTest) {
127 extern ActionExitCode GetErrorCodeForAction(AbstractAction* action, 131 extern ActionExitCode GetErrorCodeForAction(AbstractAction* action,
128 ActionExitCode code); 132 ActionExitCode code);
129 EXPECT_EQ(kActionCodeSuccess, 133 EXPECT_EQ(kActionCodeSuccess,
130 GetErrorCodeForAction(NULL, kActionCodeSuccess)); 134 GetErrorCodeForAction(NULL, kActionCodeSuccess));
131 135
132 OmahaRequestParams params; 136 OmahaRequestParams params;
133 OmahaRequestAction omaha_request_action(NULL, params, NULL, NULL); 137 OmahaRequestAction omaha_request_action(NULL, params, NULL, NULL, false);
134 EXPECT_EQ(kActionCodeOmahaRequestError, 138 EXPECT_EQ(kActionCodeOmahaRequestError,
135 GetErrorCodeForAction(&omaha_request_action, kActionCodeError)); 139 GetErrorCodeForAction(&omaha_request_action, kActionCodeError));
136 OmahaResponseHandlerAction omaha_response_handler_action(&prefs_); 140 OmahaResponseHandlerAction omaha_response_handler_action(&prefs_);
137 EXPECT_EQ(kActionCodeOmahaResponseHandlerError, 141 EXPECT_EQ(kActionCodeOmahaResponseHandlerError,
138 GetErrorCodeForAction(&omaha_response_handler_action, 142 GetErrorCodeForAction(&omaha_response_handler_action,
139 kActionCodeError)); 143 kActionCodeError));
140 FilesystemCopierAction filesystem_copier_action(false, false); 144 FilesystemCopierAction filesystem_copier_action(false, false);
141 EXPECT_EQ(kActionCodeFilesystemCopierError, 145 EXPECT_EQ(kActionCodeFilesystemCopierError,
142 GetErrorCodeForAction(&filesystem_copier_action, kActionCodeError)); 146 GetErrorCodeForAction(&filesystem_copier_action, kActionCodeError));
143 PostinstallRunnerAction postinstall_runner_action; 147 PostinstallRunnerAction postinstall_runner_action;
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 gboolean UpdateAttempterTest::StaticUpdateTestStart(gpointer data) { 240 gboolean UpdateAttempterTest::StaticUpdateTestStart(gpointer data) {
237 reinterpret_cast<UpdateAttempterTest*>(data)->UpdateTestStart(); 241 reinterpret_cast<UpdateAttempterTest*>(data)->UpdateTestStart();
238 return FALSE; 242 return FALSE;
239 } 243 }
240 244
241 gboolean UpdateAttempterTest::StaticUpdateTestVerify(gpointer data) { 245 gboolean UpdateAttempterTest::StaticUpdateTestVerify(gpointer data) {
242 reinterpret_cast<UpdateAttempterTest*>(data)->UpdateTestVerify(); 246 reinterpret_cast<UpdateAttempterTest*>(data)->UpdateTestVerify();
243 return FALSE; 247 return FALSE;
244 } 248 }
245 249
250 gboolean UpdateAttempterTest::StaticPingOmahaTestStart(gpointer data) {
251 reinterpret_cast<UpdateAttempterTest*>(data)->PingOmahaTestStart();
252 return FALSE;
253 }
254
255 gboolean UpdateAttempterTest::StaticPingOmahaTestDone(gpointer data) {
256 reinterpret_cast<UpdateAttempterTest*>(data)->PingOmahaTestDone();
257 return FALSE;
258 }
259
246 namespace { 260 namespace {
247 const string kActionTypes[] = { 261 const string kActionTypes[] = {
248 OmahaRequestAction::StaticType(), 262 OmahaRequestAction::StaticType(),
249 OmahaResponseHandlerAction::StaticType(), 263 OmahaResponseHandlerAction::StaticType(),
250 FilesystemCopierAction::StaticType(), 264 FilesystemCopierAction::StaticType(),
251 FilesystemCopierAction::StaticType(), 265 FilesystemCopierAction::StaticType(),
252 OmahaRequestAction::StaticType(), 266 OmahaRequestAction::StaticType(),
253 DownloadAction::StaticType(), 267 DownloadAction::StaticType(),
254 OmahaRequestAction::StaticType(), 268 OmahaRequestAction::StaticType(),
255 OmahaRequestAction::StaticType(), 269 OmahaRequestAction::StaticType(),
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 } 306 }
293 307
294 TEST_F(UpdateAttempterTest, UpdateTest) { 308 TEST_F(UpdateAttempterTest, UpdateTest) {
295 loop_ = g_main_loop_new(g_main_context_default(), FALSE); 309 loop_ = g_main_loop_new(g_main_context_default(), FALSE);
296 g_idle_add(&StaticUpdateTestStart, this); 310 g_idle_add(&StaticUpdateTestStart, this);
297 g_main_loop_run(loop_); 311 g_main_loop_run(loop_);
298 g_main_loop_unref(loop_); 312 g_main_loop_unref(loop_);
299 loop_ = NULL; 313 loop_ = NULL;
300 } 314 }
301 315
316 void UpdateAttempterTest::PingOmahaTestStart() {
317 EXPECT_CALL(*processor_,
318 EnqueueAction(Property(&AbstractAction::Type,
319 OmahaRequestAction::StaticType())))
320 .Times(1);
321 EXPECT_CALL(*processor_, StartProcessing()).Times(1);
322 attempter_.PingOmaha();
323 g_idle_add(&StaticPingOmahaTestDone, this);
324 }
325
326 void UpdateAttempterTest::PingOmahaTestDone() {
327 g_main_loop_quit(loop_);
adlr 2011/04/18 18:05:28 this still may run before the action completes. Ca
thieule 2011/04/18 21:40:15 It looks like the processor is a mock so it doesn'
328 }
329
330 TEST_F(UpdateAttempterTest, PingOmahaTest) {
331 UpdateCheckScheduler scheduler(&attempter_);
332 scheduler.enabled_ = true;
333 EXPECT_EQ(false, scheduler.scheduled_);
334 attempter_.set_update_check_scheduler(&scheduler);
335 loop_ = g_main_loop_new(g_main_context_default(), FALSE);
336 g_idle_add(&StaticPingOmahaTestStart, this);
337 g_main_loop_run(loop_);
338 g_main_loop_unref(loop_);
339 loop_ = NULL;
340 EXPECT_EQ(UPDATE_STATUS_UPDATED_NEED_REBOOT, attempter_.status());
341 EXPECT_EQ(true, scheduler.scheduled_);
342 }
343
302 } // namespace chromeos_update_engine 344 } // namespace chromeos_update_engine
OLDNEW
« no previous file with comments | « update_attempter.cc ('k') | update_check_scheduler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698