summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-27 05:57:56 +0000
committerakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-27 05:57:56 +0000
commit47b3c39b87cb9969d30ea05a15d07f177570cde2 (patch)
tree82857f4243c318291902ef2d7ff5ea38ea47dcbc
parentc67895dc60ddd5b37c5a9a2a5510548f642ab11f (diff)
downloadchromium_src-47b3c39b87cb9969d30ea05a15d07f177570cde2.zip
chromium_src-47b3c39b87cb9969d30ea05a15d07f177570cde2.tar.gz
chromium_src-47b3c39b87cb9969d30ea05a15d07f177570cde2.tar.bz2
[Sync] Make sync integration tests use local xmpp servers.
Fixed signed/unsigned bug with the port number. BUG=53934 TEST=sync integration tests Review URL: http://codereview.chromium.org/5239001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67491 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/test/live_sync/live_sync_test.cc34
-rw-r--r--jingle/notifier/communicator/connection_settings.cc2
-rw-r--r--jingle/notifier/communicator/connection_settings.h3
-rw-r--r--net/test/test_server.cc9
-rw-r--r--net/test/test_server.h5
5 files changed, 36 insertions, 17 deletions
diff --git a/chrome/test/live_sync/live_sync_test.cc b/chrome/test/live_sync/live_sync_test.cc
index 7b4ac35..fa8bcf2 100644
--- a/chrome/test/live_sync/live_sync_test.cc
+++ b/chrome/test/live_sync/live_sync_test.cc
@@ -6,6 +6,7 @@
#include <vector>
+#include "base/basictypes.h"
#include "base/command_line.h"
#include "base/logging.h"
#include "base/message_loop.h"
@@ -14,6 +15,7 @@
#include "base/string_util.h"
#include "base/task.h"
#include "base/test/test_timeouts.h"
+#include "base/values.h"
#include "base/waitable_event.h"
#include "chrome/browser/browser_thread.h"
#include "chrome/browser/password_manager/encryptor.h"
@@ -139,17 +141,6 @@ void LiveSyncTest::SetUp() {
if (!cl->HasSwitch(switches::kSyncNotificationMethod))
cl->AppendSwitchASCII(switches::kSyncNotificationMethod, "p2p");
- // TODO(akalin): Delete this block of code once a local python notification
- // server is implemented.
- // The chrome sync builders are behind a firewall that blocks port 5222, the
- // default port for XMPP notifications. This causes the tests to spend up to a
- // minute waiting for a connection on port 5222 before they fail over to port
- // 443, the default SSL/TCP port. This switch causes the tests to use port 443
- // by default, without having to try port 5222.
- if (!cl->HasSwitch(switches::kSyncTrySsltcpFirstForXmpp)) {
- cl->AppendSwitch(switches::kSyncTrySsltcpFirstForXmpp);
- }
-
// TODO(sync): Remove this once sessions sync is enabled by default.
if (!cl->HasSwitch(switches::kEnableSyncSessions)) {
cl->AppendSwitch(switches::kEnableSyncSessions);
@@ -332,8 +323,25 @@ bool LiveSyncTest::SetUpLocalPythonTestServer() {
cl->AppendSwitchASCII(switches::kSyncServiceURL, sync_service_url);
VLOG(1) << "Started local python test server at " << sync_service_url;
- // TODO(akalin): Set the kSyncNotificationHost switch here once a local python
- // notification server is implemented.
+ int xmpp_port = 0;
+ if (!sync_server_.server_data().GetInteger("xmpp_port", &xmpp_port)) {
+ LOG(ERROR) << "Could not find valid xmpp_port value";
+ return false;
+ }
+ if ((xmpp_port <= 0) || (xmpp_port > kuint16max)) {
+ LOG(ERROR) << "Invalid xmpp port: " << xmpp_port;
+ return false;
+ }
+
+ net::HostPortPair xmpp_host_port_pair(sync_server_.host_port_pair());
+ xmpp_host_port_pair.set_port(xmpp_port);
+
+ if (!cl->HasSwitch(switches::kSyncNotificationHost)) {
+ cl->AppendSwitchASCII(switches::kSyncNotificationHost,
+ xmpp_host_port_pair.ToString());
+ // The local XMPP server only supports insecure connections.
+ cl->AppendSwitch(switches::kSyncAllowInsecureXmppConnection);
+ }
return true;
}
diff --git a/jingle/notifier/communicator/connection_settings.cc b/jingle/notifier/communicator/connection_settings.cc
index 1648c4e..ec374cc 100644
--- a/jingle/notifier/communicator/connection_settings.cc
+++ b/jingle/notifier/communicator/connection_settings.cc
@@ -40,7 +40,7 @@ ConnectionSettingsList::~ConnectionSettingsList() {}
void ConnectionSettingsList::AddPermutations(const std::string& hostname,
const std::vector<uint32>& iplist,
- int16 port,
+ uint16 port,
bool special_port_magic,
bool try_ssltcp_first) {
// randomize the list. This ensures the iplist isn't always
diff --git a/jingle/notifier/communicator/connection_settings.h b/jingle/notifier/communicator/connection_settings.h
index b26f559..91c95af 100644
--- a/jingle/notifier/communicator/connection_settings.h
+++ b/jingle/notifier/communicator/connection_settings.h
@@ -9,6 +9,7 @@
#include <string>
#include <vector>
+#include "base/basictypes.h"
#include "talk/xmpp/xmppclientsettings.h"
namespace notifier {
@@ -47,7 +48,7 @@ class ConnectionSettingsList {
void AddPermutations(const std::string& hostname,
const std::vector<uint32>& iplist,
- int16 port,
+ uint16 port,
bool special_port_magic,
bool try_ssltcp_first);
private:
diff --git a/net/test/test_server.cc b/net/test/test_server.cc
index 91ef115..0eaf8b5 100644
--- a/net/test/test_server.cc
+++ b/net/test/test_server.cc
@@ -189,6 +189,11 @@ const HostPortPair& TestServer::host_port_pair() const {
return host_port_pair_;
}
+const DictionaryValue& TestServer::server_data() const {
+ DCHECK(started_);
+ return *server_data_;
+}
+
std::string TestServer::GetScheme() const {
switch (type_) {
case TYPE_FTP:
@@ -391,9 +396,9 @@ bool TestServer::ParseServerData(const std::string& server_data) {
<< json_reader.GetErrorMessage();
return false;
}
- DictionaryValue* dict = static_cast<DictionaryValue*>(value.get());
+ server_data_.reset(static_cast<DictionaryValue*>(value.release()));
int port = 0;
- if (!dict->GetInteger("port", &port)) {
+ if (!server_data_->GetInteger("port", &port)) {
LOG(ERROR) << "Could not find port value";
return false;
}
diff --git a/net/test/test_server.h b/net/test/test_server.h
index 5c11038..00a8fc9 100644
--- a/net/test/test_server.h
+++ b/net/test/test_server.h
@@ -28,6 +28,7 @@
#endif
class CommandLine;
+class DictionaryValue;
class GURL;
namespace net {
@@ -116,6 +117,7 @@ class TestServer {
const FilePath& document_root() const { return document_root_; }
const HostPortPair& host_port_pair() const;
+ const DictionaryValue& server_data() const;
std::string GetScheme() const;
bool GetAddressList(AddressList* address_list) const WARN_UNUSED_RESULT;
@@ -172,6 +174,9 @@ class TestServer {
// Address the test server listens on.
HostPortPair host_port_pair_;
+ // Holds the data sent from the server (e.g., port number).
+ scoped_ptr<DictionaryValue> server_data_;
+
// Handle of the Python process running the test server.
base::ProcessHandle process_handle_;