summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorharuki@chromium.org <haruki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-09 09:40:42 +0000
committerharuki@chromium.org <haruki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-09 09:40:42 +0000
commitaca6db0af1710c3ebada95bb1e0b3c4889a9f5d7 (patch)
tree5603c8bc11dc6926728bf8964e3fb90e9525d585
parent5697a1d251aa22b5f0d1c55249c1c7dbfd4cb336 (diff)
downloadchromium_src-aca6db0af1710c3ebada95bb1e0b3c4889a9f5d7.zip
chromium_src-aca6db0af1710c3ebada95bb1e0b3c4889a9f5d7.tar.gz
chromium_src-aca6db0af1710c3ebada95bb1e0b3c4889a9f5d7.tar.bz2
Use MockDBusThreadManagerWithoutGMock for UpdateScreenTest
BUG=239333 TEST=trybots R=satorux@chromium.org Review URL: https://codereview.chromium.org/15082003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@199175 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/chromeos/login/screens/update_screen_browsertest.cc86
-rw-r--r--chromeos/dbus/fake_update_engine_client.cc11
-rw-r--r--chromeos/dbus/fake_update_engine_client.h12
3 files changed, 44 insertions, 65 deletions
diff --git a/chrome/browser/chromeos/login/screens/update_screen_browsertest.cc b/chrome/browser/chromeos/login/screens/update_screen_browsertest.cc
index e6fba5b..47f475d 100644
--- a/chrome/browser/chromeos/login/screens/update_screen_browsertest.cc
+++ b/chrome/browser/chromeos/login/screens/update_screen_browsertest.cc
@@ -13,9 +13,8 @@
#include "chrome/browser/chromeos/net/network_portal_detector.h"
#include "chrome/browser/chromeos/net/network_portal_detector_stub.h"
#include "chromeos/chromeos_switches.h"
-#include "chromeos/dbus/mock_dbus_thread_manager.h"
-#include "chromeos/dbus/mock_session_manager_client.h"
-#include "chromeos/dbus/mock_update_engine_client.h"
+#include "chromeos/dbus/fake_update_engine_client.h"
+#include "chromeos/dbus/mock_dbus_thread_manager_without_gmock.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -32,50 +31,27 @@ namespace {
const char kDefaultEthernetServicePath[] = "eth0";
const char kDefaultWifiServicePath[] = "wlan0";
-static void RequestUpdateCheckSuccess(
- UpdateEngineClient::UpdateCheckCallback callback) {
- callback.Run(UpdateEngineClient::UPDATE_RESULT_SUCCESS);
-}
-
} // namespace
class UpdateScreenTest : public WizardInProcessBrowserTest {
public:
UpdateScreenTest() : WizardInProcessBrowserTest("update"),
- mock_update_engine_client_(NULL),
+ fake_update_engine_client_(NULL),
mock_network_library_(NULL),
network_portal_detector_stub_(NULL) {
}
protected:
virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
- MockDBusThreadManager* mock_dbus_thread_manager =
- new MockDBusThreadManager;
- EXPECT_CALL(*mock_dbus_thread_manager, GetSystemBus())
- .WillRepeatedly(Return(reinterpret_cast<dbus::Bus*>(NULL)));
+ MockDBusThreadManagerWithoutGMock* mock_dbus_thread_manager =
+ new MockDBusThreadManagerWithoutGMock;
DBusThreadManager::InitializeForTesting(mock_dbus_thread_manager);
WizardInProcessBrowserTest::SetUpInProcessBrowserTestFixture();
cros_mock_->InitStatusAreaMocks();
cros_mock_->SetStatusAreaMocksExpectations();
- MockSessionManagerClient* mock_session_manager_client
- = mock_dbus_thread_manager->mock_session_manager_client();
- EXPECT_CALL(*mock_session_manager_client, EmitLoginPromptReady())
- .Times(1);
-
- mock_update_engine_client_
- = mock_dbus_thread_manager->mock_update_engine_client();
-
- // UpdateScreen::StartUpdate() will be called by the WizardController
- // just after creating the update screen, so the expectations for that
- // should be set up here.
- EXPECT_CALL(*mock_update_engine_client_, AddObserver(_))
- .Times(AtLeast(1));
- EXPECT_CALL(*mock_update_engine_client_, RemoveObserver(_))
- .Times(AtLeast(1));
- EXPECT_CALL(*mock_update_engine_client_, RequestUpdateCheck(_))
- .Times(1)
- .WillOnce(Invoke(RequestUpdateCheckSuccess));
+ fake_update_engine_client_
+ = mock_dbus_thread_manager->fake_update_engine_client();
mock_network_library_ = cros_mock_->mock_network_library();
stub_ethernet_.reset(new EthernetNetwork(kDefaultEthernetServicePath));
@@ -161,7 +137,7 @@ class UpdateScreenTest : public WizardInProcessBrowserTest {
network_portal_detector_stub_->NotifyObserversForTesting();
}
- MockUpdateEngineClient* mock_update_engine_client_;
+ FakeUpdateEngineClient* fake_update_engine_client_;
MockNetworkLibrary* mock_network_library_;
scoped_ptr<Network> stub_ethernet_;
scoped_ptr<Network> stub_wifi_;
@@ -189,9 +165,8 @@ IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestNoUpdate) {
status.status = UpdateEngineClient::UPDATE_STATUS_IDLE;
// GetLastStatus() will be called via ExitUpdate() called from
// UpdateStatusChanged().
- EXPECT_CALL(*mock_update_engine_client_, GetLastStatus())
- .Times(AtLeast(1))
- .WillRepeatedly(Return(status));
+ fake_update_engine_client_->set_update_engine_client_status(status);
+
EXPECT_CALL(*mock_screen_observer_, OnExit(ScreenObserver::UPDATE_NOUPDATE))
.Times(1);
update_screen_->UpdateStatusChanged(status);
@@ -222,14 +197,9 @@ IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestUpdateAvailable) {
update_screen_->UpdateStatusChanged(status);
status.status = UpdateEngineClient::UPDATE_STATUS_UPDATED_NEED_REBOOT;
- EXPECT_CALL(*mock_update_engine_client_, RebootAfterUpdate())
- .Times(1);
update_screen_->UpdateStatusChanged(status);
-}
-
-static void RequestUpdateCheckFail(
- UpdateEngineClient::UpdateCheckCallback callback) {
- callback.Run(chromeos::UpdateEngineClient::UPDATE_RESULT_FAILED);
+ // UpdateStatusChanged(status) calls RebootAfterUpdate().
+ EXPECT_EQ(1, fake_update_engine_client_->reboot_after_update_call_count());
}
IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestErrorIssuingUpdateCheck) {
@@ -239,15 +209,8 @@ IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestErrorIssuingUpdateCheck) {
.Times(1);
update_screen_->CancelUpdate();
- // Run UpdateScreen::StartUpdate() again, but CheckForUpdate() will fail
- // issuing the update check this time.
- EXPECT_CALL(*mock_update_engine_client_, AddObserver(_))
- .Times(1);
- EXPECT_CALL(*mock_update_engine_client_, RemoveObserver(_))
- .Times(AtLeast(1));
- EXPECT_CALL(*mock_update_engine_client_, RequestUpdateCheck(_))
- .Times(1)
- .WillOnce(Invoke(RequestUpdateCheckFail));
+ fake_update_engine_client_->set_update_check_result(
+ chromeos::UpdateEngineClient::UPDATE_RESULT_FAILED);
EXPECT_CALL(*mock_screen_observer_,
OnExit(ScreenObserver::UPDATE_ERROR_CHECKING_FOR_UPDATE))
.Times(1);
@@ -259,9 +222,8 @@ IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestErrorCheckingForUpdate) {
status.status = UpdateEngineClient::UPDATE_STATUS_ERROR;
// GetLastStatus() will be called via ExitUpdate() called from
// UpdateStatusChanged().
- EXPECT_CALL(*mock_update_engine_client_, GetLastStatus())
- .Times(AtLeast(1))
- .WillRepeatedly(Return(status));
+ fake_update_engine_client_->set_update_engine_client_status(status);
+
EXPECT_CALL(*mock_screen_observer_,
OnExit(ScreenObserver::UPDATE_ERROR_CHECKING_FOR_UPDATE))
.Times(1);
@@ -274,17 +236,15 @@ IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestErrorUpdating) {
status.new_version = "latest and greatest";
// GetLastStatus() will be called via ExitUpdate() called from
// UpdateStatusChanged().
- EXPECT_CALL(*mock_update_engine_client_, GetLastStatus())
- .Times(AtLeast(1))
- .WillRepeatedly(Return(status));
+ fake_update_engine_client_->set_update_engine_client_status(status);
+
update_screen_->UpdateStatusChanged(status);
status.status = UpdateEngineClient::UPDATE_STATUS_ERROR;
// GetLastStatus() will be called via ExitUpdate() called from
// UpdateStatusChanged().
- EXPECT_CALL(*mock_update_engine_client_, GetLastStatus())
- .Times(AtLeast(1))
- .WillRepeatedly(Return(status));
+ fake_update_engine_client_->set_update_engine_client_status(status);
+
EXPECT_CALL(*mock_screen_observer_,
OnExit(ScreenObserver::UPDATE_ERROR_UPDATING))
.Times(1);
@@ -327,9 +287,9 @@ IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestTemproraryOfflineNetwork) {
// so update screen will hide error message and proceed to update.
EXPECT_CALL(*mock_screen_observer_, HideErrorScreen(update_screen_))
.Times(1);
- EXPECT_CALL(*mock_update_engine_client_, RequestUpdateCheck(_))
- .Times(1)
- .WillOnce(Invoke(RequestUpdateCheckFail));
+ fake_update_engine_client_->set_update_check_result(
+ chromeos::UpdateEngineClient::UPDATE_RESULT_FAILED);
+
EXPECT_CALL(*mock_screen_observer_,
OnExit(ScreenObserver::UPDATE_ERROR_CHECKING_FOR_UPDATE))
.Times(1);
diff --git a/chromeos/dbus/fake_update_engine_client.cc b/chromeos/dbus/fake_update_engine_client.cc
index aee8c37..36618f8 100644
--- a/chromeos/dbus/fake_update_engine_client.cc
+++ b/chromeos/dbus/fake_update_engine_client.cc
@@ -6,7 +6,9 @@
namespace chromeos {
-FakeUpdateEngineClient::FakeUpdateEngineClient() {
+FakeUpdateEngineClient::FakeUpdateEngineClient()
+ : update_check_result_(UpdateEngineClient::UPDATE_RESULT_SUCCESS),
+ reboot_after_update_call_count_(0) {
}
FakeUpdateEngineClient::~FakeUpdateEngineClient() {
@@ -24,9 +26,11 @@ bool FakeUpdateEngineClient::HasObserver(Observer* observer) {
void FakeUpdateEngineClient::RequestUpdateCheck(
const UpdateCheckCallback& callback) {
+ callback.Run(update_check_result_);
}
void FakeUpdateEngineClient::RebootAfterUpdate() {
+ reboot_after_update_call_count_++;
}
void FakeUpdateEngineClient::SetReleaseTrack(const std::string& track) {
@@ -45,4 +49,9 @@ void FakeUpdateEngineClient::set_update_engine_client_status(
update_engine_client_status_ = status;
}
+void FakeUpdateEngineClient::set_update_check_result(
+ const UpdateEngineClient::UpdateCheckResult& result) {
+ update_check_result_ = result;
+}
+
} // namespace chromeos
diff --git a/chromeos/dbus/fake_update_engine_client.h b/chromeos/dbus/fake_update_engine_client.h
index 4f14e75..ccf2504 100644
--- a/chromeos/dbus/fake_update_engine_client.h
+++ b/chromeos/dbus/fake_update_engine_client.h
@@ -34,9 +34,19 @@ class FakeUpdateEngineClient : public UpdateEngineClient {
void set_update_engine_client_status(
const UpdateEngineClient::Status& status);
+ // Sets a value returned by RequestUpdateCheck().
+ void set_update_check_result(
+ const UpdateEngineClient::UpdateCheckResult& result);
+
+ // Returns how many times RebootAfterUpdate() is called.
+ int reboot_after_update_call_count() {
+ return reboot_after_update_call_count_;
+ }
+
private:
UpdateEngineClient::Status update_engine_client_status_;
-
+ UpdateEngineClient::UpdateCheckResult update_check_result_;
+ int reboot_after_update_call_count_;
};
} // namespace chromeos