OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/command_line.h" | 10 #include "base/command_line.h" |
10 #include "base/logging.h" | 11 #include "base/logging.h" |
11 #include "base/message_loop.h" | 12 #include "base/message_loop.h" |
12 #include "base/path_service.h" | 13 #include "base/path_service.h" |
13 #include "base/platform_thread.h" | 14 #include "base/platform_thread.h" |
14 #include "base/string_util.h" | 15 #include "base/string_util.h" |
15 #include "base/task.h" | 16 #include "base/task.h" |
16 #include "base/test/test_timeouts.h" | 17 #include "base/test/test_timeouts.h" |
| 18 #include "base/values.h" |
17 #include "base/waitable_event.h" | 19 #include "base/waitable_event.h" |
18 #include "chrome/browser/browser_thread.h" | 20 #include "chrome/browser/browser_thread.h" |
19 #include "chrome/browser/password_manager/encryptor.h" | 21 #include "chrome/browser/password_manager/encryptor.h" |
20 #include "chrome/browser/profile.h" | 22 #include "chrome/browser/profile.h" |
21 #include "chrome/browser/profile_manager.h" | 23 #include "chrome/browser/profile_manager.h" |
22 #include "chrome/common/chrome_paths.h" | 24 #include "chrome/common/chrome_paths.h" |
23 #include "chrome/common/chrome_switches.h" | 25 #include "chrome/common/chrome_switches.h" |
24 #include "chrome/common/net/url_fetcher.h" | 26 #include "chrome/common/net/url_fetcher.h" |
25 #include "chrome/common/net/url_request_context_getter.h" | 27 #include "chrome/common/net/url_request_context_getter.h" |
26 #include "chrome/test/testing_browser_process.h" | 28 #include "chrome/test/testing_browser_process.h" |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
132 password_ = cl->GetSwitchValueASCII(switches::kSyncPasswordForTest); | 134 password_ = cl->GetSwitchValueASCII(switches::kSyncPasswordForTest); |
133 } | 135 } |
134 if (username_.empty() || password_.empty()) | 136 if (username_.empty() || password_.empty()) |
135 LOG(FATAL) << "Cannot run sync tests without GAIA credentials."; | 137 LOG(FATAL) << "Cannot run sync tests without GAIA credentials."; |
136 | 138 |
137 // TODO(rsimha): Until we implement a fake Tango server against which tests | 139 // TODO(rsimha): Until we implement a fake Tango server against which tests |
138 // can run, we need to set the --sync-notification-method to "p2p". | 140 // can run, we need to set the --sync-notification-method to "p2p". |
139 if (!cl->HasSwitch(switches::kSyncNotificationMethod)) | 141 if (!cl->HasSwitch(switches::kSyncNotificationMethod)) |
140 cl->AppendSwitchASCII(switches::kSyncNotificationMethod, "p2p"); | 142 cl->AppendSwitchASCII(switches::kSyncNotificationMethod, "p2p"); |
141 | 143 |
142 // TODO(akalin): Delete this block of code once a local python notification | |
143 // server is implemented. | |
144 // The chrome sync builders are behind a firewall that blocks port 5222, the | |
145 // default port for XMPP notifications. This causes the tests to spend up to a | |
146 // minute waiting for a connection on port 5222 before they fail over to port | |
147 // 443, the default SSL/TCP port. This switch causes the tests to use port 443 | |
148 // by default, without having to try port 5222. | |
149 if (!cl->HasSwitch(switches::kSyncTrySsltcpFirstForXmpp)) { | |
150 cl->AppendSwitch(switches::kSyncTrySsltcpFirstForXmpp); | |
151 } | |
152 | |
153 // TODO(sync): Remove this once sessions sync is enabled by default. | 144 // TODO(sync): Remove this once sessions sync is enabled by default. |
154 if (!cl->HasSwitch(switches::kEnableSyncSessions)) { | 145 if (!cl->HasSwitch(switches::kEnableSyncSessions)) { |
155 cl->AppendSwitch(switches::kEnableSyncSessions); | 146 cl->AppendSwitch(switches::kEnableSyncSessions); |
156 } | 147 } |
157 | 148 |
158 // TODO(sync): Remove this once passwords sync is enabled by default. | 149 // TODO(sync): Remove this once passwords sync is enabled by default. |
159 if (!cl->HasSwitch(switches::kEnableSyncPasswords)) { | 150 if (!cl->HasSwitch(switches::kEnableSyncPasswords)) { |
160 cl->AppendSwitch(switches::kEnableSyncPasswords); | 151 cl->AppendSwitch(switches::kEnableSyncPasswords); |
161 } | 152 } |
162 | 153 |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
325 | 316 |
326 bool LiveSyncTest::SetUpLocalPythonTestServer() { | 317 bool LiveSyncTest::SetUpLocalPythonTestServer() { |
327 EXPECT_TRUE(sync_server_.Start()) | 318 EXPECT_TRUE(sync_server_.Start()) |
328 << "Could not launch local python test server."; | 319 << "Could not launch local python test server."; |
329 | 320 |
330 CommandLine* cl = CommandLine::ForCurrentProcess(); | 321 CommandLine* cl = CommandLine::ForCurrentProcess(); |
331 std::string sync_service_url = sync_server_.GetURL("chromiumsync").spec(); | 322 std::string sync_service_url = sync_server_.GetURL("chromiumsync").spec(); |
332 cl->AppendSwitchASCII(switches::kSyncServiceURL, sync_service_url); | 323 cl->AppendSwitchASCII(switches::kSyncServiceURL, sync_service_url); |
333 VLOG(1) << "Started local python test server at " << sync_service_url; | 324 VLOG(1) << "Started local python test server at " << sync_service_url; |
334 | 325 |
335 // TODO(akalin): Set the kSyncNotificationHost switch here once a local python | 326 int xmpp_port = 0; |
336 // notification server is implemented. | 327 if (!sync_server_.server_data().GetInteger("xmpp_port", &xmpp_port)) { |
| 328 LOG(ERROR) << "Could not find valid xmpp_port value"; |
| 329 return false; |
| 330 } |
| 331 if ((xmpp_port <= 0) || (xmpp_port > kuint16max)) { |
| 332 LOG(ERROR) << "Invalid xmpp port: " << xmpp_port; |
| 333 return false; |
| 334 } |
| 335 |
| 336 net::HostPortPair xmpp_host_port_pair(sync_server_.host_port_pair()); |
| 337 xmpp_host_port_pair.set_port(xmpp_port); |
| 338 |
| 339 if (!cl->HasSwitch(switches::kSyncNotificationHost)) { |
| 340 cl->AppendSwitchASCII(switches::kSyncNotificationHost, |
| 341 xmpp_host_port_pair.ToString()); |
| 342 // The local XMPP server only supports insecure connections. |
| 343 cl->AppendSwitch(switches::kSyncAllowInsecureXmppConnection); |
| 344 } |
337 | 345 |
338 return true; | 346 return true; |
339 } | 347 } |
340 | 348 |
341 bool LiveSyncTest::SetUpLocalTestServer() { | 349 bool LiveSyncTest::SetUpLocalTestServer() { |
342 CommandLine* cl = CommandLine::ForCurrentProcess(); | 350 CommandLine* cl = CommandLine::ForCurrentProcess(); |
343 CommandLine::StringType server_cmdline_string = cl->GetSwitchValueNative( | 351 CommandLine::StringType server_cmdline_string = cl->GetSwitchValueNative( |
344 switches::kSyncServerCommandLine); | 352 switches::kSyncServerCommandLine); |
345 #if defined(OS_WIN) | 353 #if defined(OS_WIN) |
346 CommandLine server_cmdline = CommandLine::FromString(server_cmdline_string); | 354 CommandLine server_cmdline = CommandLine::FromString(server_cmdline_string); |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
430 const net::ProxyConfig& proxy_config) { | 438 const net::ProxyConfig& proxy_config) { |
431 base::WaitableEvent done(false, false); | 439 base::WaitableEvent done(false, false); |
432 BrowserThread::PostTask( | 440 BrowserThread::PostTask( |
433 BrowserThread::IO, | 441 BrowserThread::IO, |
434 FROM_HERE, | 442 FROM_HERE, |
435 new SetProxyConfigTask(&done, | 443 new SetProxyConfigTask(&done, |
436 context_getter, | 444 context_getter, |
437 proxy_config)); | 445 proxy_config)); |
438 done.Wait(); | 446 done.Wait(); |
439 } | 447 } |
OLD | NEW |