| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/embedded_test_server/embedded_test_server.h" | 5 #include "net/test/embedded_test_server/embedded_test_server.h" |
| 6 | 6 |
| 7 #include "base/path_service.h" | 7 #include "base/path_service.h" |
| 8 #include "base/strings/stringprintf.h" | 8 #include "base/strings/stringprintf.h" |
| 9 #include "base/threading/thread.h" | 9 #include "base/threading/thread.h" |
| 10 #include "net/http/http_response_headers.h" | 10 #include "net/http/http_response_headers.h" |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 | 130 |
| 131 TEST_F(EmbeddedTestServerTest, RegisterRequestHandler) { | 131 TEST_F(EmbeddedTestServerTest, RegisterRequestHandler) { |
| 132 server_->RegisterRequestHandler( | 132 server_->RegisterRequestHandler( |
| 133 base::Bind(&EmbeddedTestServerTest::HandleRequest, | 133 base::Bind(&EmbeddedTestServerTest::HandleRequest, |
| 134 base::Unretained(this), | 134 base::Unretained(this), |
| 135 "/test", | 135 "/test", |
| 136 "<b>Worked!</b>", | 136 "<b>Worked!</b>", |
| 137 "text/html", | 137 "text/html", |
| 138 HTTP_OK)); | 138 HTTP_OK)); |
| 139 | 139 |
| 140 scoped_ptr<URLFetcher> fetcher( | 140 scoped_ptr<URLFetcher> fetcher = |
| 141 URLFetcher::Create(server_->GetURL("/test?q=foo"), | 141 URLFetcher::Create(server_->GetURL("/test?q=foo"), URLFetcher::GET, this); |
| 142 URLFetcher::GET, | |
| 143 this)); | |
| 144 fetcher->SetRequestContext(request_context_getter_.get()); | 142 fetcher->SetRequestContext(request_context_getter_.get()); |
| 145 fetcher->Start(); | 143 fetcher->Start(); |
| 146 WaitForResponses(1); | 144 WaitForResponses(1); |
| 147 | 145 |
| 148 EXPECT_EQ(URLRequestStatus::SUCCESS, fetcher->GetStatus().status()); | 146 EXPECT_EQ(URLRequestStatus::SUCCESS, fetcher->GetStatus().status()); |
| 149 EXPECT_EQ(HTTP_OK, fetcher->GetResponseCode()); | 147 EXPECT_EQ(HTTP_OK, fetcher->GetResponseCode()); |
| 150 EXPECT_EQ("<b>Worked!</b>", GetContentFromFetcher(*fetcher)); | 148 EXPECT_EQ("<b>Worked!</b>", GetContentFromFetcher(*fetcher)); |
| 151 EXPECT_EQ("text/html", GetContentTypeFromFetcher(*fetcher)); | 149 EXPECT_EQ("text/html", GetContentTypeFromFetcher(*fetcher)); |
| 152 | 150 |
| 153 EXPECT_EQ("/test?q=foo", request_relative_url_); | 151 EXPECT_EQ("/test?q=foo", request_relative_url_); |
| 154 } | 152 } |
| 155 | 153 |
| 156 TEST_F(EmbeddedTestServerTest, ServeFilesFromDirectory) { | 154 TEST_F(EmbeddedTestServerTest, ServeFilesFromDirectory) { |
| 157 base::FilePath src_dir; | 155 base::FilePath src_dir; |
| 158 ASSERT_TRUE(PathService::Get(base::DIR_SOURCE_ROOT, &src_dir)); | 156 ASSERT_TRUE(PathService::Get(base::DIR_SOURCE_ROOT, &src_dir)); |
| 159 server_->ServeFilesFromDirectory( | 157 server_->ServeFilesFromDirectory( |
| 160 src_dir.AppendASCII("net").AppendASCII("data")); | 158 src_dir.AppendASCII("net").AppendASCII("data")); |
| 161 | 159 |
| 162 scoped_ptr<URLFetcher> fetcher( | 160 scoped_ptr<URLFetcher> fetcher = |
| 163 URLFetcher::Create(server_->GetURL("/test.html"), | 161 URLFetcher::Create(server_->GetURL("/test.html"), URLFetcher::GET, this); |
| 164 URLFetcher::GET, | |
| 165 this)); | |
| 166 fetcher->SetRequestContext(request_context_getter_.get()); | 162 fetcher->SetRequestContext(request_context_getter_.get()); |
| 167 fetcher->Start(); | 163 fetcher->Start(); |
| 168 WaitForResponses(1); | 164 WaitForResponses(1); |
| 169 | 165 |
| 170 EXPECT_EQ(URLRequestStatus::SUCCESS, fetcher->GetStatus().status()); | 166 EXPECT_EQ(URLRequestStatus::SUCCESS, fetcher->GetStatus().status()); |
| 171 EXPECT_EQ(HTTP_OK, fetcher->GetResponseCode()); | 167 EXPECT_EQ(HTTP_OK, fetcher->GetResponseCode()); |
| 172 EXPECT_EQ("<p>Hello World!</p>", GetContentFromFetcher(*fetcher)); | 168 EXPECT_EQ("<p>Hello World!</p>", GetContentFromFetcher(*fetcher)); |
| 173 EXPECT_EQ("", GetContentTypeFromFetcher(*fetcher)); | 169 EXPECT_EQ("", GetContentTypeFromFetcher(*fetcher)); |
| 174 } | 170 } |
| 175 | 171 |
| 176 TEST_F(EmbeddedTestServerTest, DefaultNotFoundResponse) { | 172 TEST_F(EmbeddedTestServerTest, DefaultNotFoundResponse) { |
| 177 scoped_ptr<URLFetcher> fetcher( | 173 scoped_ptr<URLFetcher> fetcher = URLFetcher::Create( |
| 178 URLFetcher::Create(server_->GetURL("/non-existent"), | 174 server_->GetURL("/non-existent"), URLFetcher::GET, this); |
| 179 URLFetcher::GET, | |
| 180 this)); | |
| 181 fetcher->SetRequestContext(request_context_getter_.get()); | 175 fetcher->SetRequestContext(request_context_getter_.get()); |
| 182 | 176 |
| 183 fetcher->Start(); | 177 fetcher->Start(); |
| 184 WaitForResponses(1); | 178 WaitForResponses(1); |
| 185 EXPECT_EQ(URLRequestStatus::SUCCESS, fetcher->GetStatus().status()); | 179 EXPECT_EQ(URLRequestStatus::SUCCESS, fetcher->GetStatus().status()); |
| 186 EXPECT_EQ(HTTP_NOT_FOUND, fetcher->GetResponseCode()); | 180 EXPECT_EQ(HTTP_NOT_FOUND, fetcher->GetResponseCode()); |
| 187 } | 181 } |
| 188 | 182 |
| 189 TEST_F(EmbeddedTestServerTest, ConcurrentFetches) { | 183 TEST_F(EmbeddedTestServerTest, ConcurrentFetches) { |
| 190 server_->RegisterRequestHandler( | 184 server_->RegisterRequestHandler( |
| (...skipping 11 matching lines...) Expand all Loading... |
| 202 "text/html", | 196 "text/html", |
| 203 HTTP_OK)); | 197 HTTP_OK)); |
| 204 server_->RegisterRequestHandler( | 198 server_->RegisterRequestHandler( |
| 205 base::Bind(&EmbeddedTestServerTest::HandleRequest, | 199 base::Bind(&EmbeddedTestServerTest::HandleRequest, |
| 206 base::Unretained(this), | 200 base::Unretained(this), |
| 207 "/test3", | 201 "/test3", |
| 208 "No chocolates", | 202 "No chocolates", |
| 209 "text/plain", | 203 "text/plain", |
| 210 HTTP_NOT_FOUND)); | 204 HTTP_NOT_FOUND)); |
| 211 | 205 |
| 212 scoped_ptr<URLFetcher> fetcher1 = scoped_ptr<URLFetcher>( | 206 scoped_ptr<URLFetcher> fetcher1 = |
| 213 URLFetcher::Create(server_->GetURL("/test1"), | 207 URLFetcher::Create(server_->GetURL("/test1"), URLFetcher::GET, this); |
| 214 URLFetcher::GET, | |
| 215 this)); | |
| 216 fetcher1->SetRequestContext(request_context_getter_.get()); | 208 fetcher1->SetRequestContext(request_context_getter_.get()); |
| 217 scoped_ptr<URLFetcher> fetcher2 = scoped_ptr<URLFetcher>( | 209 scoped_ptr<URLFetcher> fetcher2 = |
| 218 URLFetcher::Create(server_->GetURL("/test2"), | 210 URLFetcher::Create(server_->GetURL("/test2"), URLFetcher::GET, this); |
| 219 URLFetcher::GET, | |
| 220 this)); | |
| 221 fetcher2->SetRequestContext(request_context_getter_.get()); | 211 fetcher2->SetRequestContext(request_context_getter_.get()); |
| 222 scoped_ptr<URLFetcher> fetcher3 = scoped_ptr<URLFetcher>( | 212 scoped_ptr<URLFetcher> fetcher3 = |
| 223 URLFetcher::Create(server_->GetURL("/test3"), | 213 URLFetcher::Create(server_->GetURL("/test3"), URLFetcher::GET, this); |
| 224 URLFetcher::GET, | |
| 225 this)); | |
| 226 fetcher3->SetRequestContext(request_context_getter_.get()); | 214 fetcher3->SetRequestContext(request_context_getter_.get()); |
| 227 | 215 |
| 228 // Fetch the three URLs concurrently. | 216 // Fetch the three URLs concurrently. |
| 229 fetcher1->Start(); | 217 fetcher1->Start(); |
| 230 fetcher2->Start(); | 218 fetcher2->Start(); |
| 231 fetcher3->Start(); | 219 fetcher3->Start(); |
| 232 WaitForResponses(3); | 220 WaitForResponses(3); |
| 233 | 221 |
| 234 EXPECT_EQ(URLRequestStatus::SUCCESS, fetcher1->GetStatus().status()); | 222 EXPECT_EQ(URLRequestStatus::SUCCESS, fetcher1->GetStatus().status()); |
| 235 EXPECT_EQ(HTTP_OK, fetcher1->GetResponseCode()); | 223 EXPECT_EQ(HTTP_OK, fetcher1->GetResponseCode()); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 282 // Create the test server instance. | 270 // Create the test server instance. |
| 283 EmbeddedTestServer server; | 271 EmbeddedTestServer server; |
| 284 base::FilePath src_dir; | 272 base::FilePath src_dir; |
| 285 ASSERT_TRUE(PathService::Get(base::DIR_SOURCE_ROOT, &src_dir)); | 273 ASSERT_TRUE(PathService::Get(base::DIR_SOURCE_ROOT, &src_dir)); |
| 286 ASSERT_TRUE(server.InitializeAndWaitUntilReady()); | 274 ASSERT_TRUE(server.InitializeAndWaitUntilReady()); |
| 287 | 275 |
| 288 // Make a request and wait for the reply. | 276 // Make a request and wait for the reply. |
| 289 if (!loop) | 277 if (!loop) |
| 290 loop.reset(new base::MessageLoopForIO); | 278 loop.reset(new base::MessageLoopForIO); |
| 291 | 279 |
| 292 scoped_ptr<URLFetcher> fetcher(URLFetcher::Create( | 280 scoped_ptr<URLFetcher> fetcher = |
| 293 server.GetURL("/test?q=foo"), URLFetcher::GET, this)); | 281 URLFetcher::Create(server.GetURL("/test?q=foo"), URLFetcher::GET, this); |
| 294 fetcher->SetRequestContext( | 282 fetcher->SetRequestContext( |
| 295 new TestURLRequestContextGetter(loop->message_loop_proxy())); | 283 new TestURLRequestContextGetter(loop->message_loop_proxy())); |
| 296 fetcher->Start(); | 284 fetcher->Start(); |
| 297 loop->Run(); | 285 loop->Run(); |
| 298 fetcher.reset(); | 286 fetcher.reset(); |
| 299 | 287 |
| 300 // Shut down. | 288 // Shut down. |
| 301 if (message_loop_present_on_shutdown_) | 289 if (message_loop_present_on_shutdown_) |
| 302 loop.reset(); | 290 loop.reset(); |
| 303 | 291 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 327 ASSERT_TRUE(base::PlatformThread::Create(0, &delegate, &thread_handle)); | 315 ASSERT_TRUE(base::PlatformThread::Create(0, &delegate, &thread_handle)); |
| 328 base::PlatformThread::Join(thread_handle); | 316 base::PlatformThread::Join(thread_handle); |
| 329 } | 317 } |
| 330 | 318 |
| 331 INSTANTIATE_TEST_CASE_P(EmbeddedTestServerThreadingTestInstantiation, | 319 INSTANTIATE_TEST_CASE_P(EmbeddedTestServerThreadingTestInstantiation, |
| 332 EmbeddedTestServerThreadingTest, | 320 EmbeddedTestServerThreadingTest, |
| 333 testing::Combine(testing::Bool(), testing::Bool())); | 321 testing::Combine(testing::Bool(), testing::Bool())); |
| 334 | 322 |
| 335 } // namespace test_server | 323 } // namespace test_server |
| 336 } // namespace net | 324 } // namespace net |
| OLD | NEW |