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

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

Issue 2801603003: Add SpdyString alias for std::string in net/spdy. (Closed)
Patch Set: Created 3 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
« no previous file with comments | « net/spdy/spdy_http_stream.cc ('k') | net/spdy/spdy_http_utils.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 "net/spdy/spdy_http_stream.h" 5 #include "net/spdy/spdy_http_stream.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <string>
11 10
12 #include "base/run_loop.h" 11 #include "base/run_loop.h"
13 #include "base/stl_util.h" 12 #include "base/stl_util.h"
14 #include "base/threading/thread_task_runner_handle.h" 13 #include "base/threading/thread_task_runner_handle.h"
15 #include "crypto/ec_private_key.h" 14 #include "crypto/ec_private_key.h"
16 #include "crypto/ec_signature_creator.h" 15 #include "crypto/ec_signature_creator.h"
17 #include "crypto/signature_creator.h" 16 #include "crypto/signature_creator.h"
18 #include "net/base/chunked_upload_data_stream.h" 17 #include "net/base/chunked_upload_data_stream.h"
19 #include "net/base/load_timing_info.h" 18 #include "net/base/load_timing_info.h"
20 #include "net/base/load_timing_info_test_util.h" 19 #include "net/base/load_timing_info_test_util.h"
21 #include "net/base/test_completion_callback.h" 20 #include "net/base/test_completion_callback.h"
22 #include "net/cert/asn1_util.h" 21 #include "net/cert/asn1_util.h"
23 #include "net/http/http_request_info.h" 22 #include "net/http/http_request_info.h"
24 #include "net/http/http_response_headers.h" 23 #include "net/http/http_response_headers.h"
25 #include "net/http/http_response_info.h" 24 #include "net/http/http_response_info.h"
26 #include "net/log/net_log_with_source.h" 25 #include "net/log/net_log_with_source.h"
27 #include "net/log/test_net_log.h" 26 #include "net/log/test_net_log.h"
28 #include "net/socket/socket_test_util.h" 27 #include "net/socket/socket_test_util.h"
28 #include "net/spdy/platform/api/spdy_string.h"
29 #include "net/spdy/spdy_http_utils.h" 29 #include "net/spdy/spdy_http_utils.h"
30 #include "net/spdy/spdy_session.h" 30 #include "net/spdy/spdy_session.h"
31 #include "net/spdy/spdy_test_util_common.h" 31 #include "net/spdy/spdy_test_util_common.h"
32 #include "net/ssl/default_channel_id_store.h" 32 #include "net/ssl/default_channel_id_store.h"
33 #include "net/test/cert_test_util.h" 33 #include "net/test/cert_test_util.h"
34 #include "net/test/gtest_util.h" 34 #include "net/test/gtest_util.h"
35 #include "net/test/test_data_directory.h" 35 #include "net/test/test_data_directory.h"
36 #include "testing/gmock/include/gmock/gmock.h" 36 #include "testing/gmock/include/gmock/gmock.h"
37 #include "testing/gtest/include/gtest/gtest.h" 37 #include "testing/gtest/include/gtest/gtest.h"
38 38
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 154
155 ssl_.cert = ImportCertFromFile(GetTestCertsDirectory(), "spdy_pooling.pem"); 155 ssl_.cert = ImportCertFromFile(GetTestCertsDirectory(), "spdy_pooling.pem");
156 ASSERT_TRUE(ssl_.cert); 156 ASSERT_TRUE(ssl_.cert);
157 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_); 157 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_);
158 158
159 http_session_ = SpdySessionDependencies::SpdyCreateSession(&session_deps_); 159 http_session_ = SpdySessionDependencies::SpdyCreateSession(&session_deps_);
160 session_ = 160 session_ =
161 CreateSecureSpdySession(http_session_.get(), key_, NetLogWithSource()); 161 CreateSecureSpdySession(http_session_.get(), key_, NetLogWithSource());
162 } 162 }
163 163
164 void TestSendCredentials( 164 void TestSendCredentials(ChannelIDService* channel_id_service,
165 ChannelIDService* channel_id_service, 165 const SpdyString& cert,
166 const std::string& cert, 166 const SpdyString& proof);
167 const std::string& proof);
168 167
169 SpdyTestUtil spdy_util_; 168 SpdyTestUtil spdy_util_;
170 TestNetLog net_log_; 169 TestNetLog net_log_;
171 SpdySessionDependencies session_deps_; 170 SpdySessionDependencies session_deps_;
172 const GURL url_; 171 const GURL url_;
173 const HostPortPair host_port_pair_; 172 const HostPortPair host_port_pair_;
174 const SpdySessionKey key_; 173 const SpdySessionKey key_;
175 std::unique_ptr<SequencedSocketData> sequenced_data_; 174 std::unique_ptr<SequencedSocketData> sequenced_data_;
176 std::unique_ptr<HttpNetworkSession> http_session_; 175 std::unique_ptr<HttpNetworkSession> http_session_;
177 base::WeakPtr<SpdySession> session_; 176 base::WeakPtr<SpdySession> session_;
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after
584 http_stream->GetTotalReceivedBytes()); 583 http_stream->GetTotalReceivedBytes());
585 584
586 // Check response headers. 585 // Check response headers.
587 ASSERT_THAT(http_stream->ReadResponseHeaders(callback.callback()), IsOk()); 586 ASSERT_THAT(http_stream->ReadResponseHeaders(callback.callback()), IsOk());
588 587
589 // Check |chunk1| response. 588 // Check |chunk1| response.
590 scoped_refptr<IOBuffer> buf1(new IOBuffer(kUploadDataSize)); 589 scoped_refptr<IOBuffer> buf1(new IOBuffer(kUploadDataSize));
591 ASSERT_EQ(kUploadDataSize, 590 ASSERT_EQ(kUploadDataSize,
592 http_stream->ReadResponseBody( 591 http_stream->ReadResponseBody(
593 buf1.get(), kUploadDataSize, callback.callback())); 592 buf1.get(), kUploadDataSize, callback.callback()));
594 EXPECT_EQ(kUploadData, std::string(buf1->data(), kUploadDataSize)); 593 EXPECT_EQ(kUploadData, SpdyString(buf1->data(), kUploadDataSize));
595 594
596 // Check |chunk2| response. 595 // Check |chunk2| response.
597 scoped_refptr<IOBuffer> buf2(new IOBuffer(kUploadData1Size)); 596 scoped_refptr<IOBuffer> buf2(new IOBuffer(kUploadData1Size));
598 ASSERT_EQ(kUploadData1Size, 597 ASSERT_EQ(kUploadData1Size,
599 http_stream->ReadResponseBody( 598 http_stream->ReadResponseBody(
600 buf2.get(), kUploadData1Size, callback.callback())); 599 buf2.get(), kUploadData1Size, callback.callback()));
601 EXPECT_EQ(kUploadData1, std::string(buf2->data(), kUploadData1Size)); 600 EXPECT_EQ(kUploadData1, SpdyString(buf2->data(), kUploadData1Size));
602 601
603 // Check |chunk3| response. 602 // Check |chunk3| response.
604 scoped_refptr<IOBuffer> buf3(new IOBuffer(kUploadDataSize)); 603 scoped_refptr<IOBuffer> buf3(new IOBuffer(kUploadDataSize));
605 ASSERT_EQ(kUploadDataSize, 604 ASSERT_EQ(kUploadDataSize,
606 http_stream->ReadResponseBody( 605 http_stream->ReadResponseBody(
607 buf3.get(), kUploadDataSize, callback.callback())); 606 buf3.get(), kUploadDataSize, callback.callback()));
608 EXPECT_EQ(kUploadData, std::string(buf3->data(), kUploadDataSize)); 607 EXPECT_EQ(kUploadData, SpdyString(buf3->data(), kUploadDataSize));
609 608
610 ASSERT_TRUE(response.headers.get()); 609 ASSERT_TRUE(response.headers.get());
611 ASSERT_EQ(200, response.headers->response_code()); 610 ASSERT_EQ(200, response.headers->response_code());
612 } 611 }
613 612
614 // Test that the SpdyStream state machine can handle sending a final empty data 613 // Test that the SpdyStream state machine can handle sending a final empty data
615 // frame when uploading a chunked data stream. 614 // frame when uploading a chunked data stream.
616 TEST_F(SpdyHttpStreamTest, DelayedSendChunkedPostWithEmptyFinalDataFrame) { 615 TEST_F(SpdyHttpStreamTest, DelayedSendChunkedPostWithEmptyFinalDataFrame) {
617 SpdySerializedFrame req(spdy_util_.ConstructChunkedSpdyPost(nullptr, 0)); 616 SpdySerializedFrame req(spdy_util_.ConstructChunkedSpdyPost(nullptr, 0));
618 SpdySerializedFrame chunk1(spdy_util_.ConstructSpdyDataFrame(1, false)); 617 SpdySerializedFrame chunk1(spdy_util_.ConstructSpdyDataFrame(1, false));
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
680 EXPECT_EQ(static_cast<int64_t>(req.size() + chunk1.size() + chunk2.size()), 679 EXPECT_EQ(static_cast<int64_t>(req.size() + chunk1.size() + chunk2.size()),
681 http_stream->GetTotalSentBytes()); 680 http_stream->GetTotalSentBytes());
682 EXPECT_EQ(static_cast<int64_t>(resp.size() + chunk1.size() + chunk2.size()), 681 EXPECT_EQ(static_cast<int64_t>(resp.size() + chunk1.size() + chunk2.size()),
683 http_stream->GetTotalReceivedBytes()); 682 http_stream->GetTotalReceivedBytes());
684 683
685 // Check |chunk1| response. 684 // Check |chunk1| response.
686 scoped_refptr<IOBuffer> buf1(new IOBuffer(kUploadDataSize)); 685 scoped_refptr<IOBuffer> buf1(new IOBuffer(kUploadDataSize));
687 ASSERT_EQ(kUploadDataSize, 686 ASSERT_EQ(kUploadDataSize,
688 http_stream->ReadResponseBody( 687 http_stream->ReadResponseBody(
689 buf1.get(), kUploadDataSize, callback.callback())); 688 buf1.get(), kUploadDataSize, callback.callback()));
690 EXPECT_EQ(kUploadData, std::string(buf1->data(), kUploadDataSize)); 689 EXPECT_EQ(kUploadData, SpdyString(buf1->data(), kUploadDataSize));
691 690
692 // Check |chunk2| response. 691 // Check |chunk2| response.
693 ASSERT_EQ(0, 692 ASSERT_EQ(0,
694 http_stream->ReadResponseBody( 693 http_stream->ReadResponseBody(
695 buf1.get(), kUploadDataSize, callback.callback())); 694 buf1.get(), kUploadDataSize, callback.callback()));
696 695
697 ASSERT_TRUE(response.headers.get()); 696 ASSERT_TRUE(response.headers.get());
698 ASSERT_EQ(200, response.headers->response_code()); 697 ASSERT_EQ(200, response.headers->response_code());
699 } 698 }
700 699
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
895 http_stream->GetTotalReceivedBytes()); 894 http_stream->GetTotalReceivedBytes());
896 895
897 // Check response headers. 896 // Check response headers.
898 ASSERT_THAT(http_stream->ReadResponseHeaders(callback.callback()), IsOk()); 897 ASSERT_THAT(http_stream->ReadResponseHeaders(callback.callback()), IsOk());
899 898
900 // Check |chunk1| response. 899 // Check |chunk1| response.
901 scoped_refptr<IOBuffer> buf1(new IOBuffer(kUploadDataSize)); 900 scoped_refptr<IOBuffer> buf1(new IOBuffer(kUploadDataSize));
902 ASSERT_EQ(kUploadDataSize, 901 ASSERT_EQ(kUploadDataSize,
903 http_stream->ReadResponseBody( 902 http_stream->ReadResponseBody(
904 buf1.get(), kUploadDataSize, callback.callback())); 903 buf1.get(), kUploadDataSize, callback.callback()));
905 EXPECT_EQ(kUploadData, std::string(buf1->data(), kUploadDataSize)); 904 EXPECT_EQ(kUploadData, SpdyString(buf1->data(), kUploadDataSize));
906 905
907 ASSERT_TRUE(response.headers.get()); 906 ASSERT_TRUE(response.headers.get());
908 ASSERT_EQ(200, response.headers->response_code()); 907 ASSERT_EQ(200, response.headers->response_code());
909 } 908 }
910 909
911 TEST_F(SpdyHttpStreamTest, DataReadErrorSynchronous) { 910 TEST_F(SpdyHttpStreamTest, DataReadErrorSynchronous) {
912 SpdySerializedFrame req(spdy_util_.ConstructChunkedSpdyPost(nullptr, 0)); 911 SpdySerializedFrame req(spdy_util_.ConstructChunkedSpdyPost(nullptr, 0));
913 912
914 // Server receives ERROR_CODE_INTERNAL_ERROR on client's internal failure. 913 // Server receives ERROR_CODE_INTERNAL_ERROR on client's internal failure.
915 // The failure is a reading error in this case caused by 914 // The failure is a reading error in this case caused by
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
1062 1061
1063 EXPECT_FALSE(HasSpdySession(http_session_->spdy_session_pool(), key_)); 1062 EXPECT_FALSE(HasSpdySession(http_session_->spdy_session_pool(), key_));
1064 } 1063 }
1065 1064
1066 // TODO(willchan): Write a longer test for SpdyStream that exercises all 1065 // TODO(willchan): Write a longer test for SpdyStream that exercises all
1067 // methods. 1066 // methods.
1068 1067
1069 } // namespace test 1068 } // namespace test
1070 1069
1071 } // namespace net 1070 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_http_stream.cc ('k') | net/spdy/spdy_http_utils.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698