| Index: update_attempter_unittest.cc
|
| diff --git a/update_attempter_unittest.cc b/update_attempter_unittest.cc
|
| index 76068fd1ecd3b7f705410e9165d81fe7716671bf..73addb5a644801777c1064a9eb4ea121445c2387 100644
|
| --- a/update_attempter_unittest.cc
|
| +++ b/update_attempter_unittest.cc
|
| @@ -39,7 +39,7 @@ class UpdateAttempterUnderTest : public UpdateAttempter {
|
|
|
| class UpdateAttempterTest : public ::testing::Test {
|
| protected:
|
| - UpdateAttempterTest() : attempter_(&dbus_) {}
|
| + UpdateAttempterTest() : attempter_(&dbus_), loop_(NULL) {}
|
| virtual void SetUp() {
|
| EXPECT_EQ(NULL, attempter_.dbus_service_);
|
| EXPECT_EQ(NULL, attempter_.prefs_);
|
| @@ -60,10 +60,16 @@ class UpdateAttempterTest : public ::testing::Test {
|
| attempter_.prefs_ = &prefs_;
|
| }
|
|
|
| + void UpdateTestStart();
|
| + void UpdateTestVerify();
|
| + static gboolean StaticUpdateTestStart(gpointer data);
|
| + static gboolean StaticUpdateTestVerify(gpointer data);
|
| +
|
| MockDbusGlib dbus_;
|
| UpdateAttempterUnderTest attempter_;
|
| ActionProcessorMock* processor_;
|
| NiceMock<PrefsMock> prefs_;
|
| + GMainLoop* loop_;
|
| };
|
|
|
| TEST_F(UpdateAttempterTest, ActionCompletedDownloadTest) {
|
| @@ -227,22 +233,35 @@ TEST_F(UpdateAttempterTest, UpdateStatusToStringTest) {
|
| UpdateStatusToString(static_cast<UpdateStatus>(-1)));
|
| }
|
|
|
| -TEST_F(UpdateAttempterTest, UpdateTest) {
|
| +gboolean UpdateAttempterTest::StaticUpdateTestStart(gpointer data) {
|
| + reinterpret_cast<UpdateAttempterTest*>(data)->UpdateTestStart();
|
| + return FALSE;
|
| +}
|
| +
|
| +gboolean UpdateAttempterTest::StaticUpdateTestVerify(gpointer data) {
|
| + reinterpret_cast<UpdateAttempterTest*>(data)->UpdateTestVerify();
|
| + return FALSE;
|
| +}
|
| +
|
| +namespace {
|
| +const string kActionTypes[] = {
|
| + OmahaRequestAction::StaticType(),
|
| + OmahaResponseHandlerAction::StaticType(),
|
| + FilesystemCopierAction::StaticType(),
|
| + FilesystemCopierAction::StaticType(),
|
| + OmahaRequestAction::StaticType(),
|
| + DownloadAction::StaticType(),
|
| + OmahaRequestAction::StaticType(),
|
| + FilesystemCopierAction::StaticType(),
|
| + FilesystemCopierAction::StaticType(),
|
| + PostinstallRunnerAction::StaticType(),
|
| + OmahaRequestAction::StaticType()
|
| +};
|
| +} // namespace {}
|
| +
|
| +void UpdateAttempterTest::UpdateTestStart() {
|
| attempter_.set_http_response_code(200);
|
| InSequence s;
|
| - const string kActionTypes[] = {
|
| - OmahaRequestAction::StaticType(),
|
| - OmahaResponseHandlerAction::StaticType(),
|
| - FilesystemCopierAction::StaticType(),
|
| - FilesystemCopierAction::StaticType(),
|
| - OmahaRequestAction::StaticType(),
|
| - DownloadAction::StaticType(),
|
| - OmahaRequestAction::StaticType(),
|
| - FilesystemCopierAction::StaticType(),
|
| - FilesystemCopierAction::StaticType(),
|
| - PostinstallRunnerAction::StaticType(),
|
| - OmahaRequestAction::StaticType()
|
| - };
|
| for (size_t i = 0; i < arraysize(kActionTypes); ++i) {
|
| EXPECT_CALL(*processor_,
|
| EnqueueAction(Property(&AbstractAction::Type,
|
| @@ -251,7 +270,10 @@ TEST_F(UpdateAttempterTest, UpdateTest) {
|
| EXPECT_CALL(*processor_, StartProcessing()).Times(1);
|
|
|
| attempter_.Update("", "", false);
|
| + g_idle_add(&StaticUpdateTestVerify, this);
|
| +}
|
|
|
| +void UpdateAttempterTest::UpdateTestVerify() {
|
| EXPECT_EQ(0, attempter_.http_response_code());
|
| EXPECT_EQ(&attempter_, processor_->delegate());
|
| EXPECT_EQ(arraysize(kActionTypes), attempter_.actions_.size());
|
| @@ -265,6 +287,15 @@ TEST_F(UpdateAttempterTest, UpdateTest) {
|
| ASSERT_TRUE(download_action != NULL);
|
| EXPECT_EQ(&attempter_, download_action->delegate());
|
| EXPECT_EQ(UPDATE_STATUS_CHECKING_FOR_UPDATE, attempter_.status());
|
| + g_main_loop_quit(loop_);
|
| +}
|
| +
|
| +TEST_F(UpdateAttempterTest, UpdateTest) {
|
| + loop_ = g_main_loop_new(g_main_context_default(), FALSE);
|
| + g_idle_add(&StaticUpdateTestStart, this);
|
| + g_main_loop_run(loop_);
|
| + g_main_loop_unref(loop_);
|
| + loop_ = NULL;
|
| }
|
|
|
| } // namespace chromeos_update_engine
|
|
|