| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/browser/sync/test/integration/sync_test.h" | 5 #include "chrome/browser/sync/test/integration/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/bind.h" | 10 #include "base/bind.h" |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 case MULTIPLE_CLIENT: { | 130 case MULTIPLE_CLIENT: { |
| 131 num_clients_ = 3; | 131 num_clients_ = 3; |
| 132 break; | 132 break; |
| 133 } | 133 } |
| 134 } | 134 } |
| 135 } | 135 } |
| 136 | 136 |
| 137 SyncTest::~SyncTest() {} | 137 SyncTest::~SyncTest() {} |
| 138 | 138 |
| 139 void SyncTest::SetUp() { | 139 void SyncTest::SetUp() { |
| 140 CommandLine* cl = CommandLine::ForCurrentProcess(); | 140 base::CommandLine* cl = base::CommandLine::ForCurrentProcess(); |
| 141 if (cl->HasSwitch(switches::kPasswordFileForTest)) { | 141 if (cl->HasSwitch(switches::kPasswordFileForTest)) { |
| 142 ReadPasswordFile(); | 142 ReadPasswordFile(); |
| 143 } else if (cl->HasSwitch(switches::kSyncUserForTest) && | 143 } else if (cl->HasSwitch(switches::kSyncUserForTest) && |
| 144 cl->HasSwitch(switches::kSyncPasswordForTest)) { | 144 cl->HasSwitch(switches::kSyncPasswordForTest)) { |
| 145 username_ = cl->GetSwitchValueASCII(switches::kSyncUserForTest); | 145 username_ = cl->GetSwitchValueASCII(switches::kSyncUserForTest); |
| 146 password_ = cl->GetSwitchValueASCII(switches::kSyncPasswordForTest); | 146 password_ = cl->GetSwitchValueASCII(switches::kSyncPasswordForTest); |
| 147 } else { | 147 } else { |
| 148 username_ = "user@gmail.com"; | 148 username_ = "user@gmail.com"; |
| 149 password_ = "password"; | 149 password_ = "password"; |
| 150 } | 150 } |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 // Allow the InProcessBrowserTest framework to perform its tear down. | 203 // Allow the InProcessBrowserTest framework to perform its tear down. |
| 204 InProcessBrowserTest::TearDown(); | 204 InProcessBrowserTest::TearDown(); |
| 205 | 205 |
| 206 // Stop the local python test server. This is a no-op if one wasn't started. | 206 // Stop the local python test server. This is a no-op if one wasn't started. |
| 207 TearDownLocalPythonTestServer(); | 207 TearDownLocalPythonTestServer(); |
| 208 | 208 |
| 209 // Stop the local sync test server. This is a no-op if one wasn't started. | 209 // Stop the local sync test server. This is a no-op if one wasn't started. |
| 210 TearDownLocalTestServer(); | 210 TearDownLocalTestServer(); |
| 211 } | 211 } |
| 212 | 212 |
| 213 void SyncTest::SetUpCommandLine(CommandLine* cl) { | 213 void SyncTest::SetUpCommandLine(base::CommandLine* cl) { |
| 214 AddTestSwitches(cl); | 214 AddTestSwitches(cl); |
| 215 AddOptionalTypesToCommandLine(cl); | 215 AddOptionalTypesToCommandLine(cl); |
| 216 } | 216 } |
| 217 | 217 |
| 218 void SyncTest::AddTestSwitches(CommandLine* cl) { | 218 void SyncTest::AddTestSwitches(base::CommandLine* cl) { |
| 219 // Disable non-essential access of external network resources. | 219 // Disable non-essential access of external network resources. |
| 220 if (!cl->HasSwitch(switches::kDisableBackgroundNetworking)) | 220 if (!cl->HasSwitch(switches::kDisableBackgroundNetworking)) |
| 221 cl->AppendSwitch(switches::kDisableBackgroundNetworking); | 221 cl->AppendSwitch(switches::kDisableBackgroundNetworking); |
| 222 | 222 |
| 223 if (!cl->HasSwitch(switches::kSyncShortInitialRetryOverride)) | 223 if (!cl->HasSwitch(switches::kSyncShortInitialRetryOverride)) |
| 224 cl->AppendSwitch(switches::kSyncShortInitialRetryOverride); | 224 cl->AppendSwitch(switches::kSyncShortInitialRetryOverride); |
| 225 | 225 |
| 226 // TODO(sync): Fix enable_disable_test.cc to play nice with priority | 226 // TODO(sync): Fix enable_disable_test.cc to play nice with priority |
| 227 // preferences. | 227 // preferences. |
| 228 if (!cl->HasSwitch(switches::kDisableSyncPriorityPreferences)) | 228 if (!cl->HasSwitch(switches::kDisableSyncPriorityPreferences)) |
| 229 cl->AppendSwitch(switches::kDisableSyncPriorityPreferences); | 229 cl->AppendSwitch(switches::kDisableSyncPriorityPreferences); |
| 230 } | 230 } |
| 231 | 231 |
| 232 void SyncTest::AddOptionalTypesToCommandLine(CommandLine* cl) {} | 232 void SyncTest::AddOptionalTypesToCommandLine(base::CommandLine* cl) {} |
| 233 | 233 |
| 234 // static | 234 // static |
| 235 Profile* SyncTest::MakeProfile(const base::FilePath::StringType name) { | 235 Profile* SyncTest::MakeProfile(const base::FilePath::StringType name) { |
| 236 base::FilePath path; | 236 base::FilePath path; |
| 237 PathService::Get(chrome::DIR_USER_DATA, &path); | 237 PathService::Get(chrome::DIR_USER_DATA, &path); |
| 238 path = path.Append(name); | 238 path = path.Append(name); |
| 239 | 239 |
| 240 if (!base::PathExists(path)) | 240 if (!base::PathExists(path)) |
| 241 CHECK(base::CreateDirectory(path)); | 241 CHECK(base::CreateDirectory(path)); |
| 242 | 242 |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 407 resolver->AllowDirectLookup("*.gstatic.com"); | 407 resolver->AllowDirectLookup("*.gstatic.com"); |
| 408 mock_host_resolver_override_.reset( | 408 mock_host_resolver_override_.reset( |
| 409 new net::ScopedDefaultHostResolverProc(resolver)); | 409 new net::ScopedDefaultHostResolverProc(resolver)); |
| 410 } | 410 } |
| 411 | 411 |
| 412 void SyncTest::TearDownInProcessBrowserTestFixture() { | 412 void SyncTest::TearDownInProcessBrowserTestFixture() { |
| 413 mock_host_resolver_override_.reset(); | 413 mock_host_resolver_override_.reset(); |
| 414 } | 414 } |
| 415 | 415 |
| 416 void SyncTest::ReadPasswordFile() { | 416 void SyncTest::ReadPasswordFile() { |
| 417 CommandLine* cl = CommandLine::ForCurrentProcess(); | 417 base::CommandLine* cl = base::CommandLine::ForCurrentProcess(); |
| 418 password_file_ = cl->GetSwitchValuePath(switches::kPasswordFileForTest); | 418 password_file_ = cl->GetSwitchValuePath(switches::kPasswordFileForTest); |
| 419 if (password_file_.empty()) | 419 if (password_file_.empty()) |
| 420 LOG(FATAL) << "Can't run live server test without specifying --" | 420 LOG(FATAL) << "Can't run live server test without specifying --" |
| 421 << switches::kPasswordFileForTest << "=<filename>"; | 421 << switches::kPasswordFileForTest << "=<filename>"; |
| 422 std::string file_contents; | 422 std::string file_contents; |
| 423 base::ReadFileToString(password_file_, &file_contents); | 423 base::ReadFileToString(password_file_, &file_contents); |
| 424 ASSERT_NE(file_contents, "") << "Password file \"" | 424 ASSERT_NE(file_contents, "") << "Password file \"" |
| 425 << password_file_.value() << "\" does not exist."; | 425 << password_file_.value() << "\" does not exist."; |
| 426 std::vector<std::string> tokens; | 426 std::vector<std::string> tokens; |
| 427 std::string delimiters = "\r\n"; | 427 std::string delimiters = "\r\n"; |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 528 // Nothing to do; we'll just talk to the URL we were given. | 528 // Nothing to do; we'll just talk to the URL we were given. |
| 529 } else { | 529 } else { |
| 530 LOG(FATAL) << "Don't know which server environment to run test in."; | 530 LOG(FATAL) << "Don't know which server environment to run test in."; |
| 531 } | 531 } |
| 532 } | 532 } |
| 533 | 533 |
| 534 bool SyncTest::SetUpLocalPythonTestServer() { | 534 bool SyncTest::SetUpLocalPythonTestServer() { |
| 535 EXPECT_TRUE(sync_server_.Start()) | 535 EXPECT_TRUE(sync_server_.Start()) |
| 536 << "Could not launch local python test server."; | 536 << "Could not launch local python test server."; |
| 537 | 537 |
| 538 CommandLine* cl = CommandLine::ForCurrentProcess(); | 538 base::CommandLine* cl = base::CommandLine::ForCurrentProcess(); |
| 539 if (server_type_ == LOCAL_PYTHON_SERVER) { | 539 if (server_type_ == LOCAL_PYTHON_SERVER) { |
| 540 std::string sync_service_url = sync_server_.GetURL("chromiumsync").spec(); | 540 std::string sync_service_url = sync_server_.GetURL("chromiumsync").spec(); |
| 541 cl->AppendSwitchASCII(switches::kSyncServiceURL, sync_service_url); | 541 cl->AppendSwitchASCII(switches::kSyncServiceURL, sync_service_url); |
| 542 DVLOG(1) << "Started local python sync server at " << sync_service_url; | 542 DVLOG(1) << "Started local python sync server at " << sync_service_url; |
| 543 } | 543 } |
| 544 | 544 |
| 545 int xmpp_port = 0; | 545 int xmpp_port = 0; |
| 546 if (!sync_server_.server_data().GetInteger("xmpp_port", &xmpp_port)) { | 546 if (!sync_server_.server_data().GetInteger("xmpp_port", &xmpp_port)) { |
| 547 LOG(ERROR) << "Could not find valid xmpp_port value"; | 547 LOG(ERROR) << "Could not find valid xmpp_port value"; |
| 548 return false; | 548 return false; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 562 // The local XMPP server only supports insecure connections. | 562 // The local XMPP server only supports insecure connections. |
| 563 cl->AppendSwitch(switches::kSyncAllowInsecureXmppConnection); | 563 cl->AppendSwitch(switches::kSyncAllowInsecureXmppConnection); |
| 564 } | 564 } |
| 565 DVLOG(1) << "Started local python XMPP server at " | 565 DVLOG(1) << "Started local python XMPP server at " |
| 566 << xmpp_host_port_pair.ToString(); | 566 << xmpp_host_port_pair.ToString(); |
| 567 | 567 |
| 568 return true; | 568 return true; |
| 569 } | 569 } |
| 570 | 570 |
| 571 bool SyncTest::SetUpLocalTestServer() { | 571 bool SyncTest::SetUpLocalTestServer() { |
| 572 CommandLine* cl = CommandLine::ForCurrentProcess(); | 572 base::CommandLine* cl = base::CommandLine::ForCurrentProcess(); |
| 573 CommandLine::StringType server_cmdline_string = cl->GetSwitchValueNative( | 573 base::CommandLine::StringType server_cmdline_string = |
| 574 switches::kSyncServerCommandLine); | 574 cl->GetSwitchValueNative(switches::kSyncServerCommandLine); |
| 575 CommandLine::StringVector server_cmdline_vector; | 575 base::CommandLine::StringVector server_cmdline_vector; |
| 576 CommandLine::StringType delimiters(FILE_PATH_LITERAL(" ")); | 576 base::CommandLine::StringType delimiters(FILE_PATH_LITERAL(" ")); |
| 577 Tokenize(server_cmdline_string, delimiters, &server_cmdline_vector); | 577 Tokenize(server_cmdline_string, delimiters, &server_cmdline_vector); |
| 578 CommandLine server_cmdline(server_cmdline_vector); | 578 base::CommandLine server_cmdline(server_cmdline_vector); |
| 579 base::LaunchOptions options; | 579 base::LaunchOptions options; |
| 580 #if defined(OS_WIN) | 580 #if defined(OS_WIN) |
| 581 options.start_hidden = true; | 581 options.start_hidden = true; |
| 582 #endif | 582 #endif |
| 583 if (!base::LaunchProcess(server_cmdline, options, &test_server_handle_)) | 583 if (!base::LaunchProcess(server_cmdline, options, &test_server_handle_)) |
| 584 LOG(ERROR) << "Could not launch local test server."; | 584 LOG(ERROR) << "Could not launch local test server."; |
| 585 | 585 |
| 586 const base::TimeDelta kMaxWaitTime = TestTimeouts::action_max_timeout(); | 586 const base::TimeDelta kMaxWaitTime = TestTimeouts::action_max_timeout(); |
| 587 const int kNumIntervals = 15; | 587 const int kNumIntervals = 15; |
| 588 if (WaitForTestServerToStart(kMaxWaitTime, kNumIntervals)) { | 588 if (WaitForTestServerToStart(kMaxWaitTime, kNumIntervals)) { |
| (...skipping 29 matching lines...) Expand all Loading... |
| 618 bool SyncTest::WaitForTestServerToStart(base::TimeDelta wait, int intervals) { | 618 bool SyncTest::WaitForTestServerToStart(base::TimeDelta wait, int intervals) { |
| 619 for (int i = 0; i < intervals; ++i) { | 619 for (int i = 0; i < intervals; ++i) { |
| 620 if (IsTestServerRunning()) | 620 if (IsTestServerRunning()) |
| 621 return true; | 621 return true; |
| 622 base::PlatformThread::Sleep(wait / intervals); | 622 base::PlatformThread::Sleep(wait / intervals); |
| 623 } | 623 } |
| 624 return false; | 624 return false; |
| 625 } | 625 } |
| 626 | 626 |
| 627 bool SyncTest::IsTestServerRunning() { | 627 bool SyncTest::IsTestServerRunning() { |
| 628 CommandLine* cl = CommandLine::ForCurrentProcess(); | 628 base::CommandLine* cl = base::CommandLine::ForCurrentProcess(); |
| 629 std::string sync_url = cl->GetSwitchValueASCII(switches::kSyncServiceURL); | 629 std::string sync_url = cl->GetSwitchValueASCII(switches::kSyncServiceURL); |
| 630 GURL sync_url_status(sync_url.append("/healthz")); | 630 GURL sync_url_status(sync_url.append("/healthz")); |
| 631 SyncServerStatusChecker delegate; | 631 SyncServerStatusChecker delegate; |
| 632 scoped_ptr<net::URLFetcher> fetcher(net::URLFetcher::Create( | 632 scoped_ptr<net::URLFetcher> fetcher(net::URLFetcher::Create( |
| 633 sync_url_status, net::URLFetcher::GET, &delegate)); | 633 sync_url_status, net::URLFetcher::GET, &delegate)); |
| 634 fetcher->SetLoadFlags(net::LOAD_DISABLE_CACHE | | 634 fetcher->SetLoadFlags(net::LOAD_DISABLE_CACHE | |
| 635 net::LOAD_DO_NOT_SEND_COOKIES | | 635 net::LOAD_DO_NOT_SEND_COOKIES | |
| 636 net::LOAD_DO_NOT_SAVE_COOKIES); | 636 net::LOAD_DO_NOT_SAVE_COOKIES); |
| 637 fetcher->SetRequestContext(g_browser_process->system_request_context()); | 637 fetcher->SetRequestContext(g_browser_process->system_request_context()); |
| 638 fetcher->Start(); | 638 fetcher->Start(); |
| (...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 878 BrowserThread::IO, FROM_HERE, | 878 BrowserThread::IO, FROM_HERE, |
| 879 base::Bind(&SetProxyConfigCallback, &done, | 879 base::Bind(&SetProxyConfigCallback, &done, |
| 880 make_scoped_refptr(context_getter), proxy_config)); | 880 make_scoped_refptr(context_getter), proxy_config)); |
| 881 done.Wait(); | 881 done.Wait(); |
| 882 } | 882 } |
| 883 | 883 |
| 884 void SyncTest::UseFakeServer() { | 884 void SyncTest::UseFakeServer() { |
| 885 DCHECK_EQ(SERVER_TYPE_UNDECIDED, server_type_); | 885 DCHECK_EQ(SERVER_TYPE_UNDECIDED, server_type_); |
| 886 server_type_ = IN_PROCESS_FAKE_SERVER; | 886 server_type_ = IN_PROCESS_FAKE_SERVER; |
| 887 } | 887 } |
| OLD | NEW |