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

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

Issue 2109503009: Refactor net tests to use GMock matchers for checking net::Error results (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Revert changes to contents.txt files Created 4 years, 5 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
« no previous file with comments | « net/http/bidirectional_stream_unittest.cc ('k') | net/http/http_auth_handler_basic_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/disk_cache_based_quic_server_info.h" 5 #include "net/http/disk_cache_based_quic_server_info.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
11 #include "base/memory/ptr_util.h" 11 #include "base/memory/ptr_util.h"
12 #include "base/run_loop.h" 12 #include "base/run_loop.h"
13 #include "net/base/net_errors.h" 13 #include "net/base/net_errors.h"
14 #include "net/http/mock_http_cache.h" 14 #include "net/http/mock_http_cache.h"
15 #include "net/quic/crypto/quic_server_info.h" 15 #include "net/quic/crypto/quic_server_info.h"
16 #include "net/quic/quic_server_id.h" 16 #include "net/quic/quic_server_id.h"
17 #include "net/test/gtest_util.h"
18 #include "testing/gmock/include/gmock/gmock.h"
17 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
18 20
21 using net::test::IsError;
22 using net::test::IsOk;
23
19 using std::string; 24 using std::string;
20 25
21 namespace net { 26 namespace net {
22 namespace { 27 namespace {
23 28
24 // This is an empty transaction, needed to register the URL and the test mode. 29 // This is an empty transaction, needed to register the URL and the test mode.
25 const MockTransaction kHostInfoTransaction1 = { 30 const MockTransaction kHostInfoTransaction1 = {
26 "quicserverinfo:https://www.google.com:443", 31 "quicserverinfo:https://www.google.com:443",
27 "", 32 "",
28 base::Time(), 33 base::Time(),
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 // Use the blocking mock backend factory to force asynchronous completion 94 // Use the blocking mock backend factory to force asynchronous completion
90 // of quic_server_info->WaitForDataReady(), so that the callback will run. 95 // of quic_server_info->WaitForDataReady(), so that the callback will run.
91 MockBlockingBackendFactory* factory = new MockBlockingBackendFactory(); 96 MockBlockingBackendFactory* factory = new MockBlockingBackendFactory();
92 MockHttpCache cache(base::WrapUnique(factory)); 97 MockHttpCache cache(base::WrapUnique(factory));
93 QuicServerId server_id("www.verisign.com", 443, PRIVACY_MODE_DISABLED); 98 QuicServerId server_id("www.verisign.com", 443, PRIVACY_MODE_DISABLED);
94 std::unique_ptr<QuicServerInfo> quic_server_info( 99 std::unique_ptr<QuicServerInfo> quic_server_info(
95 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache())); 100 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache()));
96 quic_server_info->Start(); 101 quic_server_info->Start();
97 TestCompletionCallback callback; 102 TestCompletionCallback callback;
98 int rv = quic_server_info->WaitForDataReady(callback.callback()); 103 int rv = quic_server_info->WaitForDataReady(callback.callback());
99 EXPECT_EQ(ERR_IO_PENDING, rv); 104 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
100 // Now complete the backend creation and let the callback run. 105 // Now complete the backend creation and let the callback run.
101 factory->FinishCreation(); 106 factory->FinishCreation();
102 EXPECT_EQ(OK, callback.GetResult(rv)); 107 EXPECT_THAT(callback.GetResult(rv), IsOk());
103 } 108 }
104 109
105 // Tests the basic logic of storing, retrieving and updating data. 110 // Tests the basic logic of storing, retrieving and updating data.
106 TEST(DiskCacheBasedQuicServerInfo, Update) { 111 TEST(DiskCacheBasedQuicServerInfo, Update) {
107 MockHttpCache cache; 112 MockHttpCache cache;
108 AddMockTransaction(&kHostInfoTransaction1); 113 AddMockTransaction(&kHostInfoTransaction1);
109 TestCompletionCallback callback; 114 TestCompletionCallback callback;
110 115
111 QuicServerId server_id("www.google.com", 443, PRIVACY_MODE_DISABLED); 116 QuicServerId server_id("www.google.com", 443, PRIVACY_MODE_DISABLED);
112 std::unique_ptr<QuicServerInfo> quic_server_info( 117 std::unique_ptr<QuicServerInfo> quic_server_info(
113 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache())); 118 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache()));
114 quic_server_info->Start(); 119 quic_server_info->Start();
115 int rv = quic_server_info->WaitForDataReady(callback.callback()); 120 int rv = quic_server_info->WaitForDataReady(callback.callback());
116 EXPECT_EQ(OK, callback.GetResult(rv)); 121 EXPECT_THAT(callback.GetResult(rv), IsOk());
117 122
118 QuicServerInfo::State* state = quic_server_info->mutable_state(); 123 QuicServerInfo::State* state = quic_server_info->mutable_state();
119 EXPECT_TRUE(state->certs.empty()); 124 EXPECT_TRUE(state->certs.empty());
120 const string server_config_a = "server_config_a"; 125 const string server_config_a = "server_config_a";
121 const string source_address_token_a = "source_address_token_a"; 126 const string source_address_token_a = "source_address_token_a";
122 const string cert_sct_a = "cert_sct_a"; 127 const string cert_sct_a = "cert_sct_a";
123 const string chlo_hash_a = "chlo_hash_a"; 128 const string chlo_hash_a = "chlo_hash_a";
124 const string server_config_sig_a = "server_config_sig_a"; 129 const string server_config_sig_a = "server_config_sig_a";
125 const string cert_a = "cert_a"; 130 const string cert_a = "cert_a";
126 const string cert_b = "cert_b"; 131 const string cert_b = "cert_b";
127 132
128 state->server_config = server_config_a; 133 state->server_config = server_config_a;
129 state->source_address_token = source_address_token_a; 134 state->source_address_token = source_address_token_a;
130 state->cert_sct = cert_sct_a; 135 state->cert_sct = cert_sct_a;
131 state->chlo_hash = chlo_hash_a; 136 state->chlo_hash = chlo_hash_a;
132 state->server_config_sig = server_config_sig_a; 137 state->server_config_sig = server_config_sig_a;
133 state->certs.push_back(cert_a); 138 state->certs.push_back(cert_a);
134 quic_server_info->Persist(); 139 quic_server_info->Persist();
135 140
136 // Wait until Persist() does the work. 141 // Wait until Persist() does the work.
137 base::RunLoop().RunUntilIdle(); 142 base::RunLoop().RunUntilIdle();
138 143
139 // Open the stored QuicServerInfo. 144 // Open the stored QuicServerInfo.
140 quic_server_info.reset( 145 quic_server_info.reset(
141 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache())); 146 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache()));
142 quic_server_info->Start(); 147 quic_server_info->Start();
143 rv = quic_server_info->WaitForDataReady(callback.callback()); 148 rv = quic_server_info->WaitForDataReady(callback.callback());
144 EXPECT_EQ(OK, callback.GetResult(rv)); 149 EXPECT_THAT(callback.GetResult(rv), IsOk());
145 150
146 // And now update the data. 151 // And now update the data.
147 state = quic_server_info->mutable_state(); 152 state = quic_server_info->mutable_state();
148 state->certs.push_back(cert_b); 153 state->certs.push_back(cert_b);
149 154
150 // Fail instead of DCHECKing double creates. 155 // Fail instead of DCHECKing double creates.
151 cache.disk_cache()->set_double_create_check(false); 156 cache.disk_cache()->set_double_create_check(false);
152 quic_server_info->Persist(); 157 quic_server_info->Persist();
153 base::RunLoop().RunUntilIdle(); 158 base::RunLoop().RunUntilIdle();
154 159
155 // Verify that the state was updated. 160 // Verify that the state was updated.
156 quic_server_info.reset( 161 quic_server_info.reset(
157 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache())); 162 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache()));
158 quic_server_info->Start(); 163 quic_server_info->Start();
159 rv = quic_server_info->WaitForDataReady(callback.callback()); 164 rv = quic_server_info->WaitForDataReady(callback.callback());
160 EXPECT_EQ(OK, callback.GetResult(rv)); 165 EXPECT_THAT(callback.GetResult(rv), IsOk());
161 EXPECT_TRUE(quic_server_info->IsDataReady()); 166 EXPECT_TRUE(quic_server_info->IsDataReady());
162 167
163 const QuicServerInfo::State& state1 = quic_server_info->state(); 168 const QuicServerInfo::State& state1 = quic_server_info->state();
164 EXPECT_EQ(server_config_a, state1.server_config); 169 EXPECT_EQ(server_config_a, state1.server_config);
165 EXPECT_EQ(source_address_token_a, state1.source_address_token); 170 EXPECT_EQ(source_address_token_a, state1.source_address_token);
166 EXPECT_EQ(cert_sct_a, state1.cert_sct); 171 EXPECT_EQ(cert_sct_a, state1.cert_sct);
167 EXPECT_EQ(chlo_hash_a, state1.chlo_hash); 172 EXPECT_EQ(chlo_hash_a, state1.chlo_hash);
168 EXPECT_EQ(server_config_sig_a, state1.server_config_sig); 173 EXPECT_EQ(server_config_sig_a, state1.server_config_sig);
169 EXPECT_EQ(2U, state1.certs.size()); 174 EXPECT_EQ(2U, state1.certs.size());
170 EXPECT_EQ(cert_a, state1.certs[0]); 175 EXPECT_EQ(cert_a, state1.certs[0]);
171 EXPECT_EQ(cert_b, state1.certs[1]); 176 EXPECT_EQ(cert_b, state1.certs[1]);
172 177
173 RemoveMockTransaction(&kHostInfoTransaction1); 178 RemoveMockTransaction(&kHostInfoTransaction1);
174 } 179 }
175 180
176 // Test that demonstrates different info is returned when the ports differ. 181 // Test that demonstrates different info is returned when the ports differ.
177 TEST(DiskCacheBasedQuicServerInfo, UpdateDifferentPorts) { 182 TEST(DiskCacheBasedQuicServerInfo, UpdateDifferentPorts) {
178 MockHttpCache cache; 183 MockHttpCache cache;
179 AddMockTransaction(&kHostInfoTransaction1); 184 AddMockTransaction(&kHostInfoTransaction1);
180 AddMockTransaction(&kHostInfoTransaction2); 185 AddMockTransaction(&kHostInfoTransaction2);
181 TestCompletionCallback callback; 186 TestCompletionCallback callback;
182 187
183 // Persist data for port 443. 188 // Persist data for port 443.
184 QuicServerId server_id1("www.google.com", 443, PRIVACY_MODE_DISABLED); 189 QuicServerId server_id1("www.google.com", 443, PRIVACY_MODE_DISABLED);
185 std::unique_ptr<QuicServerInfo> quic_server_info1( 190 std::unique_ptr<QuicServerInfo> quic_server_info1(
186 new DiskCacheBasedQuicServerInfo(server_id1, cache.http_cache())); 191 new DiskCacheBasedQuicServerInfo(server_id1, cache.http_cache()));
187 quic_server_info1->Start(); 192 quic_server_info1->Start();
188 int rv = quic_server_info1->WaitForDataReady(callback.callback()); 193 int rv = quic_server_info1->WaitForDataReady(callback.callback());
189 EXPECT_EQ(OK, callback.GetResult(rv)); 194 EXPECT_THAT(callback.GetResult(rv), IsOk());
190 195
191 QuicServerInfo::State* state1 = quic_server_info1->mutable_state(); 196 QuicServerInfo::State* state1 = quic_server_info1->mutable_state();
192 EXPECT_TRUE(state1->certs.empty()); 197 EXPECT_TRUE(state1->certs.empty());
193 const string server_config_a = "server_config_a"; 198 const string server_config_a = "server_config_a";
194 const string source_address_token_a = "source_address_token_a"; 199 const string source_address_token_a = "source_address_token_a";
195 const string cert_sct_a = "cert_sct_a"; 200 const string cert_sct_a = "cert_sct_a";
196 const string chlo_hash_a = "chlo_hash_a"; 201 const string chlo_hash_a = "chlo_hash_a";
197 const string server_config_sig_a = "server_config_sig_a"; 202 const string server_config_sig_a = "server_config_sig_a";
198 const string cert_a = "cert_a"; 203 const string cert_a = "cert_a";
199 204
200 state1->server_config = server_config_a; 205 state1->server_config = server_config_a;
201 state1->source_address_token = source_address_token_a; 206 state1->source_address_token = source_address_token_a;
202 state1->cert_sct = cert_sct_a; 207 state1->cert_sct = cert_sct_a;
203 state1->chlo_hash = chlo_hash_a; 208 state1->chlo_hash = chlo_hash_a;
204 state1->server_config_sig = server_config_sig_a; 209 state1->server_config_sig = server_config_sig_a;
205 state1->certs.push_back(cert_a); 210 state1->certs.push_back(cert_a);
206 quic_server_info1->Persist(); 211 quic_server_info1->Persist();
207 212
208 // Wait until Persist() does the work. 213 // Wait until Persist() does the work.
209 base::RunLoop().RunUntilIdle(); 214 base::RunLoop().RunUntilIdle();
210 215
211 // Persist data for port 80. 216 // Persist data for port 80.
212 QuicServerId server_id2("www.google.com", 80, PRIVACY_MODE_DISABLED); 217 QuicServerId server_id2("www.google.com", 80, PRIVACY_MODE_DISABLED);
213 std::unique_ptr<QuicServerInfo> quic_server_info2( 218 std::unique_ptr<QuicServerInfo> quic_server_info2(
214 new DiskCacheBasedQuicServerInfo(server_id2, cache.http_cache())); 219 new DiskCacheBasedQuicServerInfo(server_id2, cache.http_cache()));
215 quic_server_info2->Start(); 220 quic_server_info2->Start();
216 rv = quic_server_info2->WaitForDataReady(callback.callback()); 221 rv = quic_server_info2->WaitForDataReady(callback.callback());
217 EXPECT_EQ(OK, callback.GetResult(rv)); 222 EXPECT_THAT(callback.GetResult(rv), IsOk());
218 223
219 QuicServerInfo::State* state2 = quic_server_info2->mutable_state(); 224 QuicServerInfo::State* state2 = quic_server_info2->mutable_state();
220 EXPECT_TRUE(state2->certs.empty()); 225 EXPECT_TRUE(state2->certs.empty());
221 const string server_config_b = "server_config_b"; 226 const string server_config_b = "server_config_b";
222 const string source_address_token_b = "source_address_token_b"; 227 const string source_address_token_b = "source_address_token_b";
223 const string cert_sct_b = "cert_sct_b"; 228 const string cert_sct_b = "cert_sct_b";
224 const string chlo_hash_b = "chlo_hash_b"; 229 const string chlo_hash_b = "chlo_hash_b";
225 const string server_config_sig_b = "server_config_sig_b"; 230 const string server_config_sig_b = "server_config_sig_b";
226 const string cert_b = "cert_b"; 231 const string cert_b = "cert_b";
227 232
228 state2->server_config = server_config_b; 233 state2->server_config = server_config_b;
229 state2->source_address_token = source_address_token_b; 234 state2->source_address_token = source_address_token_b;
230 state2->cert_sct = cert_sct_b; 235 state2->cert_sct = cert_sct_b;
231 state2->chlo_hash = chlo_hash_b; 236 state2->chlo_hash = chlo_hash_b;
232 state2->server_config_sig = server_config_sig_b; 237 state2->server_config_sig = server_config_sig_b;
233 state2->certs.push_back(cert_b); 238 state2->certs.push_back(cert_b);
234 quic_server_info2->Persist(); 239 quic_server_info2->Persist();
235 240
236 // Wait until Persist() does the work. 241 // Wait until Persist() does the work.
237 base::RunLoop().RunUntilIdle(); 242 base::RunLoop().RunUntilIdle();
238 243
239 // Verify the stored QuicServerInfo for port 443. 244 // Verify the stored QuicServerInfo for port 443.
240 std::unique_ptr<QuicServerInfo> quic_server_info( 245 std::unique_ptr<QuicServerInfo> quic_server_info(
241 new DiskCacheBasedQuicServerInfo(server_id1, cache.http_cache())); 246 new DiskCacheBasedQuicServerInfo(server_id1, cache.http_cache()));
242 quic_server_info->Start(); 247 quic_server_info->Start();
243 rv = quic_server_info->WaitForDataReady(callback.callback()); 248 rv = quic_server_info->WaitForDataReady(callback.callback());
244 EXPECT_EQ(OK, callback.GetResult(rv)); 249 EXPECT_THAT(callback.GetResult(rv), IsOk());
245 EXPECT_TRUE(quic_server_info->IsDataReady()); 250 EXPECT_TRUE(quic_server_info->IsDataReady());
246 251
247 const QuicServerInfo::State& state_a = quic_server_info->state(); 252 const QuicServerInfo::State& state_a = quic_server_info->state();
248 EXPECT_EQ(server_config_a, state_a.server_config); 253 EXPECT_EQ(server_config_a, state_a.server_config);
249 EXPECT_EQ(source_address_token_a, state_a.source_address_token); 254 EXPECT_EQ(source_address_token_a, state_a.source_address_token);
250 EXPECT_EQ(cert_sct_a, state_a.cert_sct); 255 EXPECT_EQ(cert_sct_a, state_a.cert_sct);
251 EXPECT_EQ(chlo_hash_a, state_a.chlo_hash); 256 EXPECT_EQ(chlo_hash_a, state_a.chlo_hash);
252 EXPECT_EQ(server_config_sig_a, state_a.server_config_sig); 257 EXPECT_EQ(server_config_sig_a, state_a.server_config_sig);
253 EXPECT_EQ(1U, state_a.certs.size()); 258 EXPECT_EQ(1U, state_a.certs.size());
254 EXPECT_EQ(cert_a, state_a.certs[0]); 259 EXPECT_EQ(cert_a, state_a.certs[0]);
255 260
256 // Verify the stored QuicServerInfo for port 80. 261 // Verify the stored QuicServerInfo for port 80.
257 quic_server_info.reset( 262 quic_server_info.reset(
258 new DiskCacheBasedQuicServerInfo(server_id2, cache.http_cache())); 263 new DiskCacheBasedQuicServerInfo(server_id2, cache.http_cache()));
259 quic_server_info->Start(); 264 quic_server_info->Start();
260 rv = quic_server_info->WaitForDataReady(callback.callback()); 265 rv = quic_server_info->WaitForDataReady(callback.callback());
261 EXPECT_EQ(OK, callback.GetResult(rv)); 266 EXPECT_THAT(callback.GetResult(rv), IsOk());
262 EXPECT_TRUE(quic_server_info->IsDataReady()); 267 EXPECT_TRUE(quic_server_info->IsDataReady());
263 268
264 const QuicServerInfo::State& state_b = quic_server_info->state(); 269 const QuicServerInfo::State& state_b = quic_server_info->state();
265 EXPECT_EQ(server_config_b, state_b.server_config); 270 EXPECT_EQ(server_config_b, state_b.server_config);
266 EXPECT_EQ(source_address_token_b, state_b.source_address_token); 271 EXPECT_EQ(source_address_token_b, state_b.source_address_token);
267 EXPECT_EQ(cert_sct_b, state_b.cert_sct); 272 EXPECT_EQ(cert_sct_b, state_b.cert_sct);
268 EXPECT_EQ(chlo_hash_b, state_b.chlo_hash); 273 EXPECT_EQ(chlo_hash_b, state_b.chlo_hash);
269 EXPECT_EQ(server_config_sig_b, state_b.server_config_sig); 274 EXPECT_EQ(server_config_sig_b, state_b.server_config_sig);
270 EXPECT_EQ(1U, state_b.certs.size()); 275 EXPECT_EQ(1U, state_b.certs.size());
271 EXPECT_EQ(cert_b, state_b.certs[0]); 276 EXPECT_EQ(cert_b, state_b.certs[0]);
272 277
273 RemoveMockTransaction(&kHostInfoTransaction2); 278 RemoveMockTransaction(&kHostInfoTransaction2);
274 RemoveMockTransaction(&kHostInfoTransaction1); 279 RemoveMockTransaction(&kHostInfoTransaction1);
275 } 280 }
276 281
277 // Test IsReadyToPersist when there is a pending write. 282 // Test IsReadyToPersist when there is a pending write.
278 TEST(DiskCacheBasedQuicServerInfo, IsReadyToPersist) { 283 TEST(DiskCacheBasedQuicServerInfo, IsReadyToPersist) {
279 MockHttpCache cache; 284 MockHttpCache cache;
280 AddMockTransaction(&kHostInfoTransaction1); 285 AddMockTransaction(&kHostInfoTransaction1);
281 TestCompletionCallback callback; 286 TestCompletionCallback callback;
282 287
283 QuicServerId server_id("www.google.com", 443, PRIVACY_MODE_DISABLED); 288 QuicServerId server_id("www.google.com", 443, PRIVACY_MODE_DISABLED);
284 std::unique_ptr<QuicServerInfo> quic_server_info( 289 std::unique_ptr<QuicServerInfo> quic_server_info(
285 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache())); 290 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache()));
286 EXPECT_FALSE(quic_server_info->IsDataReady()); 291 EXPECT_FALSE(quic_server_info->IsDataReady());
287 quic_server_info->Start(); 292 quic_server_info->Start();
288 int rv = quic_server_info->WaitForDataReady(callback.callback()); 293 int rv = quic_server_info->WaitForDataReady(callback.callback());
289 EXPECT_EQ(OK, callback.GetResult(rv)); 294 EXPECT_THAT(callback.GetResult(rv), IsOk());
290 EXPECT_TRUE(quic_server_info->IsDataReady()); 295 EXPECT_TRUE(quic_server_info->IsDataReady());
291 296
292 QuicServerInfo::State* state = quic_server_info->mutable_state(); 297 QuicServerInfo::State* state = quic_server_info->mutable_state();
293 EXPECT_TRUE(state->certs.empty()); 298 EXPECT_TRUE(state->certs.empty());
294 const string server_config_a = "server_config_a"; 299 const string server_config_a = "server_config_a";
295 const string source_address_token_a = "source_address_token_a"; 300 const string source_address_token_a = "source_address_token_a";
296 const string cert_sct_a = "cert_sct_a"; 301 const string cert_sct_a = "cert_sct_a";
297 const string chlo_hash_a = "chlo_hash_a"; 302 const string chlo_hash_a = "chlo_hash_a";
298 const string server_config_sig_a = "server_config_sig_a"; 303 const string server_config_sig_a = "server_config_sig_a";
299 const string cert_a = "cert_a"; 304 const string cert_a = "cert_a";
(...skipping 14 matching lines...) Expand all
314 // Wait until Persist() does the work. 319 // Wait until Persist() does the work.
315 base::RunLoop().RunUntilIdle(); 320 base::RunLoop().RunUntilIdle();
316 321
317 EXPECT_TRUE(quic_server_info->IsReadyToPersist()); 322 EXPECT_TRUE(quic_server_info->IsReadyToPersist());
318 323
319 // Verify that the state was updated. 324 // Verify that the state was updated.
320 quic_server_info.reset( 325 quic_server_info.reset(
321 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache())); 326 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache()));
322 quic_server_info->Start(); 327 quic_server_info->Start();
323 rv = quic_server_info->WaitForDataReady(callback.callback()); 328 rv = quic_server_info->WaitForDataReady(callback.callback());
324 EXPECT_EQ(OK, callback.GetResult(rv)); 329 EXPECT_THAT(callback.GetResult(rv), IsOk());
325 EXPECT_TRUE(quic_server_info->IsDataReady()); 330 EXPECT_TRUE(quic_server_info->IsDataReady());
326 331
327 const QuicServerInfo::State& state1 = quic_server_info->state(); 332 const QuicServerInfo::State& state1 = quic_server_info->state();
328 EXPECT_EQ(server_config_a, state1.server_config); 333 EXPECT_EQ(server_config_a, state1.server_config);
329 EXPECT_EQ(source_address_token_a, state1.source_address_token); 334 EXPECT_EQ(source_address_token_a, state1.source_address_token);
330 EXPECT_EQ(cert_sct_a, state1.cert_sct); 335 EXPECT_EQ(cert_sct_a, state1.cert_sct);
331 EXPECT_EQ(chlo_hash_a, state1.chlo_hash); 336 EXPECT_EQ(chlo_hash_a, state1.chlo_hash);
332 EXPECT_EQ(server_config_sig_a, state1.server_config_sig); 337 EXPECT_EQ(server_config_sig_a, state1.server_config_sig);
333 EXPECT_EQ(1U, state1.certs.size()); 338 EXPECT_EQ(1U, state1.certs.size());
334 EXPECT_EQ(cert_a, state1.certs[0]); 339 EXPECT_EQ(cert_a, state1.certs[0]);
335 340
336 RemoveMockTransaction(&kHostInfoTransaction1); 341 RemoveMockTransaction(&kHostInfoTransaction1);
337 } 342 }
338 343
339 // Test multiple calls to Persist. 344 // Test multiple calls to Persist.
340 TEST(DiskCacheBasedQuicServerInfo, MultiplePersist) { 345 TEST(DiskCacheBasedQuicServerInfo, MultiplePersist) {
341 MockHttpCache cache; 346 MockHttpCache cache;
342 AddMockTransaction(&kHostInfoTransaction1); 347 AddMockTransaction(&kHostInfoTransaction1);
343 TestCompletionCallback callback; 348 TestCompletionCallback callback;
344 349
345 QuicServerId server_id("www.google.com", 443, PRIVACY_MODE_DISABLED); 350 QuicServerId server_id("www.google.com", 443, PRIVACY_MODE_DISABLED);
346 std::unique_ptr<QuicServerInfo> quic_server_info( 351 std::unique_ptr<QuicServerInfo> quic_server_info(
347 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache())); 352 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache()));
348 EXPECT_FALSE(quic_server_info->IsDataReady()); 353 EXPECT_FALSE(quic_server_info->IsDataReady());
349 quic_server_info->Start(); 354 quic_server_info->Start();
350 int rv = quic_server_info->WaitForDataReady(callback.callback()); 355 int rv = quic_server_info->WaitForDataReady(callback.callback());
351 EXPECT_EQ(OK, callback.GetResult(rv)); 356 EXPECT_THAT(callback.GetResult(rv), IsOk());
352 EXPECT_TRUE(quic_server_info->IsDataReady()); 357 EXPECT_TRUE(quic_server_info->IsDataReady());
353 358
354 // Persist data once. 359 // Persist data once.
355 QuicServerInfo::State* state = quic_server_info->mutable_state(); 360 QuicServerInfo::State* state = quic_server_info->mutable_state();
356 EXPECT_TRUE(state->certs.empty()); 361 EXPECT_TRUE(state->certs.empty());
357 const string server_config_init = "server_config_init"; 362 const string server_config_init = "server_config_init";
358 const string source_address_token_init = "source_address_token_init"; 363 const string source_address_token_init = "source_address_token_init";
359 const string cert_sct_init = "cert_sct_init"; 364 const string cert_sct_init = "cert_sct_init";
360 const string chlo_hash_init = "chlo_hash_init"; 365 const string chlo_hash_init = "chlo_hash_init";
361 const string server_config_sig_init = "server_config_sig_init"; 366 const string server_config_sig_init = "server_config_sig_init";
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
404 // Wait until Persist() does the work. 409 // Wait until Persist() does the work.
405 base::RunLoop().RunUntilIdle(); 410 base::RunLoop().RunUntilIdle();
406 411
407 EXPECT_TRUE(quic_server_info->IsReadyToPersist()); 412 EXPECT_TRUE(quic_server_info->IsReadyToPersist());
408 413
409 // Verify that the state was updated. 414 // Verify that the state was updated.
410 quic_server_info.reset( 415 quic_server_info.reset(
411 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache())); 416 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache()));
412 quic_server_info->Start(); 417 quic_server_info->Start();
413 rv = quic_server_info->WaitForDataReady(callback.callback()); 418 rv = quic_server_info->WaitForDataReady(callback.callback());
414 EXPECT_EQ(OK, callback.GetResult(rv)); 419 EXPECT_THAT(callback.GetResult(rv), IsOk());
415 EXPECT_TRUE(quic_server_info->IsDataReady()); 420 EXPECT_TRUE(quic_server_info->IsDataReady());
416 421
417 const QuicServerInfo::State& state1 = quic_server_info->state(); 422 const QuicServerInfo::State& state1 = quic_server_info->state();
418 EXPECT_EQ(server_config_a, state1.server_config); 423 EXPECT_EQ(server_config_a, state1.server_config);
419 EXPECT_EQ(source_address_token_a, state1.source_address_token); 424 EXPECT_EQ(source_address_token_a, state1.source_address_token);
420 EXPECT_EQ(cert_sct_a, state1.cert_sct); 425 EXPECT_EQ(cert_sct_a, state1.cert_sct);
421 EXPECT_EQ(chlo_hash_a, state1.chlo_hash); 426 EXPECT_EQ(chlo_hash_a, state1.chlo_hash);
422 EXPECT_EQ(server_config_sig_a, state1.server_config_sig); 427 EXPECT_EQ(server_config_sig_a, state1.server_config_sig);
423 EXPECT_EQ(1U, state1.certs.size()); 428 EXPECT_EQ(1U, state1.certs.size());
424 EXPECT_EQ(cert_a, state1.certs[0]); 429 EXPECT_EQ(cert_a, state1.certs[0]);
425 430
426 RemoveMockTransaction(&kHostInfoTransaction1); 431 RemoveMockTransaction(&kHostInfoTransaction1);
427 } 432 }
428 433
429 TEST(DiskCacheBasedQuicServerInfo, CancelWaitForDataReady) { 434 TEST(DiskCacheBasedQuicServerInfo, CancelWaitForDataReady) {
430 MockBlockingBackendFactory* factory = new MockBlockingBackendFactory(); 435 MockBlockingBackendFactory* factory = new MockBlockingBackendFactory();
431 MockHttpCache cache(base::WrapUnique(factory)); 436 MockHttpCache cache(base::WrapUnique(factory));
432 TestCompletionCallback callback; 437 TestCompletionCallback callback;
433 QuicServerId server_id("www.google.com", 443, PRIVACY_MODE_DISABLED); 438 QuicServerId server_id("www.google.com", 443, PRIVACY_MODE_DISABLED);
434 std::unique_ptr<QuicServerInfo> quic_server_info( 439 std::unique_ptr<QuicServerInfo> quic_server_info(
435 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache())); 440 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache()));
436 EXPECT_FALSE(quic_server_info->IsDataReady()); 441 EXPECT_FALSE(quic_server_info->IsDataReady());
437 quic_server_info->Start(); 442 quic_server_info->Start();
438 int rv = quic_server_info->WaitForDataReady(callback.callback()); 443 int rv = quic_server_info->WaitForDataReady(callback.callback());
439 EXPECT_EQ(ERR_IO_PENDING, rv); 444 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
440 // Now cancel the callback. 445 // Now cancel the callback.
441 quic_server_info->CancelWaitForDataReadyCallback(); 446 quic_server_info->CancelWaitForDataReadyCallback();
442 EXPECT_FALSE(quic_server_info->IsDataReady()); 447 EXPECT_FALSE(quic_server_info->IsDataReady());
443 // Now complete the backend creation and let the callback run. 448 // Now complete the backend creation and let the callback run.
444 factory->FinishCreation(); 449 factory->FinishCreation();
445 EXPECT_TRUE(quic_server_info->IsDataReady()); 450 EXPECT_TRUE(quic_server_info->IsDataReady());
446 } 451 }
447 452
448 TEST(DiskCacheBasedQuicServerInfo, CancelWaitForDataReadyButDataIsReady) { 453 TEST(DiskCacheBasedQuicServerInfo, CancelWaitForDataReadyButDataIsReady) {
449 MockHttpCache cache; 454 MockHttpCache cache;
450 AddMockTransaction(&kHostInfoTransaction1); 455 AddMockTransaction(&kHostInfoTransaction1);
451 TestCompletionCallback callback; 456 TestCompletionCallback callback;
452 457
453 QuicServerId server_id("www.google.com", 443, PRIVACY_MODE_DISABLED); 458 QuicServerId server_id("www.google.com", 443, PRIVACY_MODE_DISABLED);
454 std::unique_ptr<QuicServerInfo> quic_server_info( 459 std::unique_ptr<QuicServerInfo> quic_server_info(
455 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache())); 460 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache()));
456 EXPECT_FALSE(quic_server_info->IsDataReady()); 461 EXPECT_FALSE(quic_server_info->IsDataReady());
457 quic_server_info->Start(); 462 quic_server_info->Start();
458 int rv = quic_server_info->WaitForDataReady(callback.callback()); 463 int rv = quic_server_info->WaitForDataReady(callback.callback());
459 quic_server_info->CancelWaitForDataReadyCallback(); 464 quic_server_info->CancelWaitForDataReadyCallback();
460 EXPECT_EQ(OK, callback.GetResult(rv)); 465 EXPECT_THAT(callback.GetResult(rv), IsOk());
461 EXPECT_TRUE(quic_server_info->IsDataReady()); 466 EXPECT_TRUE(quic_server_info->IsDataReady());
462 RemoveMockTransaction(&kHostInfoTransaction1); 467 RemoveMockTransaction(&kHostInfoTransaction1);
463 } 468 }
464 469
465 TEST(DiskCacheBasedQuicServerInfo, CancelWaitForDataReadyAfterDeleteCache) { 470 TEST(DiskCacheBasedQuicServerInfo, CancelWaitForDataReadyAfterDeleteCache) {
466 std::unique_ptr<QuicServerInfo> quic_server_info; 471 std::unique_ptr<QuicServerInfo> quic_server_info;
467 { 472 {
468 MockHttpCache cache; 473 MockHttpCache cache;
469 AddMockTransaction(&kHostInfoTransaction1); 474 AddMockTransaction(&kHostInfoTransaction1);
470 TestCompletionCallback callback; 475 TestCompletionCallback callback;
471 476
472 QuicServerId server_id("www.google.com", 443, PRIVACY_MODE_DISABLED); 477 QuicServerId server_id("www.google.com", 443, PRIVACY_MODE_DISABLED);
473 quic_server_info.reset( 478 quic_server_info.reset(
474 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache())); 479 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache()));
475 EXPECT_FALSE(quic_server_info->IsDataReady()); 480 EXPECT_FALSE(quic_server_info->IsDataReady());
476 quic_server_info->Start(); 481 quic_server_info->Start();
477 int rv = quic_server_info->WaitForDataReady(callback.callback()); 482 int rv = quic_server_info->WaitForDataReady(callback.callback());
478 quic_server_info->CancelWaitForDataReadyCallback(); 483 quic_server_info->CancelWaitForDataReadyCallback();
479 EXPECT_EQ(OK, callback.GetResult(rv)); 484 EXPECT_THAT(callback.GetResult(rv), IsOk());
480 EXPECT_TRUE(quic_server_info->IsDataReady()); 485 EXPECT_TRUE(quic_server_info->IsDataReady());
481 RemoveMockTransaction(&kHostInfoTransaction1); 486 RemoveMockTransaction(&kHostInfoTransaction1);
482 } 487 }
483 // Cancel the callback after Cache is deleted. 488 // Cancel the callback after Cache is deleted.
484 quic_server_info->ResetWaitForDataReadyCallback(); 489 quic_server_info->ResetWaitForDataReadyCallback();
485 } 490 }
486 491
487 // Test Start() followed by Persist() without calling WaitForDataReady. 492 // Test Start() followed by Persist() without calling WaitForDataReady.
488 TEST(DiskCacheBasedQuicServerInfo, StartAndPersist) { 493 TEST(DiskCacheBasedQuicServerInfo, StartAndPersist) {
489 MockHttpCache cache; 494 MockHttpCache cache;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
526 base::RunLoop().RunUntilIdle(); 531 base::RunLoop().RunUntilIdle();
527 532
528 EXPECT_TRUE(quic_server_info->IsReadyToPersist()); 533 EXPECT_TRUE(quic_server_info->IsReadyToPersist());
529 534
530 // Verify that the state was updated. 535 // Verify that the state was updated.
531 quic_server_info.reset( 536 quic_server_info.reset(
532 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache())); 537 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache()));
533 quic_server_info->Start(); 538 quic_server_info->Start();
534 TestCompletionCallback callback; 539 TestCompletionCallback callback;
535 int rv = quic_server_info->WaitForDataReady(callback.callback()); 540 int rv = quic_server_info->WaitForDataReady(callback.callback());
536 EXPECT_EQ(OK, callback.GetResult(rv)); 541 EXPECT_THAT(callback.GetResult(rv), IsOk());
537 EXPECT_TRUE(quic_server_info->IsDataReady()); 542 EXPECT_TRUE(quic_server_info->IsDataReady());
538 543
539 const QuicServerInfo::State& state1 = quic_server_info->state(); 544 const QuicServerInfo::State& state1 = quic_server_info->state();
540 EXPECT_EQ(server_config_a, state1.server_config); 545 EXPECT_EQ(server_config_a, state1.server_config);
541 EXPECT_EQ(source_address_token_a, state1.source_address_token); 546 EXPECT_EQ(source_address_token_a, state1.source_address_token);
542 EXPECT_EQ(cert_sct_a, state1.cert_sct); 547 EXPECT_EQ(cert_sct_a, state1.cert_sct);
543 EXPECT_EQ(chlo_hash_a, state1.chlo_hash); 548 EXPECT_EQ(chlo_hash_a, state1.chlo_hash);
544 EXPECT_EQ(server_config_sig_a, state1.server_config_sig); 549 EXPECT_EQ(server_config_sig_a, state1.server_config_sig);
545 EXPECT_EQ(1U, state1.certs.size()); 550 EXPECT_EQ(1U, state1.certs.size());
546 EXPECT_EQ(cert_a, state1.certs[0]); 551 EXPECT_EQ(cert_a, state1.certs[0]);
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
590 EXPECT_TRUE(quic_server_info->IsDataReady()); 595 EXPECT_TRUE(quic_server_info->IsDataReady());
591 596
592 // Wait until Persist() does the work. 597 // Wait until Persist() does the work.
593 base::RunLoop().RunUntilIdle(); 598 base::RunLoop().RunUntilIdle();
594 599
595 // Verify that the state was updated. 600 // Verify that the state was updated.
596 quic_server_info.reset( 601 quic_server_info.reset(
597 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache())); 602 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache()));
598 quic_server_info->Start(); 603 quic_server_info->Start();
599 int rv = quic_server_info->WaitForDataReady(callback.callback()); 604 int rv = quic_server_info->WaitForDataReady(callback.callback());
600 EXPECT_EQ(OK, callback.GetResult(rv)); 605 EXPECT_THAT(callback.GetResult(rv), IsOk());
601 EXPECT_TRUE(quic_server_info->IsDataReady()); 606 EXPECT_TRUE(quic_server_info->IsDataReady());
602 607
603 const QuicServerInfo::State& state1 = quic_server_info->state(); 608 const QuicServerInfo::State& state1 = quic_server_info->state();
604 EXPECT_EQ(server_config_init, state1.server_config); 609 EXPECT_EQ(server_config_init, state1.server_config);
605 EXPECT_EQ(source_address_token_init, state1.source_address_token); 610 EXPECT_EQ(source_address_token_init, state1.source_address_token);
606 EXPECT_EQ(cert_sct_init, state1.cert_sct); 611 EXPECT_EQ(cert_sct_init, state1.cert_sct);
607 EXPECT_EQ(chlo_hash_init, state1.chlo_hash); 612 EXPECT_EQ(chlo_hash_init, state1.chlo_hash);
608 EXPECT_EQ(server_config_sig_init, state1.server_config_sig); 613 EXPECT_EQ(server_config_sig_init, state1.server_config_sig);
609 EXPECT_EQ(1U, state1.certs.size()); 614 EXPECT_EQ(1U, state1.certs.size());
610 EXPECT_EQ(cert_init, state1.certs[0]); 615 EXPECT_EQ(cert_init, state1.certs[0]);
611 RemoveMockTransaction(&kHostInfoTransaction1); 616 RemoveMockTransaction(&kHostInfoTransaction1);
612 } 617 }
613 618
614 // Test multiple calls to Persist without waiting for the data to be written. 619 // Test multiple calls to Persist without waiting for the data to be written.
615 TEST(DiskCacheBasedQuicServerInfo, MultiplePersistsWithoutWaiting) { 620 TEST(DiskCacheBasedQuicServerInfo, MultiplePersistsWithoutWaiting) {
616 MockHttpCache cache; 621 MockHttpCache cache;
617 AddMockTransaction(&kHostInfoTransaction1); 622 AddMockTransaction(&kHostInfoTransaction1);
618 TestCompletionCallback callback; 623 TestCompletionCallback callback;
619 624
620 QuicServerId server_id("www.google.com", 443, PRIVACY_MODE_DISABLED); 625 QuicServerId server_id("www.google.com", 443, PRIVACY_MODE_DISABLED);
621 std::unique_ptr<QuicServerInfo> quic_server_info( 626 std::unique_ptr<QuicServerInfo> quic_server_info(
622 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache())); 627 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache()));
623 EXPECT_FALSE(quic_server_info->IsDataReady()); 628 EXPECT_FALSE(quic_server_info->IsDataReady());
624 quic_server_info->Start(); 629 quic_server_info->Start();
625 int rv = quic_server_info->WaitForDataReady(callback.callback()); 630 int rv = quic_server_info->WaitForDataReady(callback.callback());
626 EXPECT_EQ(OK, callback.GetResult(rv)); 631 EXPECT_THAT(callback.GetResult(rv), IsOk());
627 EXPECT_TRUE(quic_server_info->IsDataReady()); 632 EXPECT_TRUE(quic_server_info->IsDataReady());
628 633
629 // Persist data once. 634 // Persist data once.
630 QuicServerInfo::State* state = quic_server_info->mutable_state(); 635 QuicServerInfo::State* state = quic_server_info->mutable_state();
631 EXPECT_TRUE(state->certs.empty()); 636 EXPECT_TRUE(state->certs.empty());
632 const string server_config_init = "server_config_init"; 637 const string server_config_init = "server_config_init";
633 const string source_address_token_init = "source_address_token_init"; 638 const string source_address_token_init = "source_address_token_init";
634 const string cert_sct_init = "cert_sct_init"; 639 const string cert_sct_init = "cert_sct_init";
635 const string chlo_hash_init = "chlo_hash_init"; 640 const string chlo_hash_init = "chlo_hash_init";
636 const string server_config_sig_init = "server_config_sig_init"; 641 const string server_config_sig_init = "server_config_sig_init";
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
670 // Wait until Persist() does the work. 675 // Wait until Persist() does the work.
671 base::RunLoop().RunUntilIdle(); 676 base::RunLoop().RunUntilIdle();
672 677
673 EXPECT_TRUE(quic_server_info->IsReadyToPersist()); 678 EXPECT_TRUE(quic_server_info->IsReadyToPersist());
674 679
675 // Verify that the state was updated. 680 // Verify that the state was updated.
676 quic_server_info.reset( 681 quic_server_info.reset(
677 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache())); 682 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache()));
678 quic_server_info->Start(); 683 quic_server_info->Start();
679 rv = quic_server_info->WaitForDataReady(callback.callback()); 684 rv = quic_server_info->WaitForDataReady(callback.callback());
680 EXPECT_EQ(OK, callback.GetResult(rv)); 685 EXPECT_THAT(callback.GetResult(rv), IsOk());
681 EXPECT_TRUE(quic_server_info->IsDataReady()); 686 EXPECT_TRUE(quic_server_info->IsDataReady());
682 687
683 // Verify the second time persisted data is persisted. 688 // Verify the second time persisted data is persisted.
684 const QuicServerInfo::State& state1 = quic_server_info->state(); 689 const QuicServerInfo::State& state1 = quic_server_info->state();
685 EXPECT_EQ(server_config_a, state1.server_config); 690 EXPECT_EQ(server_config_a, state1.server_config);
686 EXPECT_EQ(source_address_token_a, state1.source_address_token); 691 EXPECT_EQ(source_address_token_a, state1.source_address_token);
687 EXPECT_EQ(cert_sct_a, state1.cert_sct); 692 EXPECT_EQ(cert_sct_a, state1.cert_sct);
688 EXPECT_EQ(chlo_hash_a, state1.chlo_hash); 693 EXPECT_EQ(chlo_hash_a, state1.chlo_hash);
689 EXPECT_EQ(server_config_sig_a, state1.server_config_sig); 694 EXPECT_EQ(server_config_sig_a, state1.server_config_sig);
690 EXPECT_EQ(1U, state1.certs.size()); 695 EXPECT_EQ(1U, state1.certs.size());
691 EXPECT_EQ(cert_a, state1.certs[0]); 696 EXPECT_EQ(cert_a, state1.certs[0]);
692 697
693 RemoveMockTransaction(&kHostInfoTransaction1); 698 RemoveMockTransaction(&kHostInfoTransaction1);
694 } 699 }
695 700
696 // crbug.com/439209: test deletion of QuicServerInfo object in the callback 701 // crbug.com/439209: test deletion of QuicServerInfo object in the callback
697 // doesn't crash. 702 // doesn't crash.
698 TEST(DiskCacheBasedQuicServerInfo, DeleteServerInfoInCallback) { 703 TEST(DiskCacheBasedQuicServerInfo, DeleteServerInfoInCallback) {
699 // Use the blocking mock backend factory to force asynchronous completion 704 // Use the blocking mock backend factory to force asynchronous completion
700 // of quic_server_info->WaitForDataReady(), so that the callback will run. 705 // of quic_server_info->WaitForDataReady(), so that the callback will run.
701 MockBlockingBackendFactory* factory = new MockBlockingBackendFactory(); 706 MockBlockingBackendFactory* factory = new MockBlockingBackendFactory();
702 MockHttpCache cache(base::WrapUnique(factory)); 707 MockHttpCache cache(base::WrapUnique(factory));
703 QuicServerId server_id("www.verisign.com", 443, PRIVACY_MODE_DISABLED); 708 QuicServerId server_id("www.verisign.com", 443, PRIVACY_MODE_DISABLED);
704 QuicServerInfo* quic_server_info = 709 QuicServerInfo* quic_server_info =
705 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache()); 710 new DiskCacheBasedQuicServerInfo(server_id, cache.http_cache());
706 // |cb| takes owndership and deletes |quic_server_info| when it is called. 711 // |cb| takes owndership and deletes |quic_server_info| when it is called.
707 DeleteCacheCompletionCallback cb(quic_server_info); 712 DeleteCacheCompletionCallback cb(quic_server_info);
708 quic_server_info->Start(); 713 quic_server_info->Start();
709 int rv = quic_server_info->WaitForDataReady(cb.callback()); 714 int rv = quic_server_info->WaitForDataReady(cb.callback());
710 EXPECT_EQ(ERR_IO_PENDING, rv); 715 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
711 // Now complete the backend creation and let the callback run. 716 // Now complete the backend creation and let the callback run.
712 factory->FinishCreation(); 717 factory->FinishCreation();
713 EXPECT_EQ(OK, cb.GetResult(rv)); 718 EXPECT_THAT(cb.GetResult(rv), IsOk());
714 } 719 }
715 720
716 } // namespace net 721 } // namespace net
OLDNEW
« no previous file with comments | « net/http/bidirectional_stream_unittest.cc ('k') | net/http/http_auth_handler_basic_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698