Chromium Code Reviews| Index: chrome/browser/chromeos/login/crash_restore_browsertest.cc |
| diff --git a/chrome/browser/chromeos/login/crash_restore_browsertest.cc b/chrome/browser/chromeos/login/crash_restore_browsertest.cc |
| index 8bcaaf5576c09cfdabaff64548010ca59ff3d3a1..a4bb1beefaa72b5a410edf3f1319bf688bcfcf13 100644 |
| --- a/chrome/browser/chromeos/login/crash_restore_browsertest.cc |
| +++ b/chrome/browser/chromeos/login/crash_restore_browsertest.cc |
| @@ -33,7 +33,7 @@ const char kUserId3[] = "user3@example.com"; |
| class CrashRestoreSimpleTest : public InProcessBrowserTest { |
| protected: |
| - CrashRestoreSimpleTest() {} |
| + CrashRestoreSimpleTest() : session_started_count_(0) {} |
| virtual ~CrashRestoreSimpleTest() {} |
| @@ -53,10 +53,29 @@ class CrashRestoreSimpleTest : public InProcessBrowserTest { |
| dbus_thread_manager->SetSessionManagerClient( |
| scoped_ptr<SessionManagerClient>(session_manager_client_)); |
| DBusThreadManager::SetInstanceForTesting(dbus_thread_manager); |
| - session_manager_client_->StartSession(kUserId1); |
| + //We need to create MessageLoop here to process callback from |
| + //session_manager |
|
oshima
2014/04/24 13:59:31
// We need to ...
// session_manager
(space after
Roman Sorokin (ftl)
2014/04/28 15:31:14
Done.
|
| + msg_loop_.reset(new base::MessageLoop); |
|
oshima
2014/04/24 13:59:31
you can just create message look on stack.
Roman Sorokin (ftl)
2014/04/28 15:31:14
Done.
|
| + session_manager_client_->StartSession( |
| + kUserId1, |
| + base::Bind(&CrashRestoreSimpleTest::OnSessionStarted, |
| + base::Unretained(this), |
| + kUserId1)); |
| + base::RunLoop().RunUntilIdle(); |
| + msg_loop_.reset(NULL); |
| + ASSERT_EQ(1, session_started_count_); |
| } |
| + public: |
| + void OnSessionStarted(const std::string& user_email, bool success) { |
| + ASSERT_TRUE(success); |
| + ++session_started_count_; |
| + } |
| + |
| + protected: |
| + scoped_ptr<base::MessageLoop> msg_loop_; |
| FakeSessionManagerClient* session_manager_client_; |
| + int session_started_count_; |
| }; |
| IN_PROC_BROWSER_TEST_F(CrashRestoreSimpleTest, RestoreSessionForOneUser) { |
| @@ -118,8 +137,22 @@ class CrashRestoreComplexTest : public CrashRestoreSimpleTest { |
| virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { |
| CrashRestoreSimpleTest::SetUpInProcessBrowserTestFixture(); |
| - session_manager_client_->StartSession(kUserId2); |
| - session_manager_client_->StartSession(kUserId3); |
| + //We need to create MessageLoop here to process callback from |
| + //session_manager |
| + msg_loop_.reset(new base::MessageLoop); |
| + session_manager_client_->StartSession( |
| + kUserId2, |
| + base::Bind(&CrashRestoreSimpleTest::OnSessionStarted, |
| + base::Unretained(this), |
| + kUserId2)); |
| + session_manager_client_->StartSession( |
| + kUserId3, |
| + base::Bind(&CrashRestoreSimpleTest::OnSessionStarted, |
| + base::Unretained(this), |
| + kUserId3)); |
| + base::RunLoop().RunUntilIdle(); |
| + msg_loop_.reset(NULL); |
| + ASSERT_EQ(3, CrashRestoreSimpleTest::session_started_count_); |
| } |
| }; |