| 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 |