| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "net/test/spawned_test_server/local_test_server.h" | 5 #include "net/test/spawned_test_server/local_test_server.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/json/json_reader.h" | 8 #include "base/json/json_reader.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
| 11 #include "base/strings/string_number_conversions.h" | 11 #include "base/strings/string_number_conversions.h" |
| 12 #include "base/threading/thread_restrictions.h" | 12 #include "base/threading/thread_restrictions.h" |
| 13 #include "base/values.h" | 13 #include "base/values.h" |
| 14 #include "net/base/host_port_pair.h" | 14 #include "net/base/host_port_pair.h" |
| 15 #include "net/base/net_errors.h" | 15 #include "net/base/net_errors.h" |
| 16 #include "net/test/python_utils.h" | 16 #include "net/test/python_utils.h" |
| 17 #include "url/gurl.h" | 17 #include "url/gurl.h" |
| 18 | 18 |
| 19 namespace net { | 19 namespace net { |
| 20 | 20 |
| 21 namespace { | 21 namespace { |
| 22 | 22 |
| 23 bool AppendArgumentFromJSONValue(const std::string& key, | 23 bool AppendArgumentFromJSONValue(const std::string& key, |
| 24 const base::Value& value_node, | 24 const base::Value& value_node, |
| 25 base::CommandLine* command_line) { | 25 base::CommandLine* command_line) { |
| 26 std::string argument_name = "--" + key; | 26 std::string argument_name = "--" + key; |
| 27 switch (value_node.GetType()) { | 27 switch (value_node.GetType()) { |
| 28 case base::Value::TYPE_NULL: | 28 case base::Value::Type::NONE: |
| 29 command_line->AppendArg(argument_name); | 29 command_line->AppendArg(argument_name); |
| 30 break; | 30 break; |
| 31 case base::Value::TYPE_INTEGER: { | 31 case base::Value::Type::INTEGER: { |
| 32 int value; | 32 int value; |
| 33 bool result = value_node.GetAsInteger(&value); | 33 bool result = value_node.GetAsInteger(&value); |
| 34 DCHECK(result); | 34 DCHECK(result); |
| 35 command_line->AppendArg(argument_name + "=" + base::IntToString(value)); | 35 command_line->AppendArg(argument_name + "=" + base::IntToString(value)); |
| 36 break; | 36 break; |
| 37 } | 37 } |
| 38 case base::Value::TYPE_STRING: { | 38 case base::Value::Type::STRING: { |
| 39 std::string value; | 39 std::string value; |
| 40 bool result = value_node.GetAsString(&value); | 40 bool result = value_node.GetAsString(&value); |
| 41 if (!result || value.empty()) | 41 if (!result || value.empty()) |
| 42 return false; | 42 return false; |
| 43 command_line->AppendArg(argument_name + "=" + value); | 43 command_line->AppendArg(argument_name + "=" + value); |
| 44 break; | 44 break; |
| 45 } | 45 } |
| 46 case base::Value::TYPE_BOOLEAN: | 46 case base::Value::Type::BOOLEAN: |
| 47 case base::Value::TYPE_DOUBLE: | 47 case base::Value::Type::DOUBLE: |
| 48 case base::Value::TYPE_LIST: | 48 case base::Value::Type::LIST: |
| 49 case base::Value::TYPE_DICTIONARY: | 49 case base::Value::Type::DICTIONARY: |
| 50 case base::Value::TYPE_BINARY: | 50 case base::Value::Type::BINARY: |
| 51 default: | 51 default: |
| 52 NOTREACHED() << "improper json type"; | 52 NOTREACHED() << "improper json type"; |
| 53 return false; | 53 return false; |
| 54 } | 54 } |
| 55 return true; | 55 return true; |
| 56 } | 56 } |
| 57 | 57 |
| 58 } // namespace | 58 } // namespace |
| 59 | 59 |
| 60 LocalTestServer::LocalTestServer(Type type, | 60 LocalTestServer::LocalTestServer(Type type, |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 200 if (!GenerateArguments(&arguments_dict)) | 200 if (!GenerateArguments(&arguments_dict)) |
| 201 return false; | 201 return false; |
| 202 | 202 |
| 203 // Serialize the argument dictionary into CommandLine. | 203 // Serialize the argument dictionary into CommandLine. |
| 204 for (base::DictionaryValue::Iterator it(arguments_dict); !it.IsAtEnd(); | 204 for (base::DictionaryValue::Iterator it(arguments_dict); !it.IsAtEnd(); |
| 205 it.Advance()) { | 205 it.Advance()) { |
| 206 const base::Value& value = it.value(); | 206 const base::Value& value = it.value(); |
| 207 const std::string& key = it.key(); | 207 const std::string& key = it.key(); |
| 208 | 208 |
| 209 // Add arguments from a list. | 209 // Add arguments from a list. |
| 210 if (value.IsType(base::Value::TYPE_LIST)) { | 210 if (value.IsType(base::Value::Type::LIST)) { |
| 211 const base::ListValue* list = NULL; | 211 const base::ListValue* list = NULL; |
| 212 if (!value.GetAsList(&list) || !list || list->empty()) | 212 if (!value.GetAsList(&list) || !list || list->empty()) |
| 213 return false; | 213 return false; |
| 214 for (base::ListValue::const_iterator list_it = list->begin(); | 214 for (base::ListValue::const_iterator list_it = list->begin(); |
| 215 list_it != list->end(); ++list_it) { | 215 list_it != list->end(); ++list_it) { |
| 216 if (!AppendArgumentFromJSONValue(key, *(*list_it), command_line)) | 216 if (!AppendArgumentFromJSONValue(key, *(*list_it), command_line)) |
| 217 return false; | 217 return false; |
| 218 } | 218 } |
| 219 } else if (!AppendArgumentFromJSONValue(key, value, command_line)) { | 219 } else if (!AppendArgumentFromJSONValue(key, value, command_line)) { |
| 220 return false; | 220 return false; |
| (...skipping 25 matching lines...) Expand all Loading... |
| 246 break; | 246 break; |
| 247 default: | 247 default: |
| 248 NOTREACHED(); | 248 NOTREACHED(); |
| 249 return false; | 249 return false; |
| 250 } | 250 } |
| 251 | 251 |
| 252 return true; | 252 return true; |
| 253 } | 253 } |
| 254 | 254 |
| 255 } // namespace net | 255 } // namespace net |
| OLD | NEW |