Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(201)

Side by Side Diff: net/server/http_server_unittest.cc

Issue 20142003: Remove ref-counting from StreamListenSocket (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: addressed comments Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/server/http_server.cc ('k') | net/socket/stream_listen_socket.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <vector> 5 #include <vector>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/format_macros.h" 10 #include "base/format_macros.h"
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 269
270 virtual void Accept() OVERRIDE { NOTREACHED(); } 270 virtual void Accept() OVERRIDE { NOTREACHED(); }
271 271
272 private: 272 private:
273 virtual ~MockStreamListenSocket() {} 273 virtual ~MockStreamListenSocket() {}
274 }; 274 };
275 275
276 } // namespace 276 } // namespace
277 277
278 TEST_F(HttpServerTest, RequestWithBodySplitAcrossPackets) { 278 TEST_F(HttpServerTest, RequestWithBodySplitAcrossPackets) {
279 scoped_refptr<StreamListenSocket> socket( 279 StreamListenSocket* socket =
280 new MockStreamListenSocket(server_.get())); 280 new MockStreamListenSocket(server_.get());
281 server_->DidAccept(NULL, socket.get()); 281 server_->DidAccept(NULL, make_scoped_ptr(socket));
282 std::string body("body"); 282 std::string body("body");
283 std::string request = base::StringPrintf( 283 std::string request = base::StringPrintf(
284 "GET /test HTTP/1.1\r\n" 284 "GET /test HTTP/1.1\r\n"
285 "SomeHeader: 1\r\n" 285 "SomeHeader: 1\r\n"
286 "Content-Length: %" PRIuS "\r\n\r\n%s", 286 "Content-Length: %" PRIuS "\r\n\r\n%s",
287 body.length(), 287 body.length(),
288 body.c_str()); 288 body.c_str());
289 server_->DidRead(socket.get(), request.c_str(), request.length() - 2); 289 server_->DidRead(socket, request.c_str(), request.length() - 2);
290 ASSERT_EQ(0u, requests_.size()); 290 ASSERT_EQ(0u, requests_.size());
291 server_->DidRead(socket.get(), request.c_str() + request.length() - 2, 2); 291 server_->DidRead(socket, request.c_str() + request.length() - 2, 2);
292 ASSERT_EQ(1u, requests_.size()); 292 ASSERT_EQ(1u, requests_.size());
293 ASSERT_EQ(body, requests_[0].data); 293 ASSERT_EQ(body, requests_[0].data);
294 } 294 }
295 295
296 TEST_F(HttpServerTest, MultipleRequestsOnSameConnection) { 296 TEST_F(HttpServerTest, MultipleRequestsOnSameConnection) {
297 // The idea behind this test is that requests with or without bodies should 297 // The idea behind this test is that requests with or without bodies should
298 // not break parsing of the next request. 298 // not break parsing of the next request.
299 TestHttpClient client; 299 TestHttpClient client;
300 ASSERT_EQ(OK, client.ConnectAndWait(server_address_)); 300 ASSERT_EQ(OK, client.ConnectAndWait(server_address_));
301 std::string body = "body"; 301 std::string body = "body";
302 client.Send(base::StringPrintf( 302 client.Send(base::StringPrintf(
303 "GET /test HTTP/1.1\r\n" 303 "GET /test HTTP/1.1\r\n"
304 "Content-Length: %" PRIuS "\r\n\r\n%s", 304 "Content-Length: %" PRIuS "\r\n\r\n%s",
305 body.length(), 305 body.length(),
306 body.c_str())); 306 body.c_str()));
307 ASSERT_TRUE(RunUntilRequestsReceived(1)); 307 ASSERT_TRUE(RunUntilRequestsReceived(1));
308 ASSERT_EQ(body, requests_[0].data); 308 ASSERT_EQ(body, requests_[0].data);
309 309
310 client.Send("GET /test2 HTTP/1.1\r\n\r\n"); 310 client.Send("GET /test2 HTTP/1.1\r\n\r\n");
311 ASSERT_TRUE(RunUntilRequestsReceived(2)); 311 ASSERT_TRUE(RunUntilRequestsReceived(2));
312 ASSERT_EQ("/test2", requests_[1].path); 312 ASSERT_EQ("/test2", requests_[1].path);
313 313
314 client.Send("GET /test3 HTTP/1.1\r\n\r\n"); 314 client.Send("GET /test3 HTTP/1.1\r\n\r\n");
315 ASSERT_TRUE(RunUntilRequestsReceived(3)); 315 ASSERT_TRUE(RunUntilRequestsReceived(3));
316 ASSERT_EQ("/test3", requests_[2].path); 316 ASSERT_EQ("/test3", requests_[2].path);
317 } 317 }
318 318
319 } // namespace net 319 } // namespace net
OLDNEW
« no previous file with comments | « net/server/http_server.cc ('k') | net/socket/stream_listen_socket.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698