Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(157)

Side by Side Diff: chrome/browser/chromeos/login/crash_restore_browsertest.cc

Issue 268293002: Revert of Start session fail causes restart chrome (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | chrome/browser/chromeos/login/login_utils.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <string> 5 #include <string>
6 #include <vector> 6 #include <vector>
7 7
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 15 matching lines...) Expand all
26 namespace { 26 namespace {
27 27
28 const char kUserId1[] = "user1@example.com"; 28 const char kUserId1[] = "user1@example.com";
29 const char kUserId2[] = "user2@example.com"; 29 const char kUserId2[] = "user2@example.com";
30 const char kUserId3[] = "user3@example.com"; 30 const char kUserId3[] = "user3@example.com";
31 31
32 } // namespace 32 } // namespace
33 33
34 class CrashRestoreSimpleTest : public InProcessBrowserTest { 34 class CrashRestoreSimpleTest : public InProcessBrowserTest {
35 protected: 35 protected:
36 CrashRestoreSimpleTest() : session_started_count_(0) {} 36 CrashRestoreSimpleTest() {}
37 37
38 virtual ~CrashRestoreSimpleTest() {} 38 virtual ~CrashRestoreSimpleTest() {}
39 39
40 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { 40 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
41 command_line->AppendSwitch(::switches::kMultiProfiles); 41 command_line->AppendSwitch(::switches::kMultiProfiles);
42 command_line->AppendSwitchASCII(switches::kLoginUser, kUserId1); 42 command_line->AppendSwitchASCII(switches::kLoginUser, kUserId1);
43 command_line->AppendSwitchASCII( 43 command_line->AppendSwitchASCII(
44 switches::kLoginProfile, 44 switches::kLoginProfile,
45 CryptohomeClient::GetStubSanitizedUsername(kUserId1)); 45 CryptohomeClient::GetStubSanitizedUsername(kUserId1));
46 } 46 }
47 47
48 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { 48 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
49 // Redirect session_manager DBus calls to FakeSessionManagerClient. 49 // Redirect session_manager DBus calls to FakeSessionManagerClient.
50 FakeDBusThreadManager* dbus_thread_manager = new FakeDBusThreadManager; 50 FakeDBusThreadManager* dbus_thread_manager = new FakeDBusThreadManager;
51 dbus_thread_manager->SetFakeClients(); 51 dbus_thread_manager->SetFakeClients();
52 session_manager_client_ = new FakeSessionManagerClient; 52 session_manager_client_ = new FakeSessionManagerClient;
53 dbus_thread_manager->SetSessionManagerClient( 53 dbus_thread_manager->SetSessionManagerClient(
54 scoped_ptr<SessionManagerClient>(session_manager_client_)); 54 scoped_ptr<SessionManagerClient>(session_manager_client_));
55 DBusThreadManager::SetInstanceForTesting(dbus_thread_manager); 55 DBusThreadManager::SetInstanceForTesting(dbus_thread_manager);
56 // We need to create MessageLoop here to process callback from 56 session_manager_client_->StartSession(kUserId1);
57 // session_manager
58 base::MessageLoop msg_loop;
59 session_manager_client_->StartSession(
60 kUserId1,
61 base::Bind(&CrashRestoreSimpleTest::OnSessionStarted,
62 base::Unretained(this),
63 kUserId1));
64 base::RunLoop().RunUntilIdle();
65 ASSERT_EQ(1, session_started_count_);
66 } 57 }
67 58
68 public:
69 void OnSessionStarted(const std::string& user_email, bool success) {
70 ASSERT_TRUE(success);
71 ++session_started_count_;
72 }
73
74 protected:
75 FakeSessionManagerClient* session_manager_client_; 59 FakeSessionManagerClient* session_manager_client_;
76 int session_started_count_;
77 }; 60 };
78 61
79 IN_PROC_BROWSER_TEST_F(CrashRestoreSimpleTest, RestoreSessionForOneUser) { 62 IN_PROC_BROWSER_TEST_F(CrashRestoreSimpleTest, RestoreSessionForOneUser) {
80 UserManager* user_manager = UserManager::Get(); 63 UserManager* user_manager = UserManager::Get();
81 User* user = user_manager->GetActiveUser(); 64 User* user = user_manager->GetActiveUser();
82 ASSERT_TRUE(user); 65 ASSERT_TRUE(user);
83 EXPECT_EQ(kUserId1, user->email()); 66 EXPECT_EQ(kUserId1, user->email());
84 EXPECT_EQ(CryptohomeClient::GetStubSanitizedUsername(kUserId1), 67 EXPECT_EQ(CryptohomeClient::GetStubSanitizedUsername(kUserId1),
85 user->username_hash()); 68 user->username_hash());
86 EXPECT_EQ(1UL, user_manager->GetLoggedInUsers().size()); 69 EXPECT_EQ(1UL, user_manager->GetLoggedInUsers().size());
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 DISALLOW_COPY_AND_ASSIGN(UserSessionRestoreObserver); 111 DISALLOW_COPY_AND_ASSIGN(UserSessionRestoreObserver);
129 }; 112 };
130 113
131 class CrashRestoreComplexTest : public CrashRestoreSimpleTest { 114 class CrashRestoreComplexTest : public CrashRestoreSimpleTest {
132 protected: 115 protected:
133 CrashRestoreComplexTest() {} 116 CrashRestoreComplexTest() {}
134 virtual ~CrashRestoreComplexTest() {} 117 virtual ~CrashRestoreComplexTest() {}
135 118
136 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { 119 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
137 CrashRestoreSimpleTest::SetUpInProcessBrowserTestFixture(); 120 CrashRestoreSimpleTest::SetUpInProcessBrowserTestFixture();
138 // We need to create MessageLoop here to process callback from 121 session_manager_client_->StartSession(kUserId2);
139 // session_manager 122 session_manager_client_->StartSession(kUserId3);
140 base::MessageLoop msg_loop;
141 session_manager_client_->StartSession(
142 kUserId2,
143 base::Bind(&CrashRestoreSimpleTest::OnSessionStarted,
144 base::Unretained(this),
145 kUserId2));
146 session_manager_client_->StartSession(
147 kUserId3,
148 base::Bind(&CrashRestoreSimpleTest::OnSessionStarted,
149 base::Unretained(this),
150 kUserId3));
151 base::RunLoop().RunUntilIdle();
152 ASSERT_EQ(3, CrashRestoreSimpleTest::session_started_count_);
153 } 123 }
154 }; 124 };
155 125
156 IN_PROC_BROWSER_TEST_F(CrashRestoreComplexTest, RestoreSessionForThreeUsers) { 126 IN_PROC_BROWSER_TEST_F(CrashRestoreComplexTest, RestoreSessionForThreeUsers) {
157 { 127 {
158 UserSessionRestoreObserver restore_observer; 128 UserSessionRestoreObserver restore_observer;
159 restore_observer.Wait(); 129 restore_observer.Wait();
160 } 130 }
161 131
162 UserManager* user_manager = UserManager::Get(); 132 UserManager* user_manager = UserManager::Get();
(...skipping 15 matching lines...) Expand all
178 users[0]->username_hash()); 148 users[0]->username_hash());
179 EXPECT_EQ(kUserId2, users[1]->email()); 149 EXPECT_EQ(kUserId2, users[1]->email());
180 EXPECT_EQ(CryptohomeClient::GetStubSanitizedUsername(kUserId2), 150 EXPECT_EQ(CryptohomeClient::GetStubSanitizedUsername(kUserId2),
181 users[1]->username_hash()); 151 users[1]->username_hash());
182 EXPECT_EQ(kUserId1, users[2]->email()); 152 EXPECT_EQ(kUserId1, users[2]->email());
183 EXPECT_EQ(CryptohomeClient::GetStubSanitizedUsername(kUserId1), 153 EXPECT_EQ(CryptohomeClient::GetStubSanitizedUsername(kUserId1),
184 users[2]->username_hash()); 154 users[2]->username_hash());
185 } 155 }
186 156
187 } // namespace chromeos 157 } // namespace chromeos
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/chromeos/login/login_utils.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698