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

Side by Side Diff: net/quic/crypto/quic_crypto_client_config_test.cc

Issue 255783002: QUIC - Minor clean up of QUIC Server Info memory cache. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: minor cleanup Created 6 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
« no previous file with comments | « net/quic/crypto/quic_crypto_client_config.cc ('k') | net/quic/quic_stream_factory.h » ('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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/quic/crypto/quic_crypto_client_config.h" 5 #include "net/quic/crypto/quic_crypto_client_config.h"
6 6
7 #include "net/quic/crypto/proof_verifier.h" 7 #include "net/quic/crypto/proof_verifier.h"
8 #include "net/quic/quic_server_id.h" 8 #include "net/quic/quic_server_id.h"
9 #include "net/quic/test_tools/mock_random.h" 9 #include "net/quic/test_tools/mock_random.h"
10 #include "net/quic/test_tools/quic_test_utils.h" 10 #include "net/quic/test_tools/quic_test_utils.h"
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 string error; 156 string error;
157 QuicCryptoClientConfig config; 157 QuicCryptoClientConfig config;
158 EXPECT_EQ(QUIC_VERSION_NEGOTIATION_MISMATCH, 158 EXPECT_EQ(QUIC_VERSION_NEGOTIATION_MISMATCH,
159 config.ProcessServerHello(msg, 0, supported_versions, 159 config.ProcessServerHello(msg, 0, supported_versions,
160 &cached, &out_params, &error)); 160 &cached, &out_params, &error));
161 EXPECT_EQ("Downgrade attack detected", error); 161 EXPECT_EQ("Downgrade attack detected", error);
162 } 162 }
163 163
164 TEST(QuicCryptoClientConfigTest, InitializeFrom) { 164 TEST(QuicCryptoClientConfigTest, InitializeFrom) {
165 QuicCryptoClientConfig config; 165 QuicCryptoClientConfig config;
166 QuicServerId canonical_server_id("www.google.com", 80, false, 166 QuicServerId server_id("www.google.com", 80, false, PRIVACY_MODE_DISABLED);
wtc 2014/04/25 18:17:28 Please undo the changes to this unit test. In this
ramant (doing other things) 2014/04/25 18:55:30 Done.
167 PRIVACY_MODE_DISABLED); 167 QuicCryptoClientConfig::CachedState* state = config.LookupOrCreate(server_id);
168 QuicCryptoClientConfig::CachedState* state =
169 config.LookupOrCreate(canonical_server_id);
170 // TODO(rch): Populate other fields of |state|. 168 // TODO(rch): Populate other fields of |state|.
171 state->set_source_address_token("TOKEN"); 169 state->set_source_address_token("TOKEN");
172 state->SetProofValid(); 170 state->SetProofValid();
173 171
174 QuicServerId other_server_id("mail.google.com", 80, false, 172 QuicServerId other_server_id("mail.google.com", 80, false,
175 PRIVACY_MODE_DISABLED); 173 PRIVACY_MODE_DISABLED);
176 config.InitializeFrom(other_server_id, canonical_server_id, &config); 174 config.InitializeFrom(other_server_id, server_id, &config);
177 QuicCryptoClientConfig::CachedState* other = 175 QuicCryptoClientConfig::CachedState* other =
178 config.LookupOrCreate(other_server_id); 176 config.LookupOrCreate(other_server_id);
179 177
180 EXPECT_EQ(state->server_config(), other->server_config()); 178 EXPECT_EQ(state->server_config(), other->server_config());
181 EXPECT_EQ(state->source_address_token(), other->source_address_token()); 179 EXPECT_EQ(state->source_address_token(), other->source_address_token());
182 EXPECT_EQ(state->certs(), other->certs()); 180 EXPECT_EQ(state->certs(), other->certs());
183 EXPECT_EQ(1u, other->generation_counter()); 181 EXPECT_EQ(1u, other->generation_counter());
184 } 182 }
185 183
186 TEST(QuicCryptoClientConfigTest, Canonical) { 184 TEST(QuicCryptoClientConfigTest, Canonical) {
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 // TODO(rch): Populate other fields of |state|. 220 // TODO(rch): Populate other fields of |state|.
223 state->set_source_address_token("TOKEN"); 221 state->set_source_address_token("TOKEN");
224 222
225 // Do not set the proof as valid, and check that it is not used 223 // Do not set the proof as valid, and check that it is not used
226 // as a canonical entry. 224 // as a canonical entry.
227 EXPECT_TRUE(config.LookupOrCreate(canonical_id2)->IsEmpty()); 225 EXPECT_TRUE(config.LookupOrCreate(canonical_id2)->IsEmpty());
228 } 226 }
229 227
230 TEST(QuicCryptoClientConfigTest, ClearCachedStates) { 228 TEST(QuicCryptoClientConfigTest, ClearCachedStates) {
231 QuicCryptoClientConfig config; 229 QuicCryptoClientConfig config;
232 QuicServerId canonical_server_id("www.google.com", 80, false, 230 QuicServerId server_id("www.google.com", 80, false, PRIVACY_MODE_DISABLED);
233 PRIVACY_MODE_DISABLED); 231 QuicCryptoClientConfig::CachedState* state = config.LookupOrCreate(server_id);
234 QuicCryptoClientConfig::CachedState* state =
235 config.LookupOrCreate(canonical_server_id);
236 // TODO(rch): Populate other fields of |state|. 232 // TODO(rch): Populate other fields of |state|.
237 vector<string> certs(1); 233 vector<string> certs(1);
238 certs[0] = "Hello Cert"; 234 certs[0] = "Hello Cert";
239 state->SetProof(certs, "signature"); 235 state->SetProof(certs, "signature");
240 state->set_source_address_token("TOKEN"); 236 state->set_source_address_token("TOKEN");
241 state->SetProofValid(); 237 state->SetProofValid();
242 238
243 // Verify LookupOrCreate returns the same data. 239 // Verify LookupOrCreate returns the same data.
244 QuicServerId other_server_id("www.google.com", 80, false, 240 QuicCryptoClientConfig::CachedState* other = config.LookupOrCreate(server_id);
245 PRIVACY_MODE_DISABLED);
246 241
247 QuicCryptoClientConfig::CachedState* other = 242 EXPECT_EQ(state, other);
248 config.LookupOrCreate(other_server_id);
249
250 EXPECT_TRUE(other->proof_valid()); 243 EXPECT_TRUE(other->proof_valid());
251 EXPECT_EQ(state->server_config(), other->server_config()); 244 EXPECT_EQ(state->server_config(), other->server_config());
252 EXPECT_EQ(state->signature(), other->signature()); 245 EXPECT_EQ(state->signature(), other->signature());
253 EXPECT_EQ(state->certs(), other->certs()); 246 EXPECT_EQ(state->certs(), other->certs());
254 EXPECT_EQ(state->source_address_token(), other->source_address_token()); 247 EXPECT_EQ(state->source_address_token(), other->source_address_token());
255 EXPECT_EQ(1u, other->generation_counter()); 248 EXPECT_EQ(1u, other->generation_counter());
wtc 2014/04/25 18:17:28 Once we verify |other| and |state| point to the sa
ramant (doing other things) 2014/04/25 18:55:30 Done.
256 249
257 // Clear the cached state. 250 // Clear the cached states.
258 config.ClearCachedStates(); 251 config.ClearCachedStates();
259 252
260 // Verify LookupOrCreate doesn't have any data. 253 // Verify LookupOrCreate doesn't have any data.
261 QuicCryptoClientConfig::CachedState* cleared_cache = 254 QuicCryptoClientConfig::CachedState* cleared_cache =
262 config.LookupOrCreate(other_server_id); 255 config.LookupOrCreate(server_id);
263 256
257 EXPECT_EQ(state, cleared_cache);
264 EXPECT_FALSE(cleared_cache->proof_valid()); 258 EXPECT_FALSE(cleared_cache->proof_valid());
265 EXPECT_TRUE(cleared_cache->server_config().empty()); 259 EXPECT_TRUE(cleared_cache->server_config().empty());
266 EXPECT_TRUE(cleared_cache->certs().empty()); 260 EXPECT_TRUE(cleared_cache->certs().empty());
267 EXPECT_TRUE(cleared_cache->signature().empty()); 261 EXPECT_TRUE(cleared_cache->signature().empty());
268 EXPECT_LT(1u, cleared_cache->generation_counter()); 262 EXPECT_EQ(2u, cleared_cache->generation_counter());
269 } 263 }
270 264
271 } // namespace test 265 } // namespace test
272 } // namespace net 266 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/crypto/quic_crypto_client_config.cc ('k') | net/quic/quic_stream_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698