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 response_headers(CreateMockRead(resp, 1)); | |
2125 MockRead reads[] = { | |
2126 response_headers, CreateMockRead(response_body_frame, 2), | |
2127 MockRead(ASYNC, 0, 0, 3) // EOF | |
2128 }; | |
2129 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | |
2130 | |
2131 TestDelegate d; | |
Ryan Hamilton
2016/09/07 16:54:50
ditto
allada
2016/09/07 18:14:57
Done.
| |
2132 SpdyURLRequestContext spdy_url_request_context; | |
2133 TestNetworkDelegate network_delegate_; | |
2134 spdy_url_request_context.set_network_delegate(&network_delegate_); | |
2135 SSLSocketDataProvider ssl_data(ASYNC, OK); | |
2136 ssl_data.next_proto = kProtoHTTP2; | |
2137 | |
2138 std::unique_ptr<URLRequest> request(spdy_url_request_context.CreateRequest( | |
2139 GURL(kDefaultUrl), DEFAULT_PRIORITY, &d)); | |
2140 spdy_url_request_context.socket_factory().AddSSLSocketDataProvider(&ssl_data); | |
2141 spdy_url_request_context.socket_factory().AddSocketDataProvider(&data); | |
2142 | |
2143 request->Start(); | |
2144 base::RunLoop().Run(); | |
2145 | |
2146 EXPECT_GT(request->GetTotalSentBytes(), 0); | |
Ryan Hamilton
2016/09/07 16:54:50
ditto
allada
2016/09/07 18:14:57
Done.
| |
2147 EXPECT_GT(request->GetTotalReceivedBytes(), 0); | |
2148 EXPECT_EQ(network_delegate_.total_network_bytes_sent(), | |
2149 request->GetTotalSentBytes()); | |
2150 EXPECT_EQ(network_delegate_.total_network_bytes_received(), | |
2151 request->GetTotalReceivedBytes()); | |
2152 EXPECT_EQ(response_headers.data_len, request->raw_header_size()); | |
2153 EXPECT_TRUE(data.AllReadDataConsumed()); | |
2154 EXPECT_TRUE(data.AllWriteDataConsumed()); | |
2155 } | |
2156 | |
2157 TEST_F(SpdyNetworkTransactionTest, | |
2158 TestRawHeaderSizeSuccessfullPushHeadersFirst) { | |
2159 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); | |
2160 headers["user-agent"] = ""; | |
2161 headers["accept-encoding"] = "gzip, deflate"; | |
2162 | |
2163 SpdySerializedFrame req( | |
2164 spdy_util_.ConstructSpdyHeaders(1, std::move(headers), LOWEST, true)); | |
2165 MockWrite writes[] = { | |
2166 CreateMockWrite(req, 0), | |
2167 }; | |
2168 | |
2169 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); | |
2170 SpdySerializedFrame response_body_frame( | |
2171 spdy_util_.ConstructSpdyDataFrame(1, "should not include", 18, true)); | |
2172 | |
2173 SpdyHeaderBlock push_headers; | |
2174 spdy_util_.AddUrlToHeaderBlock(std::string(kDefaultUrl) + "b.dat", | |
2175 &push_headers); | |
2176 | |
2177 SpdySerializedFrame push_init_frame( | |
2178 spdy_util_.ConstructInitialSpdyPushFrame(std::move(push_headers), 2, 1)); | |
2179 | |
2180 SpdySerializedFrame push_headers_frame( | |
2181 spdy_util_.ConstructSpdyPushHeaders(2, nullptr, 0)); | |
2182 | |
2183 SpdySerializedFrame push_body_frame(spdy_util_.ConstructSpdyDataFrame( | |
2184 2, "should not include either", 25, false)); | |
2185 | |
2186 MockRead push_init_read(CreateMockRead(push_init_frame, 1)); | |
2187 MockRead response_headers(CreateMockRead(resp, 4)); | |
2188 // raw_header_size() will contain the size of the push promise frame | |
2189 // initialization. | |
2190 int expected_response_headers_size = | |
2191 response_headers.data_len + push_init_read.data_len; | |
2192 | |
2193 MockRead reads[] = { | |
2194 push_init_read, | |
2195 CreateMockRead(push_headers_frame, 2), | |
2196 CreateMockRead(push_body_frame, 3), | |
2197 response_headers, | |
2198 CreateMockRead(response_body_frame, 5), | |
2199 MockRead(ASYNC, 0, 6) // EOF | |
2200 }; | |
2201 | |
2202 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | |
2203 | |
2204 TestDelegate d; | |
Ryan Hamilton
2016/09/07 16:54:50
ditto
allada
2016/09/07 18:14:57
Done.
| |
2205 SpdyURLRequestContext spdy_url_request_context; | |
2206 TestNetworkDelegate network_delegate_; | |
2207 spdy_url_request_context.set_network_delegate(&network_delegate_); | |
2208 SSLSocketDataProvider ssl_data(ASYNC, OK); | |
2209 ssl_data.next_proto = kProtoHTTP2; | |
2210 | |
2211 std::unique_ptr<URLRequest> request(spdy_url_request_context.CreateRequest( | |
2212 GURL(kDefaultUrl), DEFAULT_PRIORITY, &d)); | |
2213 spdy_url_request_context.socket_factory().AddSSLSocketDataProvider(&ssl_data); | |
2214 spdy_url_request_context.socket_factory().AddSocketDataProvider(&data); | |
2215 | |
2216 request->Start(); | |
2217 base::RunLoop().Run(); | |
2218 | |
2219 EXPECT_GT(request->GetTotalSentBytes(), 0); | |
Ryan Hamilton
2016/09/07 16:54:50
ditto
allada
2016/09/07 18:14:57
Done.
| |
2220 EXPECT_GT(request->GetTotalReceivedBytes(), 0); | |
2221 EXPECT_EQ(network_delegate_.total_network_bytes_sent(), | |
2222 request->GetTotalSentBytes()); | |
2223 EXPECT_EQ(network_delegate_.total_network_bytes_received(), | |
2224 request->GetTotalReceivedBytes()); | |
2225 EXPECT_EQ(expected_response_headers_size, request->raw_header_size()); | |
2226 EXPECT_TRUE(data.AllReadDataConsumed()); | |
2227 EXPECT_TRUE(data.AllWriteDataConsumed()); | |
2228 } | |
2229 | |
2108 // Send a spdy request to www.example.org that gets redirected to www.foo.com. | 2230 // Send a spdy request to www.example.org that gets redirected to www.foo.com. |
2109 TEST_F(SpdyNetworkTransactionTest, DISABLED_RedirectGetRequest) { | 2231 TEST_F(SpdyNetworkTransactionTest, DISABLED_RedirectGetRequest) { |
2110 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); | 2232 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); |
2111 headers["user-agent"] = ""; | 2233 headers["user-agent"] = ""; |
2112 headers["accept-encoding"] = "gzip, deflate"; | 2234 headers["accept-encoding"] = "gzip, deflate"; |
2113 | 2235 |
2114 // Setup writes/reads to www.example.org | 2236 // Setup writes/reads to www.example.org |
2115 SpdySerializedFrame req( | 2237 SpdySerializedFrame req( |
2116 spdy_util_.ConstructSpdyHeaders(1, std::move(headers), LOWEST, true)); | 2238 spdy_util_.ConstructSpdyHeaders(1, std::move(headers), LOWEST, true)); |
2117 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReplyRedirect(1)); | 2239 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReplyRedirect(1)); |
(...skipping 4106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
6224 TEST_F(SpdyNetworkTransactionTLSUsageCheckTest, TLSCipherSuiteSucky) { | 6346 TEST_F(SpdyNetworkTransactionTLSUsageCheckTest, TLSCipherSuiteSucky) { |
6225 std::unique_ptr<SSLSocketDataProvider> ssl_provider( | 6347 std::unique_ptr<SSLSocketDataProvider> ssl_provider( |
6226 new SSLSocketDataProvider(ASYNC, OK)); | 6348 new SSLSocketDataProvider(ASYNC, OK)); |
6227 // Set to TLS_RSA_WITH_NULL_MD5 | 6349 // Set to TLS_RSA_WITH_NULL_MD5 |
6228 SSLConnectionStatusSetCipherSuite(0x1, &ssl_provider->connection_status); | 6350 SSLConnectionStatusSetCipherSuite(0x1, &ssl_provider->connection_status); |
6229 | 6351 |
6230 RunTLSUsageCheckTest(std::move(ssl_provider)); | 6352 RunTLSUsageCheckTest(std::move(ssl_provider)); |
6231 } | 6353 } |
6232 | 6354 |
6233 } // namespace net | 6355 } // namespace net |
OLD | NEW |