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

Side by Side Diff: net/ssl/ssl_client_session_cache_impl_unittest.cc

Issue 1921563003: Renaming _openssl files to _impl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/ssl/ssl_client_session_cache_openssl.h" 5 #include "net/ssl/ssl_client_session_cache_impl.h"
6 6
7 #include <openssl/ssl.h> 7 #include <openssl/ssl.h>
8 8
9 #include "base/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
11 #include "base/test/simple_test_clock.h" 11 #include "base/test/simple_test_clock.h"
12 #include "net/ssl/scoped_openssl_types.h" 12 #include "net/ssl/scoped_openssl_types.h"
13 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
14 14
15 namespace net { 15 namespace net {
16 16
17 // Test basic insertion and lookup operations. 17 // Test basic insertion and lookup operations.
18 TEST(SSLClientSessionCacheOpenSSLTest, Basic) { 18 TEST(SSLClientSessionCacheImplTest, Basic) {
19 SSLClientSessionCacheOpenSSL::Config config; 19 SSLClientSessionCacheImpl::Config config;
20 SSLClientSessionCacheOpenSSL cache(config); 20 SSLClientSessionCacheImpl cache(config);
21 21
22 ScopedSSL_SESSION session1(SSL_SESSION_new()); 22 ScopedSSL_SESSION session1(SSL_SESSION_new());
23 ScopedSSL_SESSION session2(SSL_SESSION_new()); 23 ScopedSSL_SESSION session2(SSL_SESSION_new());
24 ScopedSSL_SESSION session3(SSL_SESSION_new()); 24 ScopedSSL_SESSION session3(SSL_SESSION_new());
25 EXPECT_EQ(1u, session1->references); 25 EXPECT_EQ(1u, session1->references);
26 EXPECT_EQ(1u, session2->references); 26 EXPECT_EQ(1u, session2->references);
27 EXPECT_EQ(1u, session3->references); 27 EXPECT_EQ(1u, session3->references);
28 28
29 EXPECT_EQ(nullptr, cache.Lookup("key1").get()); 29 EXPECT_EQ(nullptr, cache.Lookup("key1").get());
30 EXPECT_EQ(nullptr, cache.Lookup("key2").get()); 30 EXPECT_EQ(nullptr, cache.Lookup("key2").get());
(...skipping 27 matching lines...) Expand all
58 EXPECT_EQ(nullptr, cache.Lookup("key3").get()); 58 EXPECT_EQ(nullptr, cache.Lookup("key3").get());
59 EXPECT_EQ(0u, cache.size()); 59 EXPECT_EQ(0u, cache.size());
60 60
61 EXPECT_EQ(1u, session1->references); 61 EXPECT_EQ(1u, session1->references);
62 EXPECT_EQ(1u, session2->references); 62 EXPECT_EQ(1u, session2->references);
63 EXPECT_EQ(1u, session3->references); 63 EXPECT_EQ(1u, session3->references);
64 } 64 }
65 65
66 // Test that a session may be inserted at two different keys. This should never 66 // Test that a session may be inserted at two different keys. This should never
67 // be necessary, but the API doesn't prohibit it. 67 // be necessary, but the API doesn't prohibit it.
68 TEST(SSLClientSessionCacheOpenSSLTest, DoubleInsert) { 68 TEST(SSLClientSessionCacheImplTest, DoubleInsert) {
69 SSLClientSessionCacheOpenSSL::Config config; 69 SSLClientSessionCacheImpl::Config config;
70 SSLClientSessionCacheOpenSSL cache(config); 70 SSLClientSessionCacheImpl cache(config);
71 71
72 ScopedSSL_SESSION session(SSL_SESSION_new()); 72 ScopedSSL_SESSION session(SSL_SESSION_new());
73 EXPECT_EQ(1u, session->references); 73 EXPECT_EQ(1u, session->references);
74 74
75 EXPECT_EQ(nullptr, cache.Lookup("key1").get()); 75 EXPECT_EQ(nullptr, cache.Lookup("key1").get());
76 EXPECT_EQ(nullptr, cache.Lookup("key2").get()); 76 EXPECT_EQ(nullptr, cache.Lookup("key2").get());
77 EXPECT_EQ(0u, cache.size()); 77 EXPECT_EQ(0u, cache.size());
78 78
79 cache.Insert("key1", session.get()); 79 cache.Insert("key1", session.get());
80 EXPECT_EQ(session.get(), cache.Lookup("key1").get()); 80 EXPECT_EQ(session.get(), cache.Lookup("key1").get());
(...skipping 11 matching lines...) Expand all
92 92
93 cache.Flush(); 93 cache.Flush();
94 EXPECT_EQ(nullptr, cache.Lookup("key1").get()); 94 EXPECT_EQ(nullptr, cache.Lookup("key1").get());
95 EXPECT_EQ(nullptr, cache.Lookup("key2").get()); 95 EXPECT_EQ(nullptr, cache.Lookup("key2").get());
96 EXPECT_EQ(0u, cache.size()); 96 EXPECT_EQ(0u, cache.size());
97 97
98 EXPECT_EQ(1u, session->references); 98 EXPECT_EQ(1u, session->references);
99 } 99 }
100 100
101 // Tests that the session cache's size is correctly bounded. 101 // Tests that the session cache's size is correctly bounded.
102 TEST(SSLClientSessionCacheOpenSSLTest, MaxEntries) { 102 TEST(SSLClientSessionCacheImplTest, MaxEntries) {
103 SSLClientSessionCacheOpenSSL::Config config; 103 SSLClientSessionCacheImpl::Config config;
104 config.max_entries = 3; 104 config.max_entries = 3;
105 SSLClientSessionCacheOpenSSL cache(config); 105 SSLClientSessionCacheImpl cache(config);
106 106
107 ScopedSSL_SESSION session1(SSL_SESSION_new()); 107 ScopedSSL_SESSION session1(SSL_SESSION_new());
108 ScopedSSL_SESSION session2(SSL_SESSION_new()); 108 ScopedSSL_SESSION session2(SSL_SESSION_new());
109 ScopedSSL_SESSION session3(SSL_SESSION_new()); 109 ScopedSSL_SESSION session3(SSL_SESSION_new());
110 ScopedSSL_SESSION session4(SSL_SESSION_new()); 110 ScopedSSL_SESSION session4(SSL_SESSION_new());
111 111
112 // Insert three entries. 112 // Insert three entries.
113 cache.Insert("key1", session1.get()); 113 cache.Insert("key1", session1.get());
114 cache.Insert("key2", session2.get()); 114 cache.Insert("key2", session2.get());
115 cache.Insert("key3", session3.get()); 115 cache.Insert("key3", session3.get());
(...skipping 14 matching lines...) Expand all
130 // least. recently. 130 // least. recently.
131 cache.Insert("key1", session1.get()); 131 cache.Insert("key1", session1.get());
132 EXPECT_EQ(session1.get(), cache.Lookup("key1").get()); 132 EXPECT_EQ(session1.get(), cache.Lookup("key1").get());
133 EXPECT_EQ(session2.get(), cache.Lookup("key2").get()); 133 EXPECT_EQ(session2.get(), cache.Lookup("key2").get());
134 EXPECT_EQ(session3.get(), cache.Lookup("key3").get()); 134 EXPECT_EQ(session3.get(), cache.Lookup("key3").get());
135 EXPECT_EQ(nullptr, cache.Lookup("key4").get()); 135 EXPECT_EQ(nullptr, cache.Lookup("key4").get());
136 EXPECT_EQ(3u, cache.size()); 136 EXPECT_EQ(3u, cache.size());
137 } 137 }
138 138
139 // Tests that session expiration works properly. 139 // Tests that session expiration works properly.
140 TEST(SSLClientSessionCacheOpenSSLTest, Expiration) { 140 TEST(SSLClientSessionCacheImplTest, Expiration) {
141 const size_t kNumEntries = 20; 141 const size_t kNumEntries = 20;
142 const size_t kExpirationCheckCount = 10; 142 const size_t kExpirationCheckCount = 10;
143 const base::TimeDelta kTimeout = base::TimeDelta::FromSeconds(1000); 143 const base::TimeDelta kTimeout = base::TimeDelta::FromSeconds(1000);
144 144
145 SSLClientSessionCacheOpenSSL::Config config; 145 SSLClientSessionCacheImpl::Config config;
146 config.expiration_check_count = kExpirationCheckCount; 146 config.expiration_check_count = kExpirationCheckCount;
147 config.timeout = kTimeout; 147 config.timeout = kTimeout;
148 SSLClientSessionCacheOpenSSL cache(config); 148 SSLClientSessionCacheImpl cache(config);
149 base::SimpleTestClock* clock = new base::SimpleTestClock; 149 base::SimpleTestClock* clock = new base::SimpleTestClock;
150 cache.SetClockForTesting(base::WrapUnique(clock)); 150 cache.SetClockForTesting(base::WrapUnique(clock));
151 151
152 // Add |kNumEntries - 1| entries. 152 // Add |kNumEntries - 1| entries.
153 for (size_t i = 0; i < kNumEntries - 1; i++) { 153 for (size_t i = 0; i < kNumEntries - 1; i++) {
154 ScopedSSL_SESSION session(SSL_SESSION_new()); 154 ScopedSSL_SESSION session(SSL_SESSION_new());
155 cache.Insert(base::SizeTToString(i), session.get()); 155 cache.Insert(base::SizeTToString(i), session.get());
156 } 156 }
157 EXPECT_EQ(kNumEntries - 1, cache.size()); 157 EXPECT_EQ(kNumEntries - 1, cache.size());
158 158
(...skipping 18 matching lines...) Expand all
177 EXPECT_EQ(1u, cache.size()); 177 EXPECT_EQ(1u, cache.size());
178 EXPECT_EQ(session.get(), cache.Lookup("key").get()); 178 EXPECT_EQ(session.get(), cache.Lookup("key").get());
179 for (size_t i = 0; i < kNumEntries - 1; i++) { 179 for (size_t i = 0; i < kNumEntries - 1; i++) {
180 SCOPED_TRACE(i); 180 SCOPED_TRACE(i);
181 EXPECT_EQ(nullptr, cache.Lookup(base::SizeTToString(i))); 181 EXPECT_EQ(nullptr, cache.Lookup(base::SizeTToString(i)));
182 } 182 }
183 } 183 }
184 184
185 // Tests that Lookup performs an expiration check before returning a cached 185 // Tests that Lookup performs an expiration check before returning a cached
186 // session. 186 // session.
187 TEST(SSLClientSessionCacheOpenSSLTest, LookupExpirationCheck) { 187 TEST(SSLClientSessionCacheImplTest, LookupExpirationCheck) {
188 // kExpirationCheckCount is set to a suitably large number so the automated 188 // kExpirationCheckCount is set to a suitably large number so the automated
189 // pruning never triggers. 189 // pruning never triggers.
190 const size_t kExpirationCheckCount = 1000; 190 const size_t kExpirationCheckCount = 1000;
191 const base::TimeDelta kTimeout = base::TimeDelta::FromSeconds(1000); 191 const base::TimeDelta kTimeout = base::TimeDelta::FromSeconds(1000);
192 192
193 SSLClientSessionCacheOpenSSL::Config config; 193 SSLClientSessionCacheImpl::Config config;
194 config.expiration_check_count = kExpirationCheckCount; 194 config.expiration_check_count = kExpirationCheckCount;
195 config.timeout = kTimeout; 195 config.timeout = kTimeout;
196 SSLClientSessionCacheOpenSSL cache(config); 196 SSLClientSessionCacheImpl cache(config);
197 base::SimpleTestClock* clock = new base::SimpleTestClock; 197 base::SimpleTestClock* clock = new base::SimpleTestClock;
198 cache.SetClockForTesting(base::WrapUnique(clock)); 198 cache.SetClockForTesting(base::WrapUnique(clock));
199 199
200 // Insert an entry into the session cache. 200 // Insert an entry into the session cache.
201 ScopedSSL_SESSION session(SSL_SESSION_new()); 201 ScopedSSL_SESSION session(SSL_SESSION_new());
202 cache.Insert("key", session.get()); 202 cache.Insert("key", session.get());
203 EXPECT_EQ(session.get(), cache.Lookup("key").get()); 203 EXPECT_EQ(session.get(), cache.Lookup("key").get());
204 EXPECT_EQ(1u, cache.size()); 204 EXPECT_EQ(1u, cache.size());
205 205
206 // Expire the session. 206 // Expire the session.
(...skipping 11 matching lines...) Expand all
218 EXPECT_EQ(session.get(), cache.Lookup("key").get()); 218 EXPECT_EQ(session.get(), cache.Lookup("key").get());
219 EXPECT_EQ(1u, cache.size()); 219 EXPECT_EQ(1u, cache.size());
220 220
221 clock->Advance(-kTimeout * 2); 221 clock->Advance(-kTimeout * 2);
222 222
223 EXPECT_EQ(nullptr, cache.Lookup("key").get()); 223 EXPECT_EQ(nullptr, cache.Lookup("key").get());
224 EXPECT_EQ(0u, cache.size()); 224 EXPECT_EQ(0u, cache.size());
225 } 225 }
226 226
227 } // namespace net 227 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698