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

Side by Side Diff: net/spdy/spdy_stream_spdy3_unittest.cc

Issue 9958023: Properly handle spdy3 responses. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 8 years, 8 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/spdy/spdy_stream_spdy2_unittest.cc ('k') | net/spdy/spdy_test_util_spdy3.cc » ('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 (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 "base/memory/ref_counted.h" 5 #include "base/memory/ref_counted.h"
6 #include "net/base/completion_callback.h" 6 #include "net/base/completion_callback.h"
7 #include "net/base/net_log_unittest.h" 7 #include "net/base/net_log_unittest.h"
8 #include "net/spdy/buffered_spdy_framer.h" 8 #include "net/spdy/buffered_spdy_framer.h"
9 #include "net/spdy/spdy_stream.h" 9 #include "net/spdy/spdy_stream.h"
10 #include "net/spdy/spdy_http_utils.h" 10 #include "net/spdy/spdy_http_utils.h"
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 (*headers)[":version"] = "HTTP/1.1"; 228 (*headers)[":version"] = "HTTP/1.1";
229 stream->set_spdy_headers(headers); 229 stream->set_spdy_headers(headers);
230 EXPECT_TRUE(stream->HasUrl()); 230 EXPECT_TRUE(stream->HasUrl());
231 EXPECT_EQ(kStreamUrl, stream->GetUrl().spec()); 231 EXPECT_EQ(kStreamUrl, stream->GetUrl().spec());
232 232
233 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequest(true)); 233 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequest(true));
234 234
235 EXPECT_EQ(OK, callback.WaitForResult()); 235 EXPECT_EQ(OK, callback.WaitForResult());
236 236
237 EXPECT_TRUE(delegate->send_headers_completed()); 237 EXPECT_TRUE(delegate->send_headers_completed());
238 EXPECT_EQ("200", (*delegate->response())["status"]); 238 EXPECT_EQ("200", (*delegate->response())[":status"]);
239 EXPECT_EQ("HTTP/1.1", (*delegate->response())["version"]); 239 EXPECT_EQ("HTTP/1.1", (*delegate->response())[":version"]);
240 EXPECT_EQ(std::string("\0hello!\xff", 8), delegate->received_data()); 240 EXPECT_EQ(std::string("\0hello!\xff", 8), delegate->received_data());
241 EXPECT_EQ(8, delegate->data_sent()); 241 EXPECT_EQ(8, delegate->data_sent());
242 EXPECT_TRUE(delegate->closed()); 242 EXPECT_TRUE(delegate->closed());
243 } 243 }
244 244
245 TEST_F(SpdyStreamSpdy3Test, PushedStream) { 245 TEST_F(SpdyStreamSpdy3Test, PushedStream) {
246 const char kStreamUrl[] = "http://www.google.com/"; 246 const char kStreamUrl[] = "http://www.google.com/";
247 247
248 SpdySessionDependencies session_deps; 248 SpdySessionDependencies session_deps;
249 session_ = SpdySessionDependencies::SpdyCreateSession(&session_deps); 249 session_ = SpdySessionDependencies::SpdyCreateSession(&session_deps);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 // Set a couple of headers. 284 // Set a couple of headers.
285 SpdyHeaderBlock response; 285 SpdyHeaderBlock response;
286 GURL url(kStreamUrl); 286 GURL url(kStreamUrl);
287 response[":host"] = url.host(); 287 response[":host"] = url.host();
288 response[":scheme"] = url.scheme(); 288 response[":scheme"] = url.scheme();
289 response[":path"] = url.path(); 289 response[":path"] = url.path();
290 stream->OnResponseReceived(response); 290 stream->OnResponseReceived(response);
291 291
292 // Send some basic headers. 292 // Send some basic headers.
293 SpdyHeaderBlock headers; 293 SpdyHeaderBlock headers;
294 response["status"] = "200"; 294 response[":status"] = "200";
295 response["version"] = "OK"; 295 response[":version"] = "OK";
296 stream->OnHeaders(headers); 296 stream->OnHeaders(headers);
297 297
298 stream->set_response_received(); 298 stream->set_response_received();
299 EXPECT_TRUE(stream->response_received()); 299 EXPECT_TRUE(stream->response_received());
300 EXPECT_TRUE(stream->HasUrl()); 300 EXPECT_TRUE(stream->HasUrl());
301 EXPECT_EQ(kStreamUrl, stream->GetUrl().spec()); 301 EXPECT_EQ(kStreamUrl, stream->GetUrl().spec());
302 } 302 }
303 303
304 TEST_F(SpdyStreamSpdy3Test, StreamError) { 304 TEST_F(SpdyStreamSpdy3Test, StreamError) {
305 SpdySessionDependencies session_deps; 305 SpdySessionDependencies session_deps;
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
407 EXPECT_TRUE(stream->HasUrl()); 407 EXPECT_TRUE(stream->HasUrl());
408 EXPECT_EQ(kStreamUrl, stream->GetUrl().spec()); 408 EXPECT_EQ(kStreamUrl, stream->GetUrl().spec());
409 409
410 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequest(true)); 410 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequest(true));
411 411
412 const SpdyStreamId stream_id = stream->stream_id(); 412 const SpdyStreamId stream_id = stream->stream_id();
413 413
414 EXPECT_EQ(OK, callback.WaitForResult()); 414 EXPECT_EQ(OK, callback.WaitForResult());
415 415
416 EXPECT_TRUE(delegate->send_headers_completed()); 416 EXPECT_TRUE(delegate->send_headers_completed());
417 EXPECT_EQ("200", (*delegate->response())["status"]); 417 EXPECT_EQ("200", (*delegate->response())[":status"]);
418 EXPECT_EQ("HTTP/1.1", (*delegate->response())["version"]); 418 EXPECT_EQ("HTTP/1.1", (*delegate->response())[":version"]);
419 EXPECT_EQ(std::string("\0hello!\xff", 8), delegate->received_data()); 419 EXPECT_EQ(std::string("\0hello!\xff", 8), delegate->received_data());
420 EXPECT_EQ(8, delegate->data_sent()); 420 EXPECT_EQ(8, delegate->data_sent());
421 EXPECT_TRUE(delegate->closed()); 421 EXPECT_TRUE(delegate->closed());
422 422
423 // Check that the NetLog was filled reasonably. 423 // Check that the NetLog was filled reasonably.
424 net::CapturingNetLog::EntryList entries; 424 net::CapturingNetLog::EntryList entries;
425 log.GetEntries(&entries); 425 log.GetEntries(&entries);
426 EXPECT_LT(0u, entries.size()); 426 EXPECT_LT(0u, entries.size());
427 427
428 // Check that we logged SPDY_STREAM_ERROR correctly. 428 // Check that we logged SPDY_STREAM_ERROR correctly.
429 int pos = net::ExpectLogContainsSomewhere( 429 int pos = net::ExpectLogContainsSomewhere(
430 entries, 0, 430 entries, 0,
431 net::NetLog::TYPE_SPDY_STREAM_ERROR, 431 net::NetLog::TYPE_SPDY_STREAM_ERROR,
432 net::NetLog::PHASE_NONE); 432 net::NetLog::PHASE_NONE);
433 433
434 CapturingNetLog::Entry entry = entries[pos]; 434 CapturingNetLog::Entry entry = entries[pos];
435 NetLogSpdyStreamErrorParameter* request_params = 435 NetLogSpdyStreamErrorParameter* request_params =
436 static_cast<NetLogSpdyStreamErrorParameter*>( 436 static_cast<NetLogSpdyStreamErrorParameter*>(
437 entry.extra_parameters.get()); 437 entry.extra_parameters.get());
438 EXPECT_EQ(stream_id, request_params->stream_id()); 438 EXPECT_EQ(stream_id, request_params->stream_id());
439 } 439 }
440 440
441 } // namespace net 441 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_stream_spdy2_unittest.cc ('k') | net/spdy/spdy_test_util_spdy3.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698