| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chrome/browser/safe_browsing/local_safebrowsing_test_server.h" |
| |
| #include "base/command_line.h" |
| #include "base/path_service.h" |
| #include "base/strings/string_number_conversions.h" |
| #include "base/values.h" |
| #include "net/test/python_utils.h" |
| #include "net/test/spawned_test_server/spawned_test_server.h" |
| |
| LocalSafeBrowsingTestServer::LocalSafeBrowsingTestServer( |
| const base::FilePath& data_file) |
| : net::LocalTestServer(net::SpawnedTestServer::TYPE_HTTP, |
| net::SpawnedTestServer::kLocalhost, |
| base::FilePath()), |
| data_file_(data_file) { |
| } |
| |
| LocalSafeBrowsingTestServer::~LocalSafeBrowsingTestServer() {} |
| |
| bool LocalSafeBrowsingTestServer::GetTestServerPath( |
| base::FilePath* testserver_path) const { |
| base::FilePath testserver_dir; |
| if (!PathService::Get(base::DIR_SOURCE_ROOT, &testserver_dir)) { |
| LOG(ERROR) << "Failed to get DIR_SOURCE_ROOT"; |
| return false; |
| } |
| |
| testserver_dir = testserver_dir |
| .Append(FILE_PATH_LITERAL("chrome")) |
| .Append(FILE_PATH_LITERAL("browser")) |
| .Append(FILE_PATH_LITERAL("safe_browsing")); |
| |
| *testserver_path = testserver_dir.Append(FILE_PATH_LITERAL( |
| "safe_browsing_testserver.py")); |
| return true; |
| } |
| |
| bool LocalSafeBrowsingTestServer::SetPythonPath() const { |
| if (!net::LocalTestServer::SetPythonPath()) |
| return false; |
| |
| // Locate the Python code generated by the protocol buffers compiler. |
| base::FilePath pyproto_dir; |
| if (!GetPyProtoPath(&pyproto_dir)) { |
| LOG(ERROR) << "Cannot find pyproto dir for generated code."; |
| return false; |
| } |
| |
| AppendToPythonPath(pyproto_dir.AppendASCII("google")); |
| return true; |
| } |
| |
| bool LocalSafeBrowsingTestServer::GenerateAdditionalArguments( |
| base::DictionaryValue* arguments) const { |
| arguments->SetString("data-file", data_file_.value()); |
| return true; |
| } |