| Index: net/base/keygen_handler_unittest.cc
|
| ===================================================================
|
| --- net/base/keygen_handler_unittest.cc (revision 43235)
|
| +++ net/base/keygen_handler_unittest.cc (working copy)
|
| @@ -14,6 +14,20 @@
|
|
|
| namespace {
|
|
|
| +KeygenHandler::Location ValidLocation() {
|
| + KeygenHandler::Location result;
|
| +#if defined(OS_WIN)
|
| + result.container_name = L"Unit tests";
|
| + result.provider_name = L"Test Provider";
|
| +#elif defined(OS_MACOSX)
|
| + result.keychain_path = "/Users/tests/test.chain";
|
| +#elif defined(USE_NSS)
|
| + result.slot_name = "Sample slot";
|
| +#endif
|
| +
|
| + return result;
|
| +}
|
| +
|
| TEST(KeygenHandlerTest, FLAKY_SmokeTest) {
|
| KeygenHandler handler(2048, "some challenge");
|
| handler.set_stores_key(false); // Don't leave the key-pair behind
|
| @@ -51,6 +65,34 @@
|
| // openssl asn1parse -inform DER
|
| }
|
|
|
| +TEST(KeygenHandlerTest, Cache) {
|
| + KeygenHandler::Cache* cache = KeygenHandler::Cache::GetInstance();
|
| + KeygenHandler::Location location1;
|
| + KeygenHandler::Location location2;
|
| +
|
| + std::string key1("abcd");
|
| + cache->Insert(key1, location1);
|
| +
|
| + // The cache should have stored location1 at key1
|
| + EXPECT_TRUE(cache->Find(key1, &location2));
|
| +
|
| + // The cache should have retrieved it into location2, and their equality
|
| + // should be reflexive
|
| + EXPECT_TRUE(location1.Equals(location2));
|
| + EXPECT_TRUE(location2.Equals(location1));
|
| +
|
| + location2 = ValidLocation();
|
| + KeygenHandler::KeyCache::KeyLocation location3 = ValidLocation();
|
| + EXPECT_FALSE(location1.Equals(location2));
|
| +
|
| + // The cache should miss for an unregistered key
|
| + std::string key2("def");
|
| + EXPECT_FALSE(cache->Find(key2, &location2));
|
| +
|
| + // A cache miss should leave the original location unmolested
|
| + EXPECT_TRUE(location2.Equals(location3));
|
| +}
|
| +
|
| } // namespace
|
|
|
| } // namespace net
|
|
|