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_); |
} |
}; |