summaryrefslogtreecommitdiffstats
path: root/net/base
diff options
context:
space:
mode:
authorrch@chromium.org <rch@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-23 16:45:23 +0000
committerrch@chromium.org <rch@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-23 16:45:23 +0000
commit916f718379993bab5cd5114ee4763097dcfd2053 (patch)
treed1a17b73eb077384e6b36c54fe80fd9d418520fd /net/base
parentffe3d6fa42e9ca8743557a20db13c65d45baacf1 (diff)
downloadchromium_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
Diffstat (limited to 'net/base')
-rw-r--r--net/base/ssl_client_auth_cache.cc4
-rw-r--r--net/base/ssl_client_auth_cache.h3
-rw-r--r--net/base/ssl_client_auth_cache_unittest.cc31
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