Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(667)

Side by Side Diff: net/http/http_network_transaction_spdy3_unittest.cc

Issue 14625012: net: Return LoadTiming information in the case of a cache hit (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Small fix Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698