diff options
Diffstat (limited to 'net/test/test_server.cc')
-rw-r--r-- | net/test/test_server.cc | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/net/test/test_server.cc b/net/test/test_server.cc index 0e8c461..1fd20c9 100644 --- a/net/test/test_server.cc +++ b/net/test/test_server.cc @@ -17,11 +17,14 @@ #include "base/base64.h" #include "base/command_line.h" #include "base/debug/leak_annotations.h" +#include "base/json/json_reader.h" #include "base/file_util.h" #include "base/logging.h" #include "base/path_service.h" +#include "base/scoped_ptr.h" #include "base/string_number_conversions.h" #include "base/utf_string_conversions.h" +#include "base/values.h" #include "googleurl/src/gurl.h" #include "net/base/cert_test_util.h" #include "net/base/host_port_pair.h" @@ -278,6 +281,11 @@ bool TestServer::SetPythonPath() { } third_party_dir = third_party_dir.Append(FILE_PATH_LITERAL("third_party")); + // For simplejson. (simplejson, unlike all the other python modules + // we include, doesn't have an extra 'simplejson' directory, so we + // need to include its parent directory, i.e. third_party_dir). + AppendToPythonPath(third_party_dir); + AppendToPythonPath(third_party_dir.Append(FILE_PATH_LITERAL("tlslite"))); AppendToPythonPath(third_party_dir.Append(FILE_PATH_LITERAL("pyftpdlib"))); @@ -373,4 +381,28 @@ bool TestServer::AddCommandLineArguments(CommandLine* command_line) const { return true; } +bool TestServer::ParseServerData(const std::string& server_data) { + VLOG(1) << "Server data: " << server_data; + base::JSONReader json_reader; + scoped_ptr<Value> value(json_reader.JsonToValue(server_data, true, false)); + if (!value.get() || + !value->IsType(Value::TYPE_DICTIONARY)) { + LOG(ERROR) << "Could not parse server data: " + << json_reader.GetErrorMessage(); + return false; + } + DictionaryValue* dict = static_cast<DictionaryValue*>(value.get()); + int port = 0; + if (!dict->GetInteger("port", &port)) { + LOG(ERROR) << "Could not find port value"; + return false; + } + if ((port <= 0) || (port >= kuint16max)) { + LOG(ERROR) << "Invalid port value: " << port; + return false; + } + host_port_pair_.set_port(port); + return true; +} + } // namespace net |