diff options
author | rch@chromium.org <rch@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-23 16:45:23 +0000 |
---|---|---|
committer | rch@chromium.org <rch@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-23 16:45:23 +0000 |
commit | 916f718379993bab5cd5114ee4763097dcfd2053 (patch) | |
tree | d1a17b73eb077384e6b36c54fe80fd9d418520fd | |
parent | ffe3d6fa42e9ca8743557a20db13c65d45baacf1 (diff) | |
download | chromium_src-916f718379993bab5cd5114ee4763097dcfd2053.zip chromium_src-916f718379993bab5cd5114ee4763097dcfd2053.tar.gz chromium_src-916f718379993bab5cd5114ee4763097dcfd2053.tar.bz2 |
Add a new Clear() method to the SSLClientAuthCache.
Review URL: http://codereview.chromium.org/6551025
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75753 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | net/base/ssl_client_auth_cache.cc | 4 | ||||
-rw-r--r-- | net/base/ssl_client_auth_cache.h | 3 | ||||
-rw-r--r-- | net/base/ssl_client_auth_cache_unittest.cc | 31 |
3 files changed, 38 insertions, 0 deletions
diff --git a/net/base/ssl_client_auth_cache.cc b/net/base/ssl_client_auth_cache.cc index 355073f..cdaad7f 100644 --- a/net/base/ssl_client_auth_cache.cc +++ b/net/base/ssl_client_auth_cache.cc @@ -37,4 +37,8 @@ void SSLClientAuthCache::Remove(const std::string& server) { cache_.erase(server); } +void SSLClientAuthCache::Clear() { + cache_.clear(); +} + } // namespace net diff --git a/net/base/ssl_client_auth_cache.h b/net/base/ssl_client_auth_cache.h index 2b276a2..b37164a 100644 --- a/net/base/ssl_client_auth_cache.h +++ b/net/base/ssl_client_auth_cache.h @@ -44,6 +44,9 @@ class SSLClientAuthCache { // Remove the client certificate for |server| from the cache, if one exists. void Remove(const std::string& server); + // Removes all cache entries. + void Clear(); + private: typedef std::string AuthCacheKey; typedef scoped_refptr<X509Certificate> AuthCacheValue; diff --git a/net/base/ssl_client_auth_cache_unittest.cc b/net/base/ssl_client_auth_cache_unittest.cc index f528d58..144e114 100644 --- a/net/base/ssl_client_auth_cache_unittest.cc +++ b/net/base/ssl_client_auth_cache_unittest.cc @@ -137,4 +137,35 @@ TEST(SSLClientAuthCacheTest, LookupNullPreference) { EXPECT_EQ(NULL, cached_cert.get()); } +// Check that the Clear() method removes all cache entries. +TEST(SSLClientAuthCacheTest, Clear) { + SSLClientAuthCache cache; + base::Time start_date = base::Time::Now(); + base::Time expiration_date = start_date + base::TimeDelta::FromDays(1); + + std::string server1("foo:443"); + scoped_refptr<X509Certificate> cert1( + new X509Certificate("foo", "CA", start_date, expiration_date)); + + cache.Add(server1, cert1); + + std::string server2("foo2:443"); + cache.Add(server2, NULL); + + scoped_refptr<X509Certificate> cached_cert; + + // Demonstrate the set up is correct. + EXPECT_TRUE(cache.Lookup(server1, &cached_cert)); + EXPECT_EQ(cert1, cached_cert); + + EXPECT_TRUE(cache.Lookup(server2, &cached_cert)); + EXPECT_EQ(NULL, cached_cert.get()); + + cache.Clear(); + + // Check that we no longer have entries for either server. + EXPECT_FALSE(cache.Lookup(server1, &cached_cert)); + EXPECT_FALSE(cache.Lookup(server2, &cached_cert)); +} + } // namespace net |