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 "net/http/http_network_transaction.h" | 5 #include "net/http/http_network_transaction.h" |
6 | 6 |
7 #include <math.h> // ceil | 7 #include <math.h> // ceil |
8 #include <stdarg.h> | 8 #include <stdarg.h> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 EXPECT_TRUE(load_timing_info.socket_reused); | 150 EXPECT_TRUE(load_timing_info.socket_reused); |
151 EXPECT_NE(net::NetLog::Source::kInvalidId, load_timing_info.socket_log_id); | 151 EXPECT_NE(net::NetLog::Source::kInvalidId, load_timing_info.socket_log_id); |
152 | 152 |
153 EXPECT_TRUE(load_timing_info.proxy_resolve_start.is_null()); | 153 EXPECT_TRUE(load_timing_info.proxy_resolve_start.is_null()); |
154 EXPECT_TRUE(load_timing_info.proxy_resolve_end.is_null()); | 154 EXPECT_TRUE(load_timing_info.proxy_resolve_end.is_null()); |
155 | 155 |
156 net::ExpectConnectTimingHasNoTimes(load_timing_info.connect_timing); | 156 net::ExpectConnectTimingHasNoTimes(load_timing_info.connect_timing); |
157 EXPECT_FALSE(load_timing_info.send_start.is_null()); | 157 EXPECT_FALSE(load_timing_info.send_start.is_null()); |
158 | 158 |
159 EXPECT_LE(load_timing_info.send_start, load_timing_info.send_end); | 159 EXPECT_LE(load_timing_info.send_start, load_timing_info.send_end); |
160 EXPECT_LE(load_timing_info.send_end, load_timing_info.receive_headers_end); | |
161 | 160 |
162 // Set by URLRequest, at a higher level. | 161 // Set at a higher level. |
163 EXPECT_TRUE(load_timing_info.request_start_time.is_null()); | 162 EXPECT_TRUE(load_timing_info.request_start_time.is_null()); |
164 EXPECT_TRUE(load_timing_info.request_start.is_null()); | 163 EXPECT_TRUE(load_timing_info.request_start.is_null()); |
| 164 EXPECT_TRUE(load_timing_info.receive_headers_end.is_null()); |
165 } | 165 } |
166 | 166 |
167 // Tests LoadTimingInfo in the case a new socket is used and no PAC script is | 167 // Tests LoadTimingInfo in the case a new socket is used and no PAC script is |
168 // used. | 168 // used. |
169 void TestLoadTimingNotReused(const net::LoadTimingInfo& load_timing_info, | 169 void TestLoadTimingNotReused(const net::LoadTimingInfo& load_timing_info, |
170 int connect_timing_flags) { | 170 int connect_timing_flags) { |
171 EXPECT_FALSE(load_timing_info.socket_reused); | 171 EXPECT_FALSE(load_timing_info.socket_reused); |
172 EXPECT_NE(net::NetLog::Source::kInvalidId, load_timing_info.socket_log_id); | 172 EXPECT_NE(net::NetLog::Source::kInvalidId, load_timing_info.socket_log_id); |
173 | 173 |
174 EXPECT_TRUE(load_timing_info.proxy_resolve_start.is_null()); | 174 EXPECT_TRUE(load_timing_info.proxy_resolve_start.is_null()); |
175 EXPECT_TRUE(load_timing_info.proxy_resolve_end.is_null()); | 175 EXPECT_TRUE(load_timing_info.proxy_resolve_end.is_null()); |
176 | 176 |
177 net::ExpectConnectTimingHasTimes(load_timing_info.connect_timing, | 177 net::ExpectConnectTimingHasTimes(load_timing_info.connect_timing, |
178 connect_timing_flags); | 178 connect_timing_flags); |
179 EXPECT_LE(load_timing_info.connect_timing.connect_end, | 179 EXPECT_LE(load_timing_info.connect_timing.connect_end, |
180 load_timing_info.send_start); | 180 load_timing_info.send_start); |
181 | 181 |
182 EXPECT_LE(load_timing_info.send_start, load_timing_info.send_end); | 182 EXPECT_LE(load_timing_info.send_start, load_timing_info.send_end); |
183 EXPECT_LE(load_timing_info.send_end, load_timing_info.receive_headers_end); | |
184 | 183 |
185 // Set by URLRequest, at a higher level. | 184 // Set at a higher level. |
186 EXPECT_TRUE(load_timing_info.request_start_time.is_null()); | 185 EXPECT_TRUE(load_timing_info.request_start_time.is_null()); |
187 EXPECT_TRUE(load_timing_info.request_start.is_null()); | 186 EXPECT_TRUE(load_timing_info.request_start.is_null()); |
| 187 EXPECT_TRUE(load_timing_info.receive_headers_end.is_null()); |
188 } | 188 } |
189 | 189 |
190 // Tests LoadTimingInfo in the case a socket is reused and a PAC script is | 190 // Tests LoadTimingInfo in the case a socket is reused and a PAC script is |
191 // used. | 191 // used. |
192 void TestLoadTimingReusedWithPac(const net::LoadTimingInfo& load_timing_info) { | 192 void TestLoadTimingReusedWithPac(const net::LoadTimingInfo& load_timing_info) { |
193 EXPECT_TRUE(load_timing_info.socket_reused); | 193 EXPECT_TRUE(load_timing_info.socket_reused); |
194 EXPECT_NE(net::NetLog::Source::kInvalidId, load_timing_info.socket_log_id); | 194 EXPECT_NE(net::NetLog::Source::kInvalidId, load_timing_info.socket_log_id); |
195 | 195 |
196 net::ExpectConnectTimingHasNoTimes(load_timing_info.connect_timing); | 196 net::ExpectConnectTimingHasNoTimes(load_timing_info.connect_timing); |
197 | 197 |
198 EXPECT_FALSE(load_timing_info.proxy_resolve_start.is_null()); | 198 EXPECT_FALSE(load_timing_info.proxy_resolve_start.is_null()); |
199 EXPECT_LE(load_timing_info.proxy_resolve_start, | 199 EXPECT_LE(load_timing_info.proxy_resolve_start, |
200 load_timing_info.proxy_resolve_end); | 200 load_timing_info.proxy_resolve_end); |
201 EXPECT_LE(load_timing_info.proxy_resolve_end, | 201 EXPECT_LE(load_timing_info.proxy_resolve_end, |
202 load_timing_info.send_start); | 202 load_timing_info.send_start); |
203 EXPECT_LE(load_timing_info.send_start, load_timing_info.send_end); | 203 EXPECT_LE(load_timing_info.send_start, load_timing_info.send_end); |
204 EXPECT_LE(load_timing_info.send_end, load_timing_info.receive_headers_end); | |
205 | 204 |
206 // Set by URLRequest, at a higher level. | 205 // Set at a higher level. |
207 EXPECT_TRUE(load_timing_info.request_start_time.is_null()); | 206 EXPECT_TRUE(load_timing_info.request_start_time.is_null()); |
208 EXPECT_TRUE(load_timing_info.request_start.is_null()); | 207 EXPECT_TRUE(load_timing_info.request_start.is_null()); |
| 208 EXPECT_TRUE(load_timing_info.receive_headers_end.is_null()); |
209 } | 209 } |
210 | 210 |
211 // Tests LoadTimingInfo in the case a new socket is used and a PAC script is | 211 // Tests LoadTimingInfo in the case a new socket is used and a PAC script is |
212 // used. | 212 // used. |
213 void TestLoadTimingNotReusedWithPac(const net::LoadTimingInfo& load_timing_info, | 213 void TestLoadTimingNotReusedWithPac(const net::LoadTimingInfo& load_timing_info, |
214 int connect_timing_flags) { | 214 int connect_timing_flags) { |
215 EXPECT_FALSE(load_timing_info.socket_reused); | 215 EXPECT_FALSE(load_timing_info.socket_reused); |
216 EXPECT_NE(net::NetLog::Source::kInvalidId, load_timing_info.socket_log_id); | 216 EXPECT_NE(net::NetLog::Source::kInvalidId, load_timing_info.socket_log_id); |
217 | 217 |
218 EXPECT_FALSE(load_timing_info.proxy_resolve_start.is_null()); | 218 EXPECT_FALSE(load_timing_info.proxy_resolve_start.is_null()); |
219 EXPECT_LE(load_timing_info.proxy_resolve_start, | 219 EXPECT_LE(load_timing_info.proxy_resolve_start, |
220 load_timing_info.proxy_resolve_end); | 220 load_timing_info.proxy_resolve_end); |
221 EXPECT_LE(load_timing_info.proxy_resolve_end, | 221 EXPECT_LE(load_timing_info.proxy_resolve_end, |
222 load_timing_info.connect_timing.connect_start); | 222 load_timing_info.connect_timing.connect_start); |
223 net::ExpectConnectTimingHasTimes(load_timing_info.connect_timing, | 223 net::ExpectConnectTimingHasTimes(load_timing_info.connect_timing, |
224 connect_timing_flags); | 224 connect_timing_flags); |
225 EXPECT_LE(load_timing_info.connect_timing.connect_end, | 225 EXPECT_LE(load_timing_info.connect_timing.connect_end, |
226 load_timing_info.send_start); | 226 load_timing_info.send_start); |
227 | 227 |
228 EXPECT_LE(load_timing_info.send_start, load_timing_info.send_end); | 228 EXPECT_LE(load_timing_info.send_start, load_timing_info.send_end); |
229 EXPECT_LE(load_timing_info.send_end, load_timing_info.receive_headers_end); | |
230 | 229 |
231 // Set by URLRequest, at a higher level. | 230 // Set at a higher level. |
232 EXPECT_TRUE(load_timing_info.request_start_time.is_null()); | 231 EXPECT_TRUE(load_timing_info.request_start_time.is_null()); |
233 EXPECT_TRUE(load_timing_info.request_start.is_null()); | 232 EXPECT_TRUE(load_timing_info.request_start.is_null()); |
| 233 EXPECT_TRUE(load_timing_info.receive_headers_end.is_null()); |
234 } | 234 } |
235 | 235 |
236 } // namespace | 236 } // namespace |
237 | 237 |
238 class HttpNetworkTransactionSpdy3Test : public PlatformTest { | 238 class HttpNetworkTransactionSpdy3Test : public PlatformTest { |
239 protected: | 239 protected: |
240 HttpNetworkTransactionSpdy3Test() : session_deps_(kProtoSPDY3) {} | 240 HttpNetworkTransactionSpdy3Test() : session_deps_(kProtoSPDY3) {} |
241 | 241 |
242 struct SimpleGetHelperResult { | 242 struct SimpleGetHelperResult { |
243 int rv; | 243 int rv; |
(...skipping 10882 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11126 trans2.Start(&request2, callback2.callback(), BoundNetLog())); | 11126 trans2.Start(&request2, callback2.callback(), BoundNetLog())); |
11127 MessageLoop::current()->RunUntilIdle(); | 11127 MessageLoop::current()->RunUntilIdle(); |
11128 data2->RunFor(3); | 11128 data2->RunFor(3); |
11129 | 11129 |
11130 ASSERT_TRUE(callback2.have_result()); | 11130 ASSERT_TRUE(callback2.have_result()); |
11131 EXPECT_EQ(OK, callback2.WaitForResult()); | 11131 EXPECT_EQ(OK, callback2.WaitForResult()); |
11132 EXPECT_TRUE(trans2.GetResponseInfo()->was_fetched_via_spdy); | 11132 EXPECT_TRUE(trans2.GetResponseInfo()->was_fetched_via_spdy); |
11133 } | 11133 } |
11134 | 11134 |
11135 } // namespace net | 11135 } // namespace net |
OLD | NEW |