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

Side by Side Diff: net/http/http_network_transaction_spdy2_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: Fix tests, add tests 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 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698