| 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 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 139 EXPECT_TRUE(load_timing_info.socket_reused); | 139 EXPECT_TRUE(load_timing_info.socket_reused); |
| 140 EXPECT_NE(net::NetLog::Source::kInvalidId, load_timing_info.socket_log_id); | 140 EXPECT_NE(net::NetLog::Source::kInvalidId, load_timing_info.socket_log_id); |
| 141 | 141 |
| 142 EXPECT_TRUE(load_timing_info.proxy_resolve_start.is_null()); | 142 EXPECT_TRUE(load_timing_info.proxy_resolve_start.is_null()); |
| 143 EXPECT_TRUE(load_timing_info.proxy_resolve_end.is_null()); | 143 EXPECT_TRUE(load_timing_info.proxy_resolve_end.is_null()); |
| 144 | 144 |
| 145 net::ExpectConnectTimingHasNoTimes(load_timing_info.connect_timing); | 145 net::ExpectConnectTimingHasNoTimes(load_timing_info.connect_timing); |
| 146 EXPECT_FALSE(load_timing_info.send_start.is_null()); | 146 EXPECT_FALSE(load_timing_info.send_start.is_null()); |
| 147 | 147 |
| 148 EXPECT_LE(load_timing_info.send_start, load_timing_info.send_end); | 148 EXPECT_LE(load_timing_info.send_start, load_timing_info.send_end); |
| 149 EXPECT_LE(load_timing_info.send_end, load_timing_info.receive_headers_end); | |
| 150 | 149 |
| 151 // Set by URLRequest, at a higher level. | 150 // Set at a higher level. |
| 152 EXPECT_TRUE(load_timing_info.request_start_time.is_null()); | 151 EXPECT_TRUE(load_timing_info.request_start_time.is_null()); |
| 153 EXPECT_TRUE(load_timing_info.request_start.is_null()); | 152 EXPECT_TRUE(load_timing_info.request_start.is_null()); |
| 153 EXPECT_TRUE(load_timing_info.receive_headers_end.is_null()); |
| 154 } | 154 } |
| 155 | 155 |
| 156 // Tests LoadTimingInfo in the case a new socket is used and no PAC script is | 156 // Tests LoadTimingInfo in the case a new socket is used and no PAC script is |
| 157 // used. | 157 // used. |
| 158 void TestLoadTimingNotReused(const net::LoadTimingInfo& load_timing_info, | 158 void TestLoadTimingNotReused(const net::LoadTimingInfo& load_timing_info, |
| 159 int connect_timing_flags) { | 159 int connect_timing_flags) { |
| 160 EXPECT_FALSE(load_timing_info.socket_reused); | 160 EXPECT_FALSE(load_timing_info.socket_reused); |
| 161 EXPECT_NE(net::NetLog::Source::kInvalidId, load_timing_info.socket_log_id); | 161 EXPECT_NE(net::NetLog::Source::kInvalidId, load_timing_info.socket_log_id); |
| 162 | 162 |
| 163 EXPECT_TRUE(load_timing_info.proxy_resolve_start.is_null()); | 163 EXPECT_TRUE(load_timing_info.proxy_resolve_start.is_null()); |
| 164 EXPECT_TRUE(load_timing_info.proxy_resolve_end.is_null()); | 164 EXPECT_TRUE(load_timing_info.proxy_resolve_end.is_null()); |
| 165 | 165 |
| 166 net::ExpectConnectTimingHasTimes(load_timing_info.connect_timing, | 166 net::ExpectConnectTimingHasTimes(load_timing_info.connect_timing, |
| 167 connect_timing_flags); | 167 connect_timing_flags); |
| 168 EXPECT_LE(load_timing_info.connect_timing.connect_end, | 168 EXPECT_LE(load_timing_info.connect_timing.connect_end, |
| 169 load_timing_info.send_start); | 169 load_timing_info.send_start); |
| 170 | 170 |
| 171 EXPECT_LE(load_timing_info.send_start, load_timing_info.send_end); | 171 EXPECT_LE(load_timing_info.send_start, load_timing_info.send_end); |
| 172 EXPECT_LE(load_timing_info.send_end, load_timing_info.receive_headers_end); | |
| 173 | 172 |
| 174 // Set by URLRequest, at a higher level. | 173 // Set at a higher level. |
| 175 EXPECT_TRUE(load_timing_info.request_start_time.is_null()); | 174 EXPECT_TRUE(load_timing_info.request_start_time.is_null()); |
| 176 EXPECT_TRUE(load_timing_info.request_start.is_null()); | 175 EXPECT_TRUE(load_timing_info.request_start.is_null()); |
| 176 EXPECT_TRUE(load_timing_info.receive_headers_end.is_null()); |
| 177 } | 177 } |
| 178 | 178 |
| 179 // Tests LoadTimingInfo in the case a socket is reused and a PAC script is | 179 // Tests LoadTimingInfo in the case a socket is reused and a PAC script is |
| 180 // used. | 180 // used. |
| 181 void TestLoadTimingReusedWithPac(const net::LoadTimingInfo& load_timing_info) { | 181 void TestLoadTimingReusedWithPac(const net::LoadTimingInfo& load_timing_info) { |
| 182 EXPECT_TRUE(load_timing_info.socket_reused); | 182 EXPECT_TRUE(load_timing_info.socket_reused); |
| 183 EXPECT_NE(net::NetLog::Source::kInvalidId, load_timing_info.socket_log_id); | 183 EXPECT_NE(net::NetLog::Source::kInvalidId, load_timing_info.socket_log_id); |
| 184 | 184 |
| 185 net::ExpectConnectTimingHasNoTimes(load_timing_info.connect_timing); | 185 net::ExpectConnectTimingHasNoTimes(load_timing_info.connect_timing); |
| 186 | 186 |
| 187 EXPECT_FALSE(load_timing_info.proxy_resolve_start.is_null()); | 187 EXPECT_FALSE(load_timing_info.proxy_resolve_start.is_null()); |
| 188 EXPECT_LE(load_timing_info.proxy_resolve_start, | 188 EXPECT_LE(load_timing_info.proxy_resolve_start, |
| 189 load_timing_info.proxy_resolve_end); | 189 load_timing_info.proxy_resolve_end); |
| 190 EXPECT_LE(load_timing_info.proxy_resolve_end, | 190 EXPECT_LE(load_timing_info.proxy_resolve_end, |
| 191 load_timing_info.send_start); | 191 load_timing_info.send_start); |
| 192 EXPECT_LE(load_timing_info.send_start, load_timing_info.send_end); | 192 EXPECT_LE(load_timing_info.send_start, load_timing_info.send_end); |
| 193 EXPECT_LE(load_timing_info.send_end, load_timing_info.receive_headers_end); | |
| 194 | 193 |
| 195 // Set by URLRequest, at a higher level. | 194 // Set at a higher level. |
| 196 EXPECT_TRUE(load_timing_info.request_start_time.is_null()); | 195 EXPECT_TRUE(load_timing_info.request_start_time.is_null()); |
| 197 EXPECT_TRUE(load_timing_info.request_start.is_null()); | 196 EXPECT_TRUE(load_timing_info.request_start.is_null()); |
| 197 EXPECT_TRUE(load_timing_info.receive_headers_end.is_null()); |
| 198 } | 198 } |
| 199 | 199 |
| 200 // Tests LoadTimingInfo in the case a new socket is used and a PAC script is | 200 // Tests LoadTimingInfo in the case a new socket is used and a PAC script is |
| 201 // used. | 201 // used. |
| 202 void TestLoadTimingNotReusedWithPac(const net::LoadTimingInfo& load_timing_info, | 202 void TestLoadTimingNotReusedWithPac(const net::LoadTimingInfo& load_timing_info, |
| 203 int connect_timing_flags) { | 203 int connect_timing_flags) { |
| 204 EXPECT_FALSE(load_timing_info.socket_reused); | 204 EXPECT_FALSE(load_timing_info.socket_reused); |
| 205 EXPECT_NE(net::NetLog::Source::kInvalidId, load_timing_info.socket_log_id); | 205 EXPECT_NE(net::NetLog::Source::kInvalidId, load_timing_info.socket_log_id); |
| 206 | 206 |
| 207 EXPECT_FALSE(load_timing_info.proxy_resolve_start.is_null()); | 207 EXPECT_FALSE(load_timing_info.proxy_resolve_start.is_null()); |
| 208 EXPECT_LE(load_timing_info.proxy_resolve_start, | 208 EXPECT_LE(load_timing_info.proxy_resolve_start, |
| 209 load_timing_info.proxy_resolve_end); | 209 load_timing_info.proxy_resolve_end); |
| 210 EXPECT_LE(load_timing_info.proxy_resolve_end, | 210 EXPECT_LE(load_timing_info.proxy_resolve_end, |
| 211 load_timing_info.connect_timing.connect_start); | 211 load_timing_info.connect_timing.connect_start); |
| 212 net::ExpectConnectTimingHasTimes(load_timing_info.connect_timing, | 212 net::ExpectConnectTimingHasTimes(load_timing_info.connect_timing, |
| 213 connect_timing_flags); | 213 connect_timing_flags); |
| 214 EXPECT_LE(load_timing_info.connect_timing.connect_end, | 214 EXPECT_LE(load_timing_info.connect_timing.connect_end, |
| 215 load_timing_info.send_start); | 215 load_timing_info.send_start); |
| 216 | 216 |
| 217 EXPECT_LE(load_timing_info.send_start, load_timing_info.send_end); | 217 EXPECT_LE(load_timing_info.send_start, load_timing_info.send_end); |
| 218 EXPECT_LE(load_timing_info.send_end, load_timing_info.receive_headers_end); | |
| 219 | 218 |
| 220 // Set by URLRequest, at a higher level. | 219 // Set at a higher level. |
| 221 EXPECT_TRUE(load_timing_info.request_start_time.is_null()); | 220 EXPECT_TRUE(load_timing_info.request_start_time.is_null()); |
| 222 EXPECT_TRUE(load_timing_info.request_start.is_null()); | 221 EXPECT_TRUE(load_timing_info.request_start.is_null()); |
| 222 EXPECT_TRUE(load_timing_info.receive_headers_end.is_null()); |
| 223 } | 223 } |
| 224 | 224 |
| 225 } // namespace | 225 } // namespace |
| 226 | 226 |
| 227 namespace net { | 227 namespace net { |
| 228 | 228 |
| 229 namespace { | 229 namespace { |
| 230 | 230 |
| 231 HttpNetworkSession* CreateSession(SpdySessionDependencies* session_deps) { | 231 HttpNetworkSession* CreateSession(SpdySessionDependencies* session_deps) { |
| 232 return SpdySessionDependencies::SpdyCreateSession(session_deps); | 232 return SpdySessionDependencies::SpdyCreateSession(session_deps); |
| (...skipping 10948 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11181 trans2.Start(&request2, callback2.callback(), BoundNetLog())); | 11181 trans2.Start(&request2, callback2.callback(), BoundNetLog())); |
| 11182 MessageLoop::current()->RunUntilIdle(); | 11182 MessageLoop::current()->RunUntilIdle(); |
| 11183 data2->RunFor(3); | 11183 data2->RunFor(3); |
| 11184 | 11184 |
| 11185 ASSERT_TRUE(callback2.have_result()); | 11185 ASSERT_TRUE(callback2.have_result()); |
| 11186 EXPECT_EQ(OK, callback2.WaitForResult()); | 11186 EXPECT_EQ(OK, callback2.WaitForResult()); |
| 11187 EXPECT_TRUE(trans2.GetResponseInfo()->was_fetched_via_spdy); | 11187 EXPECT_TRUE(trans2.GetResponseInfo()->was_fetched_via_spdy); |
| 11188 } | 11188 } |
| 11189 | 11189 |
| 11190 } // namespace net | 11190 } // namespace net |
| OLD | NEW |