OLD | NEW |
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 <cmath> | 5 #include <cmath> |
6 #include <memory> | 6 #include <memory> |
7 #include <string> | 7 #include <string> |
8 #include <utility> | 8 #include <utility> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 2087 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2098 base::Bind(&SpdyNetworkTransactionTest::DeleteSessionCallback, | 2098 base::Bind(&SpdyNetworkTransactionTest::DeleteSessionCallback, |
2099 base::Unretained(&helper))); | 2099 base::Unretained(&helper))); |
2100 ASSERT_THAT(rv, IsError(ERR_IO_PENDING)); | 2100 ASSERT_THAT(rv, IsError(ERR_IO_PENDING)); |
2101 data.Resume(); | 2101 data.Resume(); |
2102 | 2102 |
2103 // Finish running rest of tasks. | 2103 // Finish running rest of tasks. |
2104 base::RunLoop().RunUntilIdle(); | 2104 base::RunLoop().RunUntilIdle(); |
2105 helper.VerifyDataConsumed(); | 2105 helper.VerifyDataConsumed(); |
2106 } | 2106 } |
2107 | 2107 |
| 2108 TEST_F(SpdyNetworkTransactionTest, TestRawHeaderSizeSuccessfullRequest) { |
| 2109 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); |
| 2110 headers["user-agent"] = ""; |
| 2111 headers["accept-encoding"] = "gzip, deflate"; |
| 2112 |
| 2113 SpdySerializedFrame req( |
| 2114 spdy_util_.ConstructSpdyHeaders(1, std::move(headers), LOWEST, true)); |
| 2115 MockWrite writes[] = { |
| 2116 CreateMockWrite(req, 0), |
| 2117 }; |
| 2118 |
| 2119 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 2120 |
| 2121 SpdySerializedFrame response_body_frame( |
| 2122 spdy_util_.ConstructSpdyDataFrame(1, "should not include", 18, true)); |
| 2123 |
| 2124 MockRead reads[] = { |
| 2125 CreateMockRead(resp, 1), CreateMockRead(response_body_frame, 2), |
| 2126 MockRead(ASYNC, 0, 0, 3) // EOF |
| 2127 }; |
| 2128 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| 2129 |
| 2130 TestDelegate d; |
| 2131 SpdyURLRequestContext spdy_url_request_context; |
| 2132 TestNetworkDelegate network_delegate_; |
| 2133 spdy_url_request_context.set_network_delegate(&network_delegate_); |
| 2134 SSLSocketDataProvider ssl_data(ASYNC, OK); |
| 2135 ssl_data.next_proto = kProtoHTTP2; |
| 2136 |
| 2137 std::unique_ptr<URLRequest> r(spdy_url_request_context.CreateRequest( |
| 2138 GURL(kDefaultUrl), DEFAULT_PRIORITY, &d)); |
| 2139 spdy_url_request_context.socket_factory().AddSSLSocketDataProvider(&ssl_data); |
| 2140 spdy_url_request_context.socket_factory().AddSocketDataProvider(&data); |
| 2141 |
| 2142 r->Start(); |
| 2143 base::RunLoop().Run(); |
| 2144 |
| 2145 EXPECT_EQ(33, r->GetTotalSentBytes()); |
| 2146 EXPECT_EQ(33, network_delegate_.total_network_bytes_sent()); |
| 2147 EXPECT_EQ(47, r->GetTotalReceivedBytes()); |
| 2148 EXPECT_EQ(20, r->raw_header_size()); |
| 2149 EXPECT_TRUE(data.AllReadDataConsumed()); |
| 2150 EXPECT_TRUE(data.AllWriteDataConsumed()); |
| 2151 } |
| 2152 |
| 2153 TEST_F(SpdyNetworkTransactionTest, |
| 2154 TestRawHeaderSizeSuccessfullPushHeadersFirst) { |
| 2155 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); |
| 2156 headers["user-agent"] = ""; |
| 2157 headers["accept-encoding"] = "gzip, deflate"; |
| 2158 |
| 2159 SpdySerializedFrame req( |
| 2160 spdy_util_.ConstructSpdyHeaders(1, std::move(headers), LOWEST, true)); |
| 2161 MockWrite writes[] = { |
| 2162 CreateMockWrite(req, 0), |
| 2163 }; |
| 2164 |
| 2165 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 2166 SpdySerializedFrame response_body_frame( |
| 2167 spdy_util_.ConstructSpdyDataFrame(1, "should not include", 18, true)); |
| 2168 |
| 2169 SpdyHeaderBlock push_headers; |
| 2170 spdy_util_.AddUrlToHeaderBlock(std::string(kDefaultUrl) + "b.dat", |
| 2171 &push_headers); |
| 2172 |
| 2173 SpdySerializedFrame push_init_frame( |
| 2174 spdy_util_.ConstructInitialSpdyPushFrame(std::move(push_headers), 2, 1)); |
| 2175 |
| 2176 SpdySerializedFrame push_headers_frame( |
| 2177 spdy_util_.ConstructSpdyPushHeaders(2, nullptr, 0)); |
| 2178 |
| 2179 SpdySerializedFrame push_body_frame(spdy_util_.ConstructSpdyDataFrame( |
| 2180 2, "should not include either", 25, false)); |
| 2181 MockRead reads[] = { |
| 2182 CreateMockRead(push_init_frame, 1), |
| 2183 CreateMockRead(push_headers_frame, 2), |
| 2184 CreateMockRead(push_body_frame, 3), |
| 2185 CreateMockRead(resp, 4), |
| 2186 CreateMockRead(response_body_frame, 5), |
| 2187 MockRead(ASYNC, 0, 6) // EOF |
| 2188 }; |
| 2189 |
| 2190 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| 2191 |
| 2192 TestDelegate d; |
| 2193 SpdyURLRequestContext spdy_url_request_context; |
| 2194 TestNetworkDelegate network_delegate_; |
| 2195 spdy_url_request_context.set_network_delegate(&network_delegate_); |
| 2196 SSLSocketDataProvider ssl_data(ASYNC, OK); |
| 2197 ssl_data.next_proto = kProtoHTTP2; |
| 2198 |
| 2199 std::unique_ptr<URLRequest> r(spdy_url_request_context.CreateRequest( |
| 2200 GURL(kDefaultUrl), DEFAULT_PRIORITY, &d)); |
| 2201 spdy_url_request_context.socket_factory().AddSSLSocketDataProvider(&ssl_data); |
| 2202 spdy_url_request_context.socket_factory().AddSocketDataProvider(&data); |
| 2203 |
| 2204 r->Start(); |
| 2205 base::RunLoop().Run(); |
| 2206 |
| 2207 EXPECT_EQ(33, r->GetTotalSentBytes()); |
| 2208 EXPECT_EQ(33, network_delegate_.total_network_bytes_sent()); |
| 2209 EXPECT_EQ(87, r->GetTotalReceivedBytes()); |
| 2210 // raw_header_size() will contain the size of the push promise frame |
| 2211 // initialization. |
| 2212 EXPECT_EQ(60, r->raw_header_size()); |
| 2213 EXPECT_TRUE(data.AllReadDataConsumed()); |
| 2214 EXPECT_TRUE(data.AllWriteDataConsumed()); |
| 2215 } |
| 2216 |
2108 // Send a spdy request to www.example.org that gets redirected to www.foo.com. | 2217 // Send a spdy request to www.example.org that gets redirected to www.foo.com. |
2109 TEST_F(SpdyNetworkTransactionTest, DISABLED_RedirectGetRequest) { | 2218 TEST_F(SpdyNetworkTransactionTest, DISABLED_RedirectGetRequest) { |
2110 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); | 2219 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); |
2111 headers["user-agent"] = ""; | 2220 headers["user-agent"] = ""; |
2112 headers["accept-encoding"] = "gzip, deflate"; | 2221 headers["accept-encoding"] = "gzip, deflate"; |
2113 | 2222 |
2114 // Setup writes/reads to www.example.org | 2223 // Setup writes/reads to www.example.org |
2115 SpdySerializedFrame req( | 2224 SpdySerializedFrame req( |
2116 spdy_util_.ConstructSpdyHeaders(1, std::move(headers), LOWEST, true)); | 2225 spdy_util_.ConstructSpdyHeaders(1, std::move(headers), LOWEST, true)); |
2117 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReplyRedirect(1)); | 2226 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReplyRedirect(1)); |
(...skipping 4106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6224 TEST_F(SpdyNetworkTransactionTLSUsageCheckTest, TLSCipherSuiteSucky) { | 6333 TEST_F(SpdyNetworkTransactionTLSUsageCheckTest, TLSCipherSuiteSucky) { |
6225 std::unique_ptr<SSLSocketDataProvider> ssl_provider( | 6334 std::unique_ptr<SSLSocketDataProvider> ssl_provider( |
6226 new SSLSocketDataProvider(ASYNC, OK)); | 6335 new SSLSocketDataProvider(ASYNC, OK)); |
6227 // Set to TLS_RSA_WITH_NULL_MD5 | 6336 // Set to TLS_RSA_WITH_NULL_MD5 |
6228 SSLConnectionStatusSetCipherSuite(0x1, &ssl_provider->connection_status); | 6337 SSLConnectionStatusSetCipherSuite(0x1, &ssl_provider->connection_status); |
6229 | 6338 |
6230 RunTLSUsageCheckTest(std::move(ssl_provider)); | 6339 RunTLSUsageCheckTest(std::move(ssl_provider)); |
6231 } | 6340 } |
6232 | 6341 |
6233 } // namespace net | 6342 } // namespace net |
OLD | NEW |