diff options
author | haruki@chromium.org <haruki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-09 09:40:42 +0000 |
---|---|---|
committer | haruki@chromium.org <haruki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-09 09:40:42 +0000 |
commit | aca6db0af1710c3ebada95bb1e0b3c4889a9f5d7 (patch) | |
tree | 5603c8bc11dc6926728bf8964e3fb90e9525d585 | |
parent | 5697a1d251aa22b5f0d1c55249c1c7dbfd4cb336 (diff) | |
download | chromium_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.cc | 86 | ||||
-rw-r--r-- | chromeos/dbus/fake_update_engine_client.cc | 11 | ||||
-rw-r--r-- | chromeos/dbus/fake_update_engine_client.h | 12 |
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 |