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

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

Issue 2111953002: Minor test cleanup. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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_stream_factory_test.cc ('k') | net/spdy/spdy_http_stream_unittest.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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/spdy/bidirectional_stream_spdy_impl.h" 5 #include "net/spdy/bidirectional_stream_spdy_impl.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <string> 8 #include <string>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 DISALLOW_COPY_AND_ASSIGN(TestDelegateBase); 197 DISALLOW_COPY_AND_ASSIGN(TestDelegateBase);
198 }; 198 };
199 199
200 } // namespace 200 } // namespace
201 201
202 class BidirectionalStreamSpdyImplTest : public testing::Test { 202 class BidirectionalStreamSpdyImplTest : public testing::Test {
203 public: 203 public:
204 BidirectionalStreamSpdyImplTest() 204 BidirectionalStreamSpdyImplTest()
205 : spdy_util_(kProtoHTTP2, true), 205 : spdy_util_(kProtoHTTP2, true),
206 session_deps_(kProtoHTTP2), 206 session_deps_(kProtoHTTP2),
207 default_url_(kDefaultUrl),
208 host_port_pair_(HostPortPair::FromURL(default_url_)),
209 key_(host_port_pair_, ProxyServer::Direct(), PRIVACY_MODE_DISABLED),
207 ssl_data_(SSLSocketDataProvider(ASYNC, OK)) { 210 ssl_data_(SSLSocketDataProvider(ASYNC, OK)) {
208 ssl_data_.SetNextProto(kProtoHTTP2); 211 ssl_data_.SetNextProto(kProtoHTTP2);
209 ssl_data_.cert = ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem"); 212 ssl_data_.cert = ImportCertFromFile(GetTestCertsDirectory(), "ok_cert.pem");
210 } 213 }
211 214
212 protected: 215 protected:
213 void TearDown() override { 216 void TearDown() override {
214 if (sequenced_data_) { 217 if (sequenced_data_) {
215 EXPECT_TRUE(sequenced_data_->AllReadDataConsumed()); 218 EXPECT_TRUE(sequenced_data_->AllReadDataConsumed());
216 EXPECT_TRUE(sequenced_data_->AllWriteDataConsumed()); 219 EXPECT_TRUE(sequenced_data_->AllWriteDataConsumed());
217 } 220 }
218 } 221 }
219 222
220 // Initializes the session using SequencedSocketData. 223 // Initializes the session using SequencedSocketData.
221 void InitSession(MockRead* reads, 224 void InitSession(MockRead* reads,
222 size_t reads_count, 225 size_t reads_count,
223 MockWrite* writes, 226 MockWrite* writes,
224 size_t writes_count, 227 size_t writes_count) {
225 const SpdySessionKey& key) {
226 ASSERT_TRUE(ssl_data_.cert.get()); 228 ASSERT_TRUE(ssl_data_.cert.get());
227 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_data_); 229 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_data_);
228 sequenced_data_.reset( 230 sequenced_data_.reset(
229 new SequencedSocketData(reads, reads_count, writes, writes_count)); 231 new SequencedSocketData(reads, reads_count, writes, writes_count));
230 session_deps_.socket_factory->AddSocketDataProvider(sequenced_data_.get()); 232 session_deps_.socket_factory->AddSocketDataProvider(sequenced_data_.get());
231 session_deps_.net_log = net_log_.bound().net_log(); 233 session_deps_.net_log = net_log_.bound().net_log();
232 http_session_ = SpdySessionDependencies::SpdyCreateSession(&session_deps_); 234 http_session_ = SpdySessionDependencies::SpdyCreateSession(&session_deps_);
233 session_ = 235 session_ =
234 CreateSecureSpdySession(http_session_.get(), key, net_log_.bound()); 236 CreateSecureSpdySession(http_session_.get(), key_, net_log_.bound());
235 } 237 }
236 238
237 BoundTestNetLog net_log_; 239 BoundTestNetLog net_log_;
238 SpdyTestUtil spdy_util_; 240 SpdyTestUtil spdy_util_;
239 SpdySessionDependencies session_deps_; 241 SpdySessionDependencies session_deps_;
242 const GURL default_url_;
243 const HostPortPair host_port_pair_;
244 const SpdySessionKey key_;
240 std::unique_ptr<SequencedSocketData> sequenced_data_; 245 std::unique_ptr<SequencedSocketData> sequenced_data_;
241 std::unique_ptr<HttpNetworkSession> http_session_; 246 std::unique_ptr<HttpNetworkSession> http_session_;
242 base::WeakPtr<SpdySession> session_; 247 base::WeakPtr<SpdySession> session_;
243 248
244 private: 249 private:
245 SSLSocketDataProvider ssl_data_; 250 SSLSocketDataProvider ssl_data_;
246 }; 251 };
247 252
248 TEST_F(BidirectionalStreamSpdyImplTest, SendDataAfterStreamFailed) { 253 TEST_F(BidirectionalStreamSpdyImplTest, SendDataAfterStreamFailed) {
249 std::unique_ptr<SpdySerializedFrame> req(spdy_util_.ConstructSpdyPost( 254 std::unique_ptr<SpdySerializedFrame> req(spdy_util_.ConstructSpdyPost(
250 "https://www.example.org", 1, kBodyDataSize * 3, LOW, nullptr, 0)); 255 kDefaultUrl, 1, kBodyDataSize * 3, LOW, nullptr, 0));
251 std::unique_ptr<SpdySerializedFrame> rst( 256 std::unique_ptr<SpdySerializedFrame> rst(
252 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR)); 257 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR));
253 258
254 MockWrite writes[] = { 259 MockWrite writes[] = {
255 CreateMockWrite(*req, 0), CreateMockWrite(*rst, 2), 260 CreateMockWrite(*req, 0), CreateMockWrite(*rst, 2),
256 }; 261 };
257 262
258 const char* const kExtraHeaders[] = {"X-UpperCase", "yes"}; 263 const char* const kExtraHeaders[] = {"X-UpperCase", "yes"};
259 std::unique_ptr<SpdySerializedFrame> resp( 264 std::unique_ptr<SpdySerializedFrame> resp(
260 spdy_util_.ConstructSpdyGetSynReply(kExtraHeaders, 1, 1)); 265 spdy_util_.ConstructSpdyGetSynReply(kExtraHeaders, 1, 1));
261 266
262 MockRead reads[] = { 267 MockRead reads[] = {
263 CreateMockRead(*resp, 1), MockRead(ASYNC, 0, 3), 268 CreateMockRead(*resp, 1), MockRead(ASYNC, 0, 3),
264 }; 269 };
265 270
266 HostPortPair host_port_pair("www.example.org", 443); 271 InitSession(reads, arraysize(reads), writes, arraysize(writes));
267 SpdySessionKey key(host_port_pair, ProxyServer::Direct(),
268 PRIVACY_MODE_DISABLED);
269 InitSession(reads, arraysize(reads), writes, arraysize(writes), key);
270 272
271 BidirectionalStreamRequestInfo request_info; 273 BidirectionalStreamRequestInfo request_info;
272 request_info.method = "POST"; 274 request_info.method = "POST";
273 request_info.url = GURL("https://www.example.org/"); 275 request_info.url = default_url_;
274 request_info.extra_headers.SetHeader(net::HttpRequestHeaders::kContentLength, 276 request_info.extra_headers.SetHeader(net::HttpRequestHeaders::kContentLength,
275 base::SizeTToString(kBodyDataSize * 3)); 277 base::SizeTToString(kBodyDataSize * 3));
276 278
277 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); 279 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
278 std::unique_ptr<TestDelegateBase> delegate( 280 std::unique_ptr<TestDelegateBase> delegate(
279 new TestDelegateBase(session_, read_buffer.get(), kReadBufferSize)); 281 new TestDelegateBase(session_, read_buffer.get(), kReadBufferSize));
280 delegate->SetRunUntilCompletion(true); 282 delegate->SetRunUntilCompletion(true);
281 delegate->Start(&request_info, net_log_.bound()); 283 delegate->Start(&request_info, net_log_.bound());
282 base::RunLoop().RunUntilIdle(); 284 base::RunLoop().RunUntilIdle();
283 285
(...skipping 12 matching lines...) Expand all
296 // because it is sent after SpdyStream::Delegate::OnClose is called. 298 // because it is sent after SpdyStream::Delegate::OnClose is called.
297 EXPECT_EQ(CountWriteBytes(writes, 1), delegate->GetTotalSentBytes()); 299 EXPECT_EQ(CountWriteBytes(writes, 1), delegate->GetTotalSentBytes());
298 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), 300 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)),
299 delegate->GetTotalReceivedBytes()); 301 delegate->GetTotalReceivedBytes());
300 } 302 }
301 303
302 TEST_F(BidirectionalStreamSpdyImplTest, SendDataAfterCancelStream) { 304 TEST_F(BidirectionalStreamSpdyImplTest, SendDataAfterCancelStream) {
303 BufferedSpdyFramer framer(spdy_util_.spdy_version()); 305 BufferedSpdyFramer framer(spdy_util_.spdy_version());
304 306
305 std::unique_ptr<SpdySerializedFrame> req(spdy_util_.ConstructSpdyPost( 307 std::unique_ptr<SpdySerializedFrame> req(spdy_util_.ConstructSpdyPost(
306 "https://www.example.org", 1, kBodyDataSize * 3, LOWEST, nullptr, 0)); 308 kDefaultUrl, 1, kBodyDataSize * 3, LOWEST, nullptr, 0));
307 std::unique_ptr<SpdySerializedFrame> data_frame( 309 std::unique_ptr<SpdySerializedFrame> data_frame(
308 framer.CreateDataFrame(1, kBodyData, kBodyDataSize, DATA_FLAG_NONE)); 310 framer.CreateDataFrame(1, kBodyData, kBodyDataSize, DATA_FLAG_NONE));
309 std::unique_ptr<SpdySerializedFrame> rst( 311 std::unique_ptr<SpdySerializedFrame> rst(
310 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); 312 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL));
311 313
312 MockWrite writes[] = { 314 MockWrite writes[] = {
313 CreateMockWrite(*req, 0), CreateMockWrite(*data_frame, 3), 315 CreateMockWrite(*req, 0), CreateMockWrite(*data_frame, 3),
314 CreateMockWrite(*rst, 5), 316 CreateMockWrite(*rst, 5),
315 }; 317 };
316 318
317 std::unique_ptr<SpdySerializedFrame> resp( 319 std::unique_ptr<SpdySerializedFrame> resp(
318 spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); 320 spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1));
319 std::unique_ptr<SpdySerializedFrame> response_body_frame( 321 std::unique_ptr<SpdySerializedFrame> response_body_frame(
320 spdy_util_.ConstructSpdyBodyFrame(1, false)); 322 spdy_util_.ConstructSpdyBodyFrame(1, false));
321 323
322 MockRead reads[] = { 324 MockRead reads[] = {
323 CreateMockRead(*resp, 1), 325 CreateMockRead(*resp, 1),
324 MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a pause. 326 MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a pause.
325 MockRead(ASYNC, ERR_IO_PENDING, 4), // Force a pause. 327 MockRead(ASYNC, ERR_IO_PENDING, 4), // Force a pause.
326 MockRead(ASYNC, 0, 6), 328 MockRead(ASYNC, 0, 6),
327 }; 329 };
328 330
329 HostPortPair host_port_pair("www.example.org", 443); 331 InitSession(reads, arraysize(reads), writes, arraysize(writes));
330 SpdySessionKey key(host_port_pair, ProxyServer::Direct(),
331 PRIVACY_MODE_DISABLED);
332 InitSession(reads, arraysize(reads), writes, arraysize(writes), key);
333 332
334 BidirectionalStreamRequestInfo request_info; 333 BidirectionalStreamRequestInfo request_info;
335 request_info.method = "POST"; 334 request_info.method = "POST";
336 request_info.url = GURL("https://www.example.org/"); 335 request_info.url = default_url_;
337 request_info.priority = LOWEST; 336 request_info.priority = LOWEST;
338 request_info.extra_headers.SetHeader(net::HttpRequestHeaders::kContentLength, 337 request_info.extra_headers.SetHeader(net::HttpRequestHeaders::kContentLength,
339 base::SizeTToString(kBodyDataSize * 3)); 338 base::SizeTToString(kBodyDataSize * 3));
340 339
341 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); 340 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
342 std::unique_ptr<TestDelegateBase> delegate( 341 std::unique_ptr<TestDelegateBase> delegate(
343 new TestDelegateBase(session_, read_buffer.get(), kReadBufferSize)); 342 new TestDelegateBase(session_, read_buffer.get(), kReadBufferSize));
344 delegate->set_do_not_start_read(true); 343 delegate->set_do_not_start_read(true);
345 delegate->Start(&request_info, net_log_.bound()); 344 delegate->Start(&request_info, net_log_.bound());
346 // Send the request and receive response headers. 345 // Send the request and receive response headers.
(...skipping 17 matching lines...) Expand all
364 EXPECT_FALSE(delegate->on_failed_called()); 363 EXPECT_FALSE(delegate->on_failed_called());
365 364
366 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); 365 EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
367 EXPECT_EQ(0, delegate->on_data_read_count()); 366 EXPECT_EQ(0, delegate->on_data_read_count());
368 EXPECT_EQ(kProtoHTTP2, delegate->GetProtocol()); 367 EXPECT_EQ(kProtoHTTP2, delegate->GetProtocol());
369 EXPECT_EQ(0, delegate->GetTotalSentBytes()); 368 EXPECT_EQ(0, delegate->GetTotalSentBytes());
370 EXPECT_EQ(0, delegate->GetTotalReceivedBytes()); 369 EXPECT_EQ(0, delegate->GetTotalReceivedBytes());
371 } 370 }
372 371
373 } // namespace net 372 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_stream_factory_test.cc ('k') | net/spdy/spdy_http_stream_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698