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

Side by Side Diff: net/quic/quic_chromium_client_stream_test.cc

Issue 1784903003: Remove FEC from send path. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@114770052
Patch Set: Restore accidentally removed OnRttChanged call Created 4 years, 9 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
« no previous file with comments | « net/quic/quic_chromium_client_session_test.cc ('k') | net/quic/quic_connection.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 (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/quic/quic_chromium_client_stream.h" 5 #include "net/quic/quic_chromium_client_stream.h"
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "net/base/net_errors.h" 8 #include "net/base/net_errors.h"
9 #include "net/base/test_completion_callback.h" 9 #include "net/base/test_completion_callback.h"
10 #include "net/quic/quic_chromium_client_session.h" 10 #include "net/quic/quic_chromium_client_session.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 ~MockQuicClientSessionBase() override; 53 ~MockQuicClientSessionBase() override;
54 54
55 QuicCryptoStream* GetCryptoStream() override { return crypto_stream_.get(); } 55 QuicCryptoStream* GetCryptoStream() override { return crypto_stream_.get(); }
56 56
57 // From QuicSession. 57 // From QuicSession.
58 MOCK_METHOD2(OnConnectionClosed, 58 MOCK_METHOD2(OnConnectionClosed,
59 void(QuicErrorCode error, ConnectionCloseSource source)); 59 void(QuicErrorCode error, ConnectionCloseSource source));
60 MOCK_METHOD1(CreateIncomingDynamicStream, QuicSpdyStream*(QuicStreamId id)); 60 MOCK_METHOD1(CreateIncomingDynamicStream, QuicSpdyStream*(QuicStreamId id));
61 MOCK_METHOD1(CreateOutgoingDynamicStream, 61 MOCK_METHOD1(CreateOutgoingDynamicStream,
62 QuicChromiumClientStream*(SpdyPriority priority)); 62 QuicChromiumClientStream*(SpdyPriority priority));
63 MOCK_METHOD6(WritevData, 63 MOCK_METHOD5(WritevData,
64 QuicConsumedData(QuicStreamId id, 64 QuicConsumedData(QuicStreamId id,
65 QuicIOVector data, 65 QuicIOVector data,
66 QuicStreamOffset offset, 66 QuicStreamOffset offset,
67 bool fin, 67 bool fin,
68 FecProtection fec_protection,
69 QuicAckListenerInterface*)); 68 QuicAckListenerInterface*));
70 MOCK_METHOD3(SendRstStream, 69 MOCK_METHOD3(SendRstStream,
71 void(QuicStreamId stream_id, 70 void(QuicStreamId stream_id,
72 QuicRstStreamErrorCode error, 71 QuicRstStreamErrorCode error,
73 QuicStreamOffset bytes_written)); 72 QuicStreamOffset bytes_written));
74 73
75 MOCK_METHOD2(OnStreamHeaders, 74 MOCK_METHOD2(OnStreamHeaders,
76 void(QuicStreamId stream_id, base::StringPiece headers_data)); 75 void(QuicStreamId stream_id, base::StringPiece headers_data));
77 MOCK_METHOD2(OnStreamHeadersPriority, 76 MOCK_METHOD2(OnStreamHeadersPriority,
78 void(QuicStreamId stream_id, SpdyPriority priority)); 77 void(QuicStreamId stream_id, SpdyPriority priority));
(...skipping 16 matching lines...) Expand all
95 94
96 using QuicSession::ActivateStream; 95 using QuicSession::ActivateStream;
97 96
98 // Returns a QuicConsumedData that indicates all of |data| (and |fin| if set) 97 // Returns a QuicConsumedData that indicates all of |data| (and |fin| if set)
99 // has been consumed. 98 // has been consumed.
100 static QuicConsumedData ConsumeAllData( 99 static QuicConsumedData ConsumeAllData(
101 QuicStreamId id, 100 QuicStreamId id,
102 const QuicIOVector& data, 101 const QuicIOVector& data,
103 QuicStreamOffset offset, 102 QuicStreamOffset offset,
104 bool fin, 103 bool fin,
105 FecProtection fec_protection,
106 QuicAckListenerInterface* ack_notifier_delegate); 104 QuicAckListenerInterface* ack_notifier_delegate);
107 105
108 void OnProofValid( 106 void OnProofValid(
109 const QuicCryptoClientConfig::CachedState& cached) override {} 107 const QuicCryptoClientConfig::CachedState& cached) override {}
110 void OnProofVerifyDetailsAvailable( 108 void OnProofVerifyDetailsAvailable(
111 const ProofVerifyDetails& verify_details) override {} 109 const ProofVerifyDetails& verify_details) override {}
112 bool IsAuthorized(const std::string& hostname) override { return true; } 110 bool IsAuthorized(const std::string& hostname) override { return true; }
113 111
114 private: 112 private:
115 scoped_ptr<QuicCryptoStream> crypto_stream_; 113 scoped_ptr<QuicCryptoStream> crypto_stream_;
116 114
117 DISALLOW_COPY_AND_ASSIGN(MockQuicClientSessionBase); 115 DISALLOW_COPY_AND_ASSIGN(MockQuicClientSessionBase);
118 }; 116 };
119 117
120 MockQuicClientSessionBase::MockQuicClientSessionBase( 118 MockQuicClientSessionBase::MockQuicClientSessionBase(
121 QuicConnection* connection, 119 QuicConnection* connection,
122 QuicClientPushPromiseIndex* push_promise_index) 120 QuicClientPushPromiseIndex* push_promise_index)
123 : QuicClientSessionBase(connection, 121 : QuicClientSessionBase(connection,
124 push_promise_index, 122 push_promise_index,
125 DefaultQuicConfig()) { 123 DefaultQuicConfig()) {
126 crypto_stream_.reset(new QuicCryptoStream(this)); 124 crypto_stream_.reset(new QuicCryptoStream(this));
127 Initialize(); 125 Initialize();
128 ON_CALL(*this, WritevData(_, _, _, _, _, _)) 126 ON_CALL(*this, WritevData(_, _, _, _, _))
129 .WillByDefault(testing::Return(QuicConsumedData(0, false))); 127 .WillByDefault(testing::Return(QuicConsumedData(0, false)));
130 } 128 }
131 129
132 MockQuicClientSessionBase::~MockQuicClientSessionBase() {} 130 MockQuicClientSessionBase::~MockQuicClientSessionBase() {}
133 131
134 class QuicChromiumClientStreamTest 132 class QuicChromiumClientStreamTest
135 : public ::testing::TestWithParam<QuicVersion> { 133 : public ::testing::TestWithParam<QuicVersion> {
136 public: 134 public:
137 QuicChromiumClientStreamTest() 135 QuicChromiumClientStreamTest()
138 : crypto_config_(CryptoTestUtils::ProofVerifierForTesting()), 136 : crypto_config_(CryptoTestUtils::ProofVerifierForTesting()),
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 EXPECT_CALL(delegate_, OnClose(QUIC_NO_ERROR)); 326 EXPECT_CALL(delegate_, OnClose(QUIC_NO_ERROR));
329 } 327 }
330 328
331 TEST_P(QuicChromiumClientStreamTest, WriteStreamData) { 329 TEST_P(QuicChromiumClientStreamTest, WriteStreamData) {
332 EXPECT_CALL(delegate_, OnClose(QUIC_NO_ERROR)); 330 EXPECT_CALL(delegate_, OnClose(QUIC_NO_ERROR));
333 331
334 const char kData1[] = "hello world"; 332 const char kData1[] = "hello world";
335 const size_t kDataLen = arraysize(kData1); 333 const size_t kDataLen = arraysize(kData1);
336 334
337 // All data written. 335 // All data written.
338 EXPECT_CALL(session_, WritevData(stream_->id(), _, _, _, _, _)) 336 EXPECT_CALL(session_, WritevData(stream_->id(), _, _, _, _))
339 .WillOnce(Return(QuicConsumedData(kDataLen, true))); 337 .WillOnce(Return(QuicConsumedData(kDataLen, true)));
340 TestCompletionCallback callback; 338 TestCompletionCallback callback;
341 EXPECT_EQ(OK, stream_->WriteStreamData(base::StringPiece(kData1, kDataLen), 339 EXPECT_EQ(OK, stream_->WriteStreamData(base::StringPiece(kData1, kDataLen),
342 true, callback.callback())); 340 true, callback.callback()));
343 } 341 }
344 342
345 TEST_P(QuicChromiumClientStreamTest, WriteStreamDataAsync) { 343 TEST_P(QuicChromiumClientStreamTest, WriteStreamDataAsync) {
346 EXPECT_CALL(delegate_, HasSendHeadersComplete()).Times(AnyNumber()); 344 EXPECT_CALL(delegate_, HasSendHeadersComplete()).Times(AnyNumber());
347 EXPECT_CALL(delegate_, OnClose(QUIC_NO_ERROR)); 345 EXPECT_CALL(delegate_, OnClose(QUIC_NO_ERROR));
348 346
349 const char kData1[] = "hello world"; 347 const char kData1[] = "hello world";
350 const size_t kDataLen = arraysize(kData1); 348 const size_t kDataLen = arraysize(kData1);
351 349
352 // No data written. 350 // No data written.
353 EXPECT_CALL(session_, WritevData(stream_->id(), _, _, _, _, _)) 351 EXPECT_CALL(session_, WritevData(stream_->id(), _, _, _, _))
354 .WillOnce(Return(QuicConsumedData(0, false))); 352 .WillOnce(Return(QuicConsumedData(0, false)));
355 TestCompletionCallback callback; 353 TestCompletionCallback callback;
356 EXPECT_EQ(ERR_IO_PENDING, 354 EXPECT_EQ(ERR_IO_PENDING,
357 stream_->WriteStreamData(base::StringPiece(kData1, kDataLen), true, 355 stream_->WriteStreamData(base::StringPiece(kData1, kDataLen), true,
358 callback.callback())); 356 callback.callback()));
359 ASSERT_FALSE(callback.have_result()); 357 ASSERT_FALSE(callback.have_result());
360 358
361 // All data written. 359 // All data written.
362 EXPECT_CALL(session_, WritevData(stream_->id(), _, _, _, _, _)) 360 EXPECT_CALL(session_, WritevData(stream_->id(), _, _, _, _))
363 .WillOnce(Return(QuicConsumedData(kDataLen, true))); 361 .WillOnce(Return(QuicConsumedData(kDataLen, true)));
364 stream_->OnCanWrite(); 362 stream_->OnCanWrite();
365 ASSERT_TRUE(callback.have_result()); 363 ASSERT_TRUE(callback.have_result());
366 EXPECT_EQ(OK, callback.WaitForResult()); 364 EXPECT_EQ(OK, callback.WaitForResult());
367 } 365 }
368 366
369 TEST_P(QuicChromiumClientStreamTest, HeadersBeforeDelegate) { 367 TEST_P(QuicChromiumClientStreamTest, HeadersBeforeDelegate) {
370 // We don't use stream_ because we want an incoming server push 368 // We don't use stream_ because we want an incoming server push
371 // stream. 369 // stream.
372 QuicChromiumClientStream* stream = new QuicChromiumClientStream( 370 QuicChromiumClientStream* stream = new QuicChromiumClientStream(
(...skipping 12 matching lines...) Expand all
385 stream->SetDelegate(&delegate_); 383 stream->SetDelegate(&delegate_);
386 base::MessageLoop::current()->RunUntilIdle(); 384 base::MessageLoop::current()->RunUntilIdle();
387 385
388 // Times(2) because OnClose will be called for stream and stream_. 386 // Times(2) because OnClose will be called for stream and stream_.
389 EXPECT_CALL(delegate_, OnClose(QUIC_NO_ERROR)).Times(2); 387 EXPECT_CALL(delegate_, OnClose(QUIC_NO_ERROR)).Times(2);
390 } 388 }
391 389
392 } // namespace 390 } // namespace
393 } // namespace test 391 } // namespace test
394 } // namespace net 392 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_chromium_client_session_test.cc ('k') | net/quic/quic_connection.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698