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 |