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

Side by Side Diff: chrome/test/live_sync/live_sync_test.cc

Issue 7621066: Fix sync test crashing when multiprofiles are enabled on Mac. Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « chrome/test/live_sync/live_sync_test.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/test/live_sync/live_sync_test.h" 5 #include "chrome/test/live_sync/live_sync_test.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 219
220 // static 220 // static
221 Profile* LiveSyncTest::MakeProfile(const FilePath::StringType name) { 221 Profile* LiveSyncTest::MakeProfile(const FilePath::StringType name) {
222 FilePath path; 222 FilePath path;
223 PathService::Get(chrome::DIR_USER_DATA, &path); 223 PathService::Get(chrome::DIR_USER_DATA, &path);
224 path = path.Append(name); 224 path = path.Append(name);
225 225
226 if (!file_util::PathExists(path)) 226 if (!file_util::PathExists(path))
227 CHECK(file_util::CreateDirectory(path)); 227 CHECK(file_util::CreateDirectory(path));
228 228
229 return Profile::CreateProfile(path); 229 Profile* profile = Profile::CreateProfile(path);
230 g_browser_process->profile_manager()->RegisterTestingProfile(profile, true);
231 return profile;
230 } 232 }
231 233
232 Profile* LiveSyncTest::GetProfile(int index) { 234 Profile* LiveSyncTest::GetProfile(int index) {
233 if (profiles_.empty()) 235 if (profiles_.empty())
234 LOG(FATAL) << "SetupSync() has not yet been called."; 236 LOG(FATAL) << "SetupSync() has not yet been called.";
235 if (index < 0 || index >= static_cast<int>(profiles_.size())) 237 if (index < 0 || index >= static_cast<int>(profiles_.size()))
236 LOG(FATAL) << "GetProfile(): Index is out of bounds."; 238 LOG(FATAL) << "GetProfile(): Index is out of bounds.";
237 return profiles_[index]; 239 return profiles_[index];
238 } 240 }
239 241
240 ProfileSyncServiceHarness* LiveSyncTest::GetClient(int index) { 242 ProfileSyncServiceHarness* LiveSyncTest::GetClient(int index) {
241 if (clients_.empty()) 243 if (clients_.empty())
242 LOG(FATAL) << "SetupClients() has not yet been called."; 244 LOG(FATAL) << "SetupClients() has not yet been called.";
243 if (index < 0 || index >= static_cast<int>(clients_.size())) 245 if (index < 0 || index >= static_cast<int>(clients_.size()))
244 LOG(FATAL) << "GetClient(): Index is out of bounds."; 246 LOG(FATAL) << "GetClient(): Index is out of bounds.";
245 return clients_[index]; 247 return clients_[index];
246 } 248 }
247 249
248 Profile* LiveSyncTest::verifier() { 250 Profile* LiveSyncTest::verifier() {
249 if (verifier_.get() == NULL) 251 if (verifier_ == NULL)
250 LOG(FATAL) << "SetupClients() has not yet been called."; 252 LOG(FATAL) << "SetupClients() has not yet been called.";
251 return verifier_.get(); 253 return verifier_;
252 } 254 }
253 255
254 void LiveSyncTest::DisableVerifier() { 256 void LiveSyncTest::DisableVerifier() {
255 use_verifier_ = false; 257 use_verifier_ = false;
256 } 258 }
257 259
258 bool LiveSyncTest::SetupClients() { 260 bool LiveSyncTest::SetupClients() {
259 if (num_clients_ <= 0) 261 if (num_clients_ <= 0)
260 LOG(FATAL) << "num_clients_ incorrectly initialized."; 262 LOG(FATAL) << "num_clients_ incorrectly initialized.";
261 if (!profiles_.empty() || !clients_.empty()) 263 if (!profiles_.empty() || !clients_.empty())
262 LOG(FATAL) << "SetupClients() has already been called."; 264 LOG(FATAL) << "SetupClients() has already been called.";
263 265
264 // Start up a sync test server if one is needed. 266 // Start up a sync test server if one is needed.
265 SetUpTestServerIfRequired(); 267 SetUpTestServerIfRequired();
266 268
267 // Create the required number of sync profiles and clients. 269 // Create the required number of sync profiles and clients.
268 for (int i = 0; i < num_clients_; ++i) { 270 for (int i = 0; i < num_clients_; ++i) {
269 profiles_.push_back(MakeProfile( 271 profiles_.push_back(MakeProfile(
270 base::StringPrintf(FILE_PATH_LITERAL("Profile%d"), i))); 272 base::StringPrintf(FILE_PATH_LITERAL("Profile%d"), i)));
271 EXPECT_FALSE(GetProfile(i) == NULL) << "GetProfile(" << i << ") failed."; 273 EXPECT_FALSE(GetProfile(i) == NULL) << "GetProfile(" << i << ") failed.";
272 clients_.push_back( 274 clients_.push_back(
273 new ProfileSyncServiceHarness(GetProfile(i), username_, password_)); 275 new ProfileSyncServiceHarness(GetProfile(i), username_, password_));
274 EXPECT_FALSE(GetClient(i) == NULL) << "GetClient(" << i << ") failed."; 276 EXPECT_FALSE(GetClient(i) == NULL) << "GetClient(" << i << ") failed.";
275 ui_test_utils::WaitForBookmarkModelToLoad( 277 ui_test_utils::WaitForBookmarkModelToLoad(
276 GetProfile(i)->GetBookmarkModel()); 278 GetProfile(i)->GetBookmarkModel());
277 } 279 }
278 280
279 // Create the verifier profile. 281 // Create the verifier profile.
280 verifier_.reset(MakeProfile(FILE_PATH_LITERAL("Verifier"))); 282 verifier_ = MakeProfile(FILE_PATH_LITERAL("Verifier"));
281 ui_test_utils::WaitForBookmarkModelToLoad(verifier()->GetBookmarkModel()); 283 ui_test_utils::WaitForBookmarkModelToLoad(verifier()->GetBookmarkModel());
282 return (verifier_.get() != NULL); 284 return (verifier_ != NULL);
283 } 285 }
284 286
285 bool LiveSyncTest::SetupSync() { 287 bool LiveSyncTest::SetupSync() {
286 // Create sync profiles and clients if they haven't already been created. 288 // Create sync profiles and clients if they haven't already been created.
287 if (profiles_.empty()) { 289 if (profiles_.empty()) {
288 if (!SetupClients()) 290 if (!SetupClients())
289 LOG(FATAL) << "SetupClients() failed."; 291 LOG(FATAL) << "SetupClients() failed.";
290 } 292 }
291 293
292 // Sync each of the profiles. 294 // Sync each of the profiles.
293 for (int i = 0; i < num_clients_; ++i) { 295 for (int i = 0; i < num_clients_; ++i) {
294 if (!GetClient(i)->SetupSync()) 296 if (!GetClient(i)->SetupSync())
295 LOG(FATAL) << "SetupSync() failed."; 297 LOG(FATAL) << "SetupSync() failed.";
296 } 298 }
297 299
298 return true; 300 return true;
299 } 301 }
300 302
301 void LiveSyncTest::CleanUpOnMainThread() { 303 void LiveSyncTest::CleanUpOnMainThread() {
302 profiles_.reset();
303 clients_.reset(); 304 clients_.reset();
304 verifier_.reset(NULL);
305 } 305 }
306 306
307 void LiveSyncTest::SetUpInProcessBrowserTestFixture() { 307 void LiveSyncTest::SetUpInProcessBrowserTestFixture() {
308 // We don't take a reference to |resolver|, but mock_host_resolver_override_ 308 // We don't take a reference to |resolver|, but mock_host_resolver_override_
309 // does, so effectively assumes ownership. 309 // does, so effectively assumes ownership.
310 net::RuleBasedHostResolverProc* resolver = 310 net::RuleBasedHostResolverProc* resolver =
311 new net::RuleBasedHostResolverProc(host_resolver()); 311 new net::RuleBasedHostResolverProc(host_resolver());
312 resolver->AllowDirectLookup("*.google.com"); 312 resolver->AllowDirectLookup("*.google.com");
313 // On Linux, we use Chromium's NSS implementation which uses the following 313 // On Linux, we use Chromium's NSS implementation which uses the following
314 // hosts for certificate verification. Without these overrides, running the 314 // hosts for certificate verification. Without these overrides, running the
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 const net::ProxyConfig& proxy_config) { 536 const net::ProxyConfig& proxy_config) {
537 base::WaitableEvent done(false, false); 537 base::WaitableEvent done(false, false);
538 BrowserThread::PostTask( 538 BrowserThread::PostTask(
539 BrowserThread::IO, 539 BrowserThread::IO,
540 FROM_HERE, 540 FROM_HERE,
541 new SetProxyConfigTask(&done, 541 new SetProxyConfigTask(&done,
542 context_getter, 542 context_getter,
543 proxy_config)); 543 proxy_config));
544 done.Wait(); 544 done.Wait();
545 } 545 }
OLDNEW
« no previous file with comments | « chrome/test/live_sync/live_sync_test.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698