Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #import "ios/web/public/test/http_server/http_server.h" | 5 #import "ios/web/public/test/http_server/http_server.h" |
| 6 | 6 |
| 7 #import <Foundation/Foundation.h> | 7 #import <Foundation/Foundation.h> |
| 8 | 8 |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 63 DCHECK([NSThread isMainThread]); | 63 DCHECK([NSThread isMainThread]); |
| 64 HttpServer& server = HttpServer::GetSharedInstance(); | 64 HttpServer& server = HttpServer::GetSharedInstance(); |
| 65 // Use non-const reference as the response_provider ownership is transfered. | 65 // Use non-const reference as the response_provider ownership is transfered. |
| 66 for (std::unique_ptr<ResponseProvider>& provider : response_providers) | 66 for (std::unique_ptr<ResponseProvider>& provider : response_providers) |
| 67 server.AddResponseProvider(std::move(provider)); | 67 server.AddResponseProvider(std::move(provider)); |
| 68 return server; | 68 return server; |
| 69 } | 69 } |
| 70 | 70 |
| 71 std::unique_ptr<net::test_server::HttpResponse> HttpServer::GetResponse( | 71 std::unique_ptr<net::test_server::HttpResponse> HttpServer::GetResponse( |
| 72 const net::test_server::HttpRequest& request) { | 72 const net::test_server::HttpRequest& request) { |
| 73 if (isSuspended) { | |
| 74 return base::MakeUnique<net::test_server::HungResponse>(); | |
| 75 } | |
| 73 ResponseProvider::Request provider_request = | 76 ResponseProvider::Request provider_request = |
| 74 ResponseProviderRequestFromEmbeddedTestServerRequest(request); | 77 ResponseProviderRequestFromEmbeddedTestServerRequest(request); |
| 75 ResponseProvider* response_provider = | 78 ResponseProvider* response_provider = |
| 76 GetResponseProviderForProviderRequest(provider_request); | 79 GetResponseProviderForProviderRequest(provider_request); |
| 77 | 80 |
| 78 if (!response_provider) { | 81 if (!response_provider) { |
| 79 return nullptr; | 82 return nullptr; |
| 80 } | 83 } |
| 81 return response_provider->GetEmbeddedTestServerResponse(provider_request); | 84 return response_provider->GetEmbeddedTestServerResponse(provider_request); |
| 82 } | 85 } |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 102 // Registers the DIR_SOURCE_ROOT to avoid massive test changes. | 105 // Registers the DIR_SOURCE_ROOT to avoid massive test changes. |
| 103 embedded_test_server_ = base::MakeUnique<net::EmbeddedTestServer>(); | 106 embedded_test_server_ = base::MakeUnique<net::EmbeddedTestServer>(); |
| 104 embedded_test_server_->ServeFilesFromSourceDirectory("."); | 107 embedded_test_server_->ServeFilesFromSourceDirectory("."); |
| 105 | 108 |
| 106 embedded_test_server_->RegisterDefaultHandler( | 109 embedded_test_server_->RegisterDefaultHandler( |
| 107 base::Bind(&HttpServer::GetResponse, this)); | 110 base::Bind(&HttpServer::GetResponse, this)); |
| 108 | 111 |
| 109 if (embedded_test_server_->Start()) { | 112 if (embedded_test_server_->Start()) { |
| 110 SetPort((NSUInteger)embedded_test_server_->port()); | 113 SetPort((NSUInteger)embedded_test_server_->port()); |
| 111 } | 114 } |
| 115 isSuspended = NO; | |
|
Eugene But (OOO till 7-30)
2017/06/12 02:25:44
= false;
| |
| 112 CHECK(IsRunning()); | 116 CHECK(IsRunning()); |
| 113 } | 117 } |
| 114 | 118 |
| 115 void HttpServer::Stop() { | 119 void HttpServer::Stop() { |
| 116 DCHECK([NSThread isMainThread]); | 120 DCHECK([NSThread isMainThread]); |
| 117 DCHECK(IsRunning()) << "Cannot stop an already stopped server."; | 121 DCHECK(IsRunning()) << "Cannot stop an already stopped server."; |
| 118 RemoveAllResponseProviders(); | 122 RemoveAllResponseProviders(); |
| 119 // TODO(crbug.com/711723): Re-write the Stop() function when shutting down | 123 // TODO(crbug.com/711723): Re-write the Stop() function when shutting down |
| 120 // server works for iOS. | 124 // server works for iOS. |
| 121 embedded_test_server_.release(); | 125 embedded_test_server_.release(); |
| 122 SetPort(0); | 126 SetPort(0); |
| 123 } | 127 } |
| 124 | 128 |
| 129 void HttpServer::SetSuspend(bool suspended) { | |
| 130 isSuspended = suspended; | |
| 131 } | |
| 132 | |
| 125 bool HttpServer::IsRunning() const { | 133 bool HttpServer::IsRunning() const { |
| 126 DCHECK([NSThread isMainThread]); | 134 DCHECK([NSThread isMainThread]); |
| 127 if (embedded_test_server_ == nullptr) { | 135 if (embedded_test_server_ == nullptr) { |
| 128 return false; | 136 return false; |
| 129 } | 137 } |
| 130 return embedded_test_server_->Started(); | 138 return embedded_test_server_->Started(); |
| 131 } | 139 } |
| 132 | 140 |
| 133 NSUInteger HttpServer::GetPort() const { | 141 NSUInteger HttpServer::GetPort() const { |
| 134 base::AutoLock autolock(port_lock_); | 142 base::AutoLock autolock(port_lock_); |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 212 providers_.clear(); | 220 providers_.clear(); |
| 213 } | 221 } |
| 214 | 222 |
| 215 void HttpServer::SetPort(NSUInteger port) { | 223 void HttpServer::SetPort(NSUInteger port) { |
| 216 base::AutoLock autolock(port_lock_); | 224 base::AutoLock autolock(port_lock_); |
| 217 port_ = port; | 225 port_ = port; |
| 218 } | 226 } |
| 219 | 227 |
| 220 } // namespace test | 228 } // namespace test |
| 221 } // namespace web | 229 } // namespace web |
| OLD | NEW |