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

Side by Side Diff: net/tools/flip_server/spdy_interface_test.cc

Issue 266243004: Clang format slam. Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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
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 "net/tools/flip_server/spdy_interface.h" 5 #include "net/tools/flip_server/spdy_interface.h"
6 6
7 #include <list> 7 #include <list>
8 8
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/strings/string_piece.h" 10 #include "base/strings/string_piece.h"
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 MOCK_METHOD6(OnSynStream, 47 MOCK_METHOD6(OnSynStream,
48 void(SpdyStreamId, 48 void(SpdyStreamId,
49 SpdyStreamId, 49 SpdyStreamId,
50 SpdyPriority, 50 SpdyPriority,
51 bool, 51 bool,
52 bool, 52 bool,
53 const SpdyHeaderBlock&)); 53 const SpdyHeaderBlock&));
54 MOCK_METHOD3(OnSynReply, void(SpdyStreamId, bool, const SpdyHeaderBlock&)); 54 MOCK_METHOD3(OnSynReply, void(SpdyStreamId, bool, const SpdyHeaderBlock&));
55 MOCK_METHOD3(OnHeaders, void(SpdyStreamId, bool, const SpdyHeaderBlock&)); 55 MOCK_METHOD3(OnHeaders, void(SpdyStreamId, bool, const SpdyHeaderBlock&));
56 MOCK_METHOD3(OnDataFrameHeader, void(SpdyStreamId, size_t, bool)); 56 MOCK_METHOD3(OnDataFrameHeader, void(SpdyStreamId, size_t, bool));
57 MOCK_METHOD4(OnStreamFrameData, void(SpdyStreamId, 57 MOCK_METHOD4(OnStreamFrameData,
58 const char*, 58 void(SpdyStreamId, const char*, size_t, bool));
59 size_t,
60 bool));
61 MOCK_METHOD1(OnSettings, void(bool clear_persisted)); 59 MOCK_METHOD1(OnSettings, void(bool clear_persisted));
62 MOCK_METHOD3(OnSetting, void(SpdySettingsIds, uint8, uint32)); 60 MOCK_METHOD3(OnSetting, void(SpdySettingsIds, uint8, uint32));
63 MOCK_METHOD2(OnPing, void(SpdyPingId unique_id, bool is_ack)); 61 MOCK_METHOD2(OnPing, void(SpdyPingId unique_id, bool is_ack));
64 MOCK_METHOD2(OnRstStream, void(SpdyStreamId, SpdyRstStreamStatus)); 62 MOCK_METHOD2(OnRstStream, void(SpdyStreamId, SpdyRstStreamStatus));
65 MOCK_METHOD2(OnGoAway, void(SpdyStreamId, SpdyGoAwayStatus)); 63 MOCK_METHOD2(OnGoAway, void(SpdyStreamId, SpdyGoAwayStatus));
66 MOCK_METHOD2(OnWindowUpdate, void(SpdyStreamId, uint32)); 64 MOCK_METHOD2(OnWindowUpdate, void(SpdyStreamId, uint32));
67 MOCK_METHOD2(OnPushPromise, void(SpdyStreamId, SpdyStreamId)); 65 MOCK_METHOD2(OnPushPromise, void(SpdyStreamId, SpdyStreamId));
68 }; 66 };
69 67
70 class FakeSMConnection : public SMConnection { 68 class FakeSMConnection : public SMConnection {
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 211
214 TEST_P(SpdySMProxyTest, OnSynStream_SPDY2) { 212 TEST_P(SpdySMProxyTest, OnSynStream_SPDY2) {
215 if (GetParam() != SPDY2) { 213 if (GetParam() != SPDY2) {
216 // This test case is for SPDY2. 214 // This test case is for SPDY2.
217 return; 215 return;
218 } 216 }
219 BufferedSpdyFramerVisitorInterface* visitor = interface_.get(); 217 BufferedSpdyFramerVisitorInterface* visitor = interface_.get();
220 scoped_ptr<MockSMInterface> mock_interface(new MockSMInterface); 218 scoped_ptr<MockSMInterface> mock_interface(new MockSMInterface);
221 uint32 stream_id = 92; 219 uint32 stream_id = 92;
222 uint32 associated_id = 43; 220 uint32 associated_id = 43;
223 std::string expected = "GET /path HTTP/1.0\r\n" 221 std::string expected =
222 "GET /path HTTP/1.0\r\n"
224 "Host: 127.0.0.1\r\n" 223 "Host: 127.0.0.1\r\n"
225 "hoge: fuga\r\n\r\n"; 224 "hoge: fuga\r\n\r\n";
226 SpdyHeaderBlock block; 225 SpdyHeaderBlock block;
227 block["method"] = "GET"; 226 block["method"] = "GET";
228 block["url"] = "/path"; 227 block["url"] = "/path";
229 block["scheme"] = "http"; 228 block["scheme"] = "http";
230 block["version"] = "HTTP/1.0"; 229 block["version"] = "HTTP/1.0";
231 block["hoge"] = "fuga"; 230 block["hoge"] = "fuga";
232 StringSaver saver; 231 StringSaver saver;
233 { 232 {
(...skipping 13 matching lines...) Expand all
247 246
248 TEST_P(SpdySMProxyTest, OnSynStream) { 247 TEST_P(SpdySMProxyTest, OnSynStream) {
249 if (GetParam() == SPDY2) { 248 if (GetParam() == SPDY2) {
250 // This test case is not for SPDY2. 249 // This test case is not for SPDY2.
251 return; 250 return;
252 } 251 }
253 BufferedSpdyFramerVisitorInterface* visitor = interface_.get(); 252 BufferedSpdyFramerVisitorInterface* visitor = interface_.get();
254 scoped_ptr<MockSMInterface> mock_interface(new MockSMInterface); 253 scoped_ptr<MockSMInterface> mock_interface(new MockSMInterface);
255 uint32 stream_id = 92; 254 uint32 stream_id = 92;
256 uint32 associated_id = 43; 255 uint32 associated_id = 43;
257 std::string expected = "GET /path HTTP/1.1\r\n" 256 std::string expected =
257 "GET /path HTTP/1.1\r\n"
258 "Host: 127.0.0.1\r\n" 258 "Host: 127.0.0.1\r\n"
259 "foo: bar\r\n\r\n"; 259 "foo: bar\r\n\r\n";
260 SpdyHeaderBlock block; 260 SpdyHeaderBlock block;
261 block[":method"] = "GET"; 261 block[":method"] = "GET";
262 block[":host"] = "www.example.com"; 262 block[":host"] = "www.example.com";
263 block[":path"] = "/path"; 263 block[":path"] = "/path";
264 block[":scheme"] = "http"; 264 block[":scheme"] = "http";
265 block["foo"] = "bar"; 265 block["foo"] = "bar";
266 StringSaver saver; 266 StringSaver saver;
267 { 267 {
268 InSequence s; 268 InSequence s;
269 EXPECT_CALL(*interface_, 269 EXPECT_CALL(*interface_, FindOrMakeNewSMConnectionInterface(_, _))
270 FindOrMakeNewSMConnectionInterface(_, _))
271 .WillOnce(Return(mock_interface.get())); 270 .WillOnce(Return(mock_interface.get()));
272 EXPECT_CALL(*mock_interface, SetStreamID(stream_id)); 271 EXPECT_CALL(*mock_interface, SetStreamID(stream_id));
273 EXPECT_CALL(*mock_interface, ProcessWriteInput(_, _)) 272 EXPECT_CALL(*mock_interface, ProcessWriteInput(_, _))
274 .WillOnce(DoAll(SaveArg<0>(&saver.data), 273 .WillOnce(DoAll(SaveArg<0>(&saver.data),
275 SaveArg<1>(&saver.size), 274 SaveArg<1>(&saver.size),
276 InvokeWithoutArgs(&saver, &StringSaver::Save), 275 InvokeWithoutArgs(&saver, &StringSaver::Save),
277 Return(0))); 276 Return(0)));
278 } 277 }
279 visitor->OnSynStream(stream_id, associated_id, 0, false, false, block); 278 visitor->OnSynStream(stream_id, associated_id, 0, false, false, block);
280 ASSERT_EQ(expected, saver.string); 279 ASSERT_EQ(expected, saver.string);
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
326 testing::MockFunction<void(int)> checkpoint; // NOLINT 325 testing::MockFunction<void(int)> checkpoint; // NOLINT
327 326
328 scoped_ptr<SpdyFrame> frame(spdy_framer_->CreatePingFrame(12, false)); 327 scoped_ptr<SpdyFrame> frame(spdy_framer_->CreatePingFrame(12, false));
329 block[":method"] = "GET"; 328 block[":method"] = "GET";
330 block[":host"] = "www.example.com"; 329 block[":host"] = "www.example.com";
331 block[":path"] = "/path"; 330 block[":path"] = "/path";
332 block[":scheme"] = "http"; 331 block[":scheme"] = "http";
333 block["foo"] = "bar"; 332 block["foo"] = "bar";
334 { 333 {
335 InSequence s; 334 InSequence s;
336 EXPECT_CALL(*interface_, 335 EXPECT_CALL(*interface_, FindOrMakeNewSMConnectionInterface(_, _))
337 FindOrMakeNewSMConnectionInterface(_, _))
338 .WillOnce(Return(mock_interface.get())); 336 .WillOnce(Return(mock_interface.get()));
339 EXPECT_CALL(*mock_interface, SetStreamID(stream_id)); 337 EXPECT_CALL(*mock_interface, SetStreamID(stream_id));
340 EXPECT_CALL(*mock_interface, ProcessWriteInput(_, _)).Times(1); 338 EXPECT_CALL(*mock_interface, ProcessWriteInput(_, _)).Times(1);
341 EXPECT_CALL(checkpoint, Call(0)); 339 EXPECT_CALL(checkpoint, Call(0));
342 EXPECT_CALL(*mock_interface, 340 EXPECT_CALL(*mock_interface,
343 ProcessWriteInput(frame->data(), frame->size())).Times(1); 341 ProcessWriteInput(frame->data(), frame->size())).Times(1);
344 } 342 }
345 343
346 visitor->OnSynStream(stream_id, associated_id, 0, false, false, block); 344 visitor->OnSynStream(stream_id, associated_id, 0, false, false, block);
347 checkpoint.Call(0); 345 checkpoint.Call(0);
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 { 464 {
467 InSequence s; 465 InSequence s;
468 if (GetParam() < SPDY4) { 466 if (GetParam() < SPDY4) {
469 EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _)) 467 EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _))
470 .WillOnce(SaveArg<2>(&actual_header_block)); 468 .WillOnce(SaveArg<2>(&actual_header_block));
471 } else { 469 } else {
472 EXPECT_CALL(*spdy_framer_visitor_, OnHeaders(stream_id, false, _)) 470 EXPECT_CALL(*spdy_framer_visitor_, OnHeaders(stream_id, false, _))
473 .WillOnce(SaveArg<2>(&actual_header_block)); 471 .WillOnce(SaveArg<2>(&actual_header_block));
474 } 472 }
475 EXPECT_CALL(checkpoint, Call(0)); 473 EXPECT_CALL(checkpoint, Call(0));
474 EXPECT_CALL(*spdy_framer_visitor_, OnDataFrameHeader(stream_id, _, true));
476 EXPECT_CALL(*spdy_framer_visitor_, 475 EXPECT_CALL(*spdy_framer_visitor_,
477 OnDataFrameHeader(stream_id, _, true)); 476 OnStreamFrameData(stream_id, _, _, false))
478 EXPECT_CALL(*spdy_framer_visitor_, 477 .Times(1)
479 OnStreamFrameData(stream_id, _, _, false)).Times(1) 478 .WillOnce(DoAll(SaveArg<1>(&actual_data), SaveArg<2>(&actual_size)));
480 .WillOnce(DoAll(SaveArg<1>(&actual_data),
481 SaveArg<2>(&actual_size)));
482 EXPECT_CALL(*spdy_framer_visitor_, 479 EXPECT_CALL(*spdy_framer_visitor_,
483 OnStreamFrameData(stream_id, NULL, 0, true)).Times(1); 480 OnStreamFrameData(stream_id, NULL, 0, true)).Times(1);
484 } 481 }
485 482
486 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin(); 483 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin();
487 DataFrame* df = *i++; 484 DataFrame* df = *i++;
488 spdy_framer_->ProcessInput(df->data, df->size); 485 spdy_framer_->ProcessInput(df->data, df->size);
489 checkpoint.Call(0); 486 checkpoint.Call(0);
490 df = *i++; 487 df = *i++;
491 spdy_framer_->ProcessInput(df->data, df->size); 488 spdy_framer_->ProcessInput(df->data, df->size);
(...skipping 16 matching lines...) Expand all
508 size_t actual_size; 505 size_t actual_size;
509 testing::MockFunction<void(int)> checkpoint; // NOLINT 506 testing::MockFunction<void(int)> checkpoint; // NOLINT
510 507
511 interface_->SendErrorNotFound(stream_id); 508 interface_->SendErrorNotFound(stream_id);
512 509
513 ASSERT_EQ(2u, connection_->output_list()->size()); 510 ASSERT_EQ(2u, connection_->output_list()->size());
514 511
515 { 512 {
516 InSequence s; 513 InSequence s;
517 if (GetParam() < SPDY4) { 514 if (GetParam() < SPDY4) {
518 EXPECT_CALL(*spdy_framer_visitor_, 515 EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _))
519 OnSynReply(stream_id, false, _))
520 .WillOnce(SaveArg<2>(&actual_header_block)); 516 .WillOnce(SaveArg<2>(&actual_header_block));
521 } else { 517 } else {
522 EXPECT_CALL(*spdy_framer_visitor_, 518 EXPECT_CALL(*spdy_framer_visitor_, OnHeaders(stream_id, false, _))
523 OnHeaders(stream_id, false, _))
524 .WillOnce(SaveArg<2>(&actual_header_block)); 519 .WillOnce(SaveArg<2>(&actual_header_block));
525 } 520 }
526 EXPECT_CALL(checkpoint, Call(0)); 521 EXPECT_CALL(checkpoint, Call(0));
522 EXPECT_CALL(*spdy_framer_visitor_, OnDataFrameHeader(stream_id, _, true));
527 EXPECT_CALL(*spdy_framer_visitor_, 523 EXPECT_CALL(*spdy_framer_visitor_,
528 OnDataFrameHeader(stream_id, _, true)); 524 OnStreamFrameData(stream_id, _, _, false))
529 EXPECT_CALL(*spdy_framer_visitor_, 525 .Times(1)
530 OnStreamFrameData(stream_id, _, _, false)).Times(1) 526 .WillOnce(DoAll(SaveArg<1>(&actual_data), SaveArg<2>(&actual_size)));
531 .WillOnce(DoAll(SaveArg<1>(&actual_data),
532 SaveArg<2>(&actual_size)));
533 EXPECT_CALL(*spdy_framer_visitor_, 527 EXPECT_CALL(*spdy_framer_visitor_,
534 OnStreamFrameData(stream_id, NULL, 0, true)).Times(1); 528 OnStreamFrameData(stream_id, NULL, 0, true)).Times(1);
535 } 529 }
536 530
537 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin(); 531 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin();
538 DataFrame* df = *i++; 532 DataFrame* df = *i++;
539 spdy_framer_->ProcessInput(df->data, df->size); 533 spdy_framer_->ProcessInput(df->data, df->size);
540 checkpoint.Call(0); 534 checkpoint.Call(0);
541 df = *i++; 535 df = *i++;
542 spdy_framer_->ProcessInput(df->data, df->size); 536 spdy_framer_->ProcessInput(df->data, df->size);
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
695 size_t actual_size; 689 size_t actual_size;
696 690
697 interface_->SendDataFrame(stream_id, "hello", 5, flags, true); 691 interface_->SendDataFrame(stream_id, "hello", 5, flags, true);
698 692
699 ASSERT_EQ(1u, connection_->output_list()->size()); 693 ASSERT_EQ(1u, connection_->output_list()->size());
700 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin(); 694 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin();
701 DataFrame* df = *i++; 695 DataFrame* df = *i++;
702 696
703 { 697 {
704 InSequence s; 698 InSequence s;
705 EXPECT_CALL(*spdy_framer_visitor_, 699 EXPECT_CALL(*spdy_framer_visitor_, OnDataFrameHeader(stream_id, _, false));
706 OnDataFrameHeader(stream_id, _, false));
707 EXPECT_CALL(*spdy_framer_visitor_, 700 EXPECT_CALL(*spdy_framer_visitor_,
708 OnStreamFrameData(stream_id, _, _, false)) 701 OnStreamFrameData(stream_id, _, _, false))
709 .WillOnce(DoAll(SaveArg<1>(&actual_data), SaveArg<2>(&actual_size))); 702 .WillOnce(DoAll(SaveArg<1>(&actual_data), SaveArg<2>(&actual_size)));
710 } 703 }
711 704
712 spdy_framer_->ProcessInput(df->data, df->size); 705 spdy_framer_->ProcessInput(df->data, df->size);
713 ASSERT_EQ(1, spdy_framer_->frames_received()); 706 ASSERT_EQ(1, spdy_framer_->frames_received());
714 ASSERT_EQ("hello", StringPiece(actual_data, actual_size)); 707 ASSERT_EQ("hello", StringPiece(actual_data, actual_size));
715 } 708 }
716 709
717 TEST_P(SpdySMProxyTest, SendLongDataFrame) { 710 TEST_P(SpdySMProxyTest, SendLongDataFrame) {
718 uint32 stream_id = 133; 711 uint32 stream_id = 133;
719 SpdyDataFlags flags = DATA_FLAG_NONE; 712 SpdyDataFlags flags = DATA_FLAG_NONE;
720 const char* actual_data; 713 const char* actual_data;
721 size_t actual_size; 714 size_t actual_size;
722 715
723 std::string data = std::string(kSpdySegmentSize, 'a') + 716 std::string data = std::string(kSpdySegmentSize, 'a') +
724 std::string(kSpdySegmentSize, 'b') + "c"; 717 std::string(kSpdySegmentSize, 'b') + "c";
725 interface_->SendDataFrame(stream_id, data.data(), data.size(), flags, true); 718 interface_->SendDataFrame(stream_id, data.data(), data.size(), flags, true);
726 719
727 { 720 {
728 InSequence s; 721 InSequence s;
729 for (int i = 0; i < 3; ++i) { 722 for (int i = 0; i < 3; ++i) {
730 EXPECT_CALL(*spdy_framer_visitor_, 723 EXPECT_CALL(*spdy_framer_visitor_,
731 OnDataFrameHeader(stream_id, _, false)); 724 OnDataFrameHeader(stream_id, _, false));
732 EXPECT_CALL(*spdy_framer_visitor_, 725 EXPECT_CALL(*spdy_framer_visitor_,
733 OnStreamFrameData(stream_id, _, _, false)) 726 OnStreamFrameData(stream_id, _, _, false))
734 .WillOnce(DoAll(SaveArg<1>(&actual_data), 727 .WillOnce(DoAll(SaveArg<1>(&actual_data), SaveArg<2>(&actual_size)));
735 SaveArg<2>(&actual_size)));
736 } 728 }
737 } 729 }
738 730
739 ASSERT_EQ(3u, connection_->output_list()->size()); 731 ASSERT_EQ(3u, connection_->output_list()->size());
740 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin(); 732 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin();
741 DataFrame* df = *i++; 733 DataFrame* df = *i++;
742 spdy_framer_->ProcessInput(df->data, df->size); 734 spdy_framer_->ProcessInput(df->data, df->size);
743 ASSERT_EQ(std::string(kSpdySegmentSize, 'a'), 735 ASSERT_EQ(std::string(kSpdySegmentSize, 'a'),
744 StringPiece(actual_data, actual_size)); 736 StringPiece(actual_data, actual_size));
745 737
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
849 { 841 {
850 InSequence s; 842 InSequence s;
851 if (GetParam() < SPDY4) { 843 if (GetParam() < SPDY4) {
852 EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _)) 844 EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _))
853 .WillOnce(SaveArg<2>(&actual_header_block)); 845 .WillOnce(SaveArg<2>(&actual_header_block));
854 } else { 846 } else {
855 EXPECT_CALL(*spdy_framer_visitor_, OnHeaders(stream_id, false, _)) 847 EXPECT_CALL(*spdy_framer_visitor_, OnHeaders(stream_id, false, _))
856 .WillOnce(SaveArg<2>(&actual_header_block)); 848 .WillOnce(SaveArg<2>(&actual_header_block));
857 } 849 }
858 EXPECT_CALL(checkpoint, Call(0)); 850 EXPECT_CALL(checkpoint, Call(0));
851 EXPECT_CALL(*spdy_framer_visitor_, OnDataFrameHeader(stream_id, _, true));
859 EXPECT_CALL(*spdy_framer_visitor_, 852 EXPECT_CALL(*spdy_framer_visitor_,
860 OnDataFrameHeader(stream_id, _, true)); 853 OnStreamFrameData(stream_id, _, _, false))
861 EXPECT_CALL(*spdy_framer_visitor_, 854 .Times(1)
862 OnStreamFrameData(stream_id, _, _, false)).Times(1) 855 .WillOnce(DoAll(SaveArg<1>(&actual_data), SaveArg<2>(&actual_size)));
863 .WillOnce(DoAll(SaveArg<1>(&actual_data),
864 SaveArg<2>(&actual_size)));
865 EXPECT_CALL(*spdy_framer_visitor_, 856 EXPECT_CALL(*spdy_framer_visitor_,
866 OnStreamFrameData(stream_id, NULL, 0, true)).Times(1); 857 OnStreamFrameData(stream_id, NULL, 0, true)).Times(1);
867 } 858 }
868 859
869 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin(); 860 std::list<DataFrame*>::const_iterator i = connection_->output_list()->begin();
870 DataFrame* df = *i++; 861 DataFrame* df = *i++;
871 spdy_framer_->ProcessInput(df->data, df->size); 862 spdy_framer_->ProcessInput(df->data, df->size);
872 checkpoint.Call(0); 863 checkpoint.Call(0);
873 df = *i++; 864 df = *i++;
874 spdy_framer_->ProcessInput(df->data, df->size); 865 spdy_framer_->ProcessInput(df->data, df->size);
875 866
876 ASSERT_EQ(2, spdy_framer_->frames_received()); 867 ASSERT_EQ(2, spdy_framer_->frames_received());
877 ASSERT_EQ(2u, actual_header_block.size()); 868 ASSERT_EQ(2u, actual_header_block.size());
878 ASSERT_EQ("404 Not Found", actual_header_block["status"]); 869 ASSERT_EQ("404 Not Found", actual_header_block["status"]);
879 ASSERT_EQ("HTTP/1.1", actual_header_block["version"]); 870 ASSERT_EQ("HTTP/1.1", actual_header_block["version"]);
880 ASSERT_EQ("wtf?", StringPiece(actual_data, actual_size)); 871 ASSERT_EQ("wtf?", StringPiece(actual_data, actual_size));
881 } 872 }
882 873
883 } // namespace 874 } // namespace
884 875
885 } // namespace net 876 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698