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

Side by Side Diff: chrome/browser/chromeos/login/signin/device_id_browsertest.cc

Issue 2571473002: Fix cases where RunLoop is created without a MessageLoop. (Closed)
Patch Set: Fix chromeos tests. Created 4 years 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "base/command_line.h" 5 #include "base/command_line.h"
6 #include "base/files/file_path.h" 6 #include "base/files/file_path.h"
7 #include "base/json/json_reader.h" 7 #include "base/json/json_reader.h"
8 #include "base/json/json_writer.h" 8 #include "base/json/json_writer.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 42
43 class DeviceIDTest : public OobeBaseTest, 43 class DeviceIDTest : public OobeBaseTest,
44 public user_manager::RemoveUserDelegate { 44 public user_manager::RemoveUserDelegate {
45 public: 45 public:
46 void SetUpCommandLine(base::CommandLine* command_line) override { 46 void SetUpCommandLine(base::CommandLine* command_line) override {
47 OobeBaseTest::SetUpCommandLine(command_line); 47 OobeBaseTest::SetUpCommandLine(command_line);
48 command_line->AppendSwitch(switches::kOobeSkipPostLogin); 48 command_line->AppendSwitch(switches::kOobeSkipPostLogin);
49 } 49 }
50 50
51 void SetUpOnMainThread() override { 51 void SetUpOnMainThread() override {
52 user_removal_loop_.reset(new base::RunLoop);
52 OobeBaseTest::SetUpOnMainThread(); 53 OobeBaseTest::SetUpOnMainThread();
53 LoadRefreshTokenToDeviceIdMap(); 54 LoadRefreshTokenToDeviceIdMap();
54 } 55 }
55 56
56 void TearDownOnMainThread() override { 57 void TearDownOnMainThread() override {
57 SaveRefreshTokenToDeviceIdMap(); 58 SaveRefreshTokenToDeviceIdMap();
58 OobeBaseTest::TearDownOnMainThread(); 59 OobeBaseTest::TearDownOnMainThread();
59 } 60 }
60 61
61 std::string GetDeviceId(const AccountId& account_id) { 62 std::string GetDeviceId(const AccountId& account_id) {
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 WaitForSigninScreen(); 119 WaitForSigninScreen();
119 120
120 JS().ExecuteAsync(base::StringPrintf( 121 JS().ExecuteAsync(base::StringPrintf(
121 "chrome.send('authenticateUser', ['%s', '%s', false])", user_id.c_str(), 122 "chrome.send('authenticateUser', ['%s', '%s', false])", user_id.c_str(),
122 password.c_str())); 123 password.c_str()));
123 WaitForSessionStart(); 124 WaitForSessionStart();
124 } 125 }
125 126
126 void RemoveUser(const AccountId& account_id) { 127 void RemoveUser(const AccountId& account_id) {
127 user_manager::UserManager::Get()->RemoveUser(account_id, this); 128 user_manager::UserManager::Get()->RemoveUser(account_id, this);
128 user_removal_loop_.Run(); 129 user_removal_loop_->Run();
129 } 130 }
130 131
131 private: 132 private:
132 // user_manager::RemoveUserDelegate: 133 // user_manager::RemoveUserDelegate:
133 void OnBeforeUserRemoved(const AccountId& account_id) override {} 134 void OnBeforeUserRemoved(const AccountId& account_id) override {}
134 135
135 void OnUserRemoved(const AccountId& account_id) override { 136 void OnUserRemoved(const AccountId& account_id) override {
136 user_removal_loop_.Quit(); 137 user_removal_loop_->Quit();
137 } 138 }
138 139
139 base::FilePath GetRefreshTokenToDeviceIdMapFilePath() const { 140 base::FilePath GetRefreshTokenToDeviceIdMapFilePath() const {
140 return base::CommandLine::ForCurrentProcess() 141 return base::CommandLine::ForCurrentProcess()
141 ->GetSwitchValuePath(::switches::kUserDataDir) 142 ->GetSwitchValuePath(::switches::kUserDataDir)
142 .Append(kRefreshTokenToDeviceIdMapFile); 143 .Append(kRefreshTokenToDeviceIdMapFile);
143 } 144 }
144 145
145 void LoadRefreshTokenToDeviceIdMap() { 146 void LoadRefreshTokenToDeviceIdMap() {
146 std::string file_contents; 147 std::string file_contents;
(...skipping 16 matching lines...) Expand all
163 void SaveRefreshTokenToDeviceIdMap() { 164 void SaveRefreshTokenToDeviceIdMap() {
164 base::DictionaryValue dictionary; 165 base::DictionaryValue dictionary;
165 for (const auto& kv : fake_gaia_->refresh_token_to_device_id_map()) 166 for (const auto& kv : fake_gaia_->refresh_token_to_device_id_map())
166 dictionary.SetStringWithoutPathExpansion(kv.first, kv.second); 167 dictionary.SetStringWithoutPathExpansion(kv.first, kv.second);
167 std::string json; 168 std::string json;
168 EXPECT_TRUE(base::JSONWriter::Write(dictionary, &json)); 169 EXPECT_TRUE(base::JSONWriter::Write(dictionary, &json));
169 EXPECT_TRUE(base::WriteFile(GetRefreshTokenToDeviceIdMapFilePath(), 170 EXPECT_TRUE(base::WriteFile(GetRefreshTokenToDeviceIdMapFilePath(),
170 json.c_str(), json.length())); 171 json.c_str(), json.length()));
171 } 172 }
172 173
173 base::RunLoop user_removal_loop_; 174 std::unique_ptr<base::RunLoop> user_removal_loop_;
174 }; 175 };
175 176
176 // Add the first user and check that device ID is consistent. 177 // Add the first user and check that device ID is consistent.
177 IN_PROC_BROWSER_TEST_F(DeviceIDTest, PRE_PRE_PRE_PRE_PRE_NewUsers) { 178 IN_PROC_BROWSER_TEST_F(DeviceIDTest, PRE_PRE_PRE_PRE_PRE_NewUsers) {
178 SignInOnline(kFakeUserEmail, kFakeUserPassword, kRefreshToken1, 179 SignInOnline(kFakeUserEmail, kFakeUserPassword, kRefreshToken1,
179 kFakeUserGaiaId); 180 kFakeUserGaiaId);
180 CheckDeviceIDIsConsistent(AccountId::FromUserEmail(kFakeUserEmail), 181 CheckDeviceIDIsConsistent(AccountId::FromUserEmail(kFakeUserEmail),
181 kRefreshToken1); 182 kRefreshToken1);
182 } 183 }
183 184
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 IN_PROC_BROWSER_TEST_F(DeviceIDTest, LegacyUsers) { 290 IN_PROC_BROWSER_TEST_F(DeviceIDTest, LegacyUsers) {
290 EXPECT_TRUE(GetDeviceId(AccountId::FromUserEmail(kFakeUserEmail)).empty()); 291 EXPECT_TRUE(GetDeviceId(AccountId::FromUserEmail(kFakeUserEmail)).empty());
291 SignInOffline(kFakeUserEmail, kFakeUserPassword); 292 SignInOffline(kFakeUserEmail, kFakeUserPassword);
292 // Last param |auth_code| is empty, because we don't pass a device ID to GAIA 293 // Last param |auth_code| is empty, because we don't pass a device ID to GAIA
293 // in this case. 294 // in this case.
294 CheckDeviceIDIsConsistent(AccountId::FromUserEmail(kFakeUserEmail), 295 CheckDeviceIDIsConsistent(AccountId::FromUserEmail(kFakeUserEmail),
295 std::string()); 296 std::string());
296 } 297 }
297 298
298 } // namespace chromeos 299 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698