Index: net/ssl/default_channel_id_store_unittest.cc |
diff --git a/net/ssl/default_channel_id_store_unittest.cc b/net/ssl/default_channel_id_store_unittest.cc |
index ae27a19d76881dac7492618d36b32164b56b89b6..c51b3326c7e2ce1d4b2f559d64d52d3c7ffc6288 100644 |
--- a/net/ssl/default_channel_id_store_unittest.cc |
+++ b/net/ssl/default_channel_id_store_unittest.cc |
@@ -13,7 +13,9 @@ |
#include "base/logging.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/message_loop/message_loop.h" |
+#include "crypto/ec_private_key.h" |
#include "net/base/net_errors.h" |
+#include "net/test/channel_id_test_util.h" |
#include "testing/gtest/include/gtest/gtest.h" |
namespace net { |
@@ -24,11 +26,10 @@ void CallCounter(int* counter) { |
(*counter)++; |
} |
-void GetChannelIDCallbackNotCalled(int err, |
- const std::string& server_identifier, |
- base::Time expiration_time, |
- const std::string& private_key_result, |
- const std::string& cert_result) { |
+void GetChannelIDCallbackNotCalled( |
+ int err, |
+ const std::string& server_identifier, |
+ scoped_ptr<crypto::ECPrivateKey> key_result) { |
ADD_FAILURE() << "Unexpected callback execution."; |
} |
@@ -38,22 +39,16 @@ class AsyncGetChannelIDHelper { |
void Callback(int err, |
const std::string& server_identifier, |
- base::Time expiration_time, |
- const std::string& private_key_result, |
- const std::string& cert_result) { |
+ scoped_ptr<crypto::ECPrivateKey> key_result) { |
err_ = err; |
server_identifier_ = server_identifier; |
- expiration_time_ = expiration_time; |
- private_key_ = private_key_result; |
- cert_ = cert_result; |
+ key_ = key_result.Pass(); |
called_ = true; |
} |
int err_; |
std::string server_identifier_; |
- base::Time expiration_time_; |
- std::string private_key_; |
- std::string cert_; |
+ scoped_ptr<crypto::ECPrivateKey> key_; |
bool called_; |
}; |
@@ -121,36 +116,26 @@ MockPersistentStore::~MockPersistentStore() {} |
TEST(DefaultChannelIDStoreTest, TestLoading) { |
scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore); |
- persistent_store->AddChannelID( |
- DefaultChannelIDStore::ChannelID( |
- "google.com", |
- base::Time(), |
- base::Time(), |
- "a", "b")); |
- persistent_store->AddChannelID( |
- DefaultChannelIDStore::ChannelID( |
- "verisign.com", |
- base::Time(), |
- base::Time(), |
- "c", "d")); |
+ persistent_store->AddChannelID(DefaultChannelIDStore::ChannelID( |
+ "google.com", base::Time(), |
+ make_scoped_ptr(crypto::ECPrivateKey::Create()))); |
+ persistent_store->AddChannelID(DefaultChannelIDStore::ChannelID( |
+ "verisign.com", base::Time(), |
+ make_scoped_ptr(crypto::ECPrivateKey::Create()))); |
// Make sure channel_ids load properly. |
DefaultChannelIDStore store(persistent_store.get()); |
// Load has not occurred yet. |
EXPECT_EQ(0, store.GetChannelIDCount()); |
- store.SetChannelID( |
- "verisign.com", |
- base::Time(), |
- base::Time(), |
- "e", "f"); |
+ store.SetChannelID(make_scoped_ptr(new ChannelIDStore::ChannelID( |
+ "verisign.com", base::Time(), |
+ make_scoped_ptr(crypto::ECPrivateKey::Create())))); |
// Wait for load & queued set task. |
base::MessageLoop::current()->RunUntilIdle(); |
EXPECT_EQ(2, store.GetChannelIDCount()); |
- store.SetChannelID( |
- "twitter.com", |
- base::Time(), |
- base::Time(), |
- "g", "h"); |
+ store.SetChannelID(make_scoped_ptr(new ChannelIDStore::ChannelID( |
+ "twitter.com", base::Time(), |
+ make_scoped_ptr(crypto::ECPrivateKey::Create())))); |
// Set should be synchronous now that load is done. |
EXPECT_EQ(3, store.GetChannelIDCount()); |
} |
@@ -159,118 +144,83 @@ TEST(DefaultChannelIDStoreTest, TestLoading) { |
TEST(DefaultChannelIDStoreTest, TestSettingAndGetting) { |
// No persistent store, all calls will be synchronous. |
DefaultChannelIDStore store(NULL); |
- base::Time expiration_time; |
- std::string private_key, cert; |
+ scoped_ptr<crypto::ECPrivateKey> expected_key(crypto::ECPrivateKey::Create()); |
+ |
+ scoped_ptr<crypto::ECPrivateKey> key; |
EXPECT_EQ(0, store.GetChannelIDCount()); |
EXPECT_EQ(ERR_FILE_NOT_FOUND, |
- store.GetChannelID("verisign.com", |
- &expiration_time, |
- &private_key, |
- &cert, |
- base::Bind(&GetChannelIDCallbackNotCalled))); |
- EXPECT_TRUE(private_key.empty()); |
- EXPECT_TRUE(cert.empty()); |
- store.SetChannelID( |
- "verisign.com", |
- base::Time::FromInternalValue(123), |
- base::Time::FromInternalValue(456), |
- "i", "j"); |
- EXPECT_EQ(OK, |
- store.GetChannelID("verisign.com", |
- &expiration_time, |
- &private_key, |
- &cert, |
+ store.GetChannelID("verisign.com", &key, |
base::Bind(&GetChannelIDCallbackNotCalled))); |
- EXPECT_EQ(456, expiration_time.ToInternalValue()); |
- EXPECT_EQ("i", private_key); |
- EXPECT_EQ("j", cert); |
+ EXPECT_FALSE(key); |
+ store.SetChannelID(make_scoped_ptr(new ChannelIDStore::ChannelID( |
+ "verisign.com", base::Time::FromInternalValue(123), |
+ make_scoped_ptr(expected_key->Copy())))); |
+ EXPECT_EQ(OK, store.GetChannelID("verisign.com", &key, |
+ base::Bind(&GetChannelIDCallbackNotCalled))); |
+ EXPECT_TRUE(KeysEqual(expected_key.get(), key.get())); |
} |
TEST(DefaultChannelIDStoreTest, TestDuplicateChannelIds) { |
scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore); |
DefaultChannelIDStore store(persistent_store.get()); |
+ scoped_ptr<crypto::ECPrivateKey> expected_key(crypto::ECPrivateKey::Create()); |
- base::Time expiration_time; |
- std::string private_key, cert; |
+ scoped_ptr<crypto::ECPrivateKey> key; |
EXPECT_EQ(0, store.GetChannelIDCount()); |
- store.SetChannelID( |
- "verisign.com", |
- base::Time::FromInternalValue(123), |
- base::Time::FromInternalValue(1234), |
- "a", "b"); |
- store.SetChannelID( |
- "verisign.com", |
- base::Time::FromInternalValue(456), |
- base::Time::FromInternalValue(4567), |
- "c", "d"); |
+ store.SetChannelID(make_scoped_ptr(new ChannelIDStore::ChannelID( |
+ "verisign.com", base::Time::FromInternalValue(123), |
+ make_scoped_ptr(crypto::ECPrivateKey::Create())))); |
+ store.SetChannelID(make_scoped_ptr(new ChannelIDStore::ChannelID( |
+ "verisign.com", base::Time::FromInternalValue(456), |
+ make_scoped_ptr(expected_key->Copy())))); |
// Wait for load & queued set tasks. |
base::MessageLoop::current()->RunUntilIdle(); |
EXPECT_EQ(1, store.GetChannelIDCount()); |
- EXPECT_EQ(OK, |
- store.GetChannelID("verisign.com", |
- &expiration_time, |
- &private_key, |
- &cert, |
- base::Bind(&GetChannelIDCallbackNotCalled))); |
- EXPECT_EQ(4567, expiration_time.ToInternalValue()); |
- EXPECT_EQ("c", private_key); |
- EXPECT_EQ("d", cert); |
+ EXPECT_EQ(OK, store.GetChannelID("verisign.com", &key, |
+ base::Bind(&GetChannelIDCallbackNotCalled))); |
+ EXPECT_TRUE(KeysEqual(expected_key.get(), key.get())); |
} |
TEST(DefaultChannelIDStoreTest, TestAsyncGet) { |
scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore); |
+ scoped_ptr<crypto::ECPrivateKey> expected_key(crypto::ECPrivateKey::Create()); |
persistent_store->AddChannelID(ChannelIDStore::ChannelID( |
- "verisign.com", |
- base::Time::FromInternalValue(123), |
- base::Time::FromInternalValue(1234), |
- "a", "b")); |
+ "verisign.com", base::Time::FromInternalValue(123), |
+ make_scoped_ptr(expected_key->Copy()))); |
DefaultChannelIDStore store(persistent_store.get()); |
AsyncGetChannelIDHelper helper; |
- base::Time expiration_time; |
- std::string private_key; |
- std::string cert = "not set"; |
+ scoped_ptr<crypto::ECPrivateKey> key; |
EXPECT_EQ(0, store.GetChannelIDCount()); |
EXPECT_EQ(ERR_IO_PENDING, |
- store.GetChannelID("verisign.com", |
- &expiration_time, |
- &private_key, |
- &cert, |
+ store.GetChannelID("verisign.com", &key, |
base::Bind(&AsyncGetChannelIDHelper::Callback, |
base::Unretained(&helper)))); |
// Wait for load & queued get tasks. |
base::MessageLoop::current()->RunUntilIdle(); |
EXPECT_EQ(1, store.GetChannelIDCount()); |
- EXPECT_EQ("not set", cert); |
+ EXPECT_FALSE(key); |
EXPECT_TRUE(helper.called_); |
EXPECT_EQ(OK, helper.err_); |
EXPECT_EQ("verisign.com", helper.server_identifier_); |
- EXPECT_EQ(1234, helper.expiration_time_.ToInternalValue()); |
- EXPECT_EQ("a", helper.private_key_); |
- EXPECT_EQ("b", helper.cert_); |
+ EXPECT_TRUE(KeysEqual(expected_key.get(), helper.key_.get())); |
} |
TEST(DefaultChannelIDStoreTest, TestDeleteAll) { |
scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore); |
DefaultChannelIDStore store(persistent_store.get()); |
- store.SetChannelID( |
- "verisign.com", |
- base::Time(), |
- base::Time(), |
- "a", "b"); |
- store.SetChannelID( |
- "google.com", |
- base::Time(), |
- base::Time(), |
- "c", "d"); |
- store.SetChannelID( |
- "harvard.com", |
- base::Time(), |
- base::Time(), |
- "e", "f"); |
+ store.SetChannelID(make_scoped_ptr(new ChannelIDStore::ChannelID( |
+ "verisign.com", base::Time(), |
+ make_scoped_ptr(crypto::ECPrivateKey::Create())))); |
+ store.SetChannelID(make_scoped_ptr(new ChannelIDStore::ChannelID( |
+ "google.com", base::Time(), |
+ make_scoped_ptr(crypto::ECPrivateKey::Create())))); |
+ store.SetChannelID(make_scoped_ptr(new ChannelIDStore::ChannelID( |
+ "harvard.com", base::Time(), |
+ make_scoped_ptr(crypto::ECPrivateKey::Create())))); |
// Wait for load & queued set tasks. |
base::MessageLoop::current()->RunUntilIdle(); |
@@ -284,15 +234,11 @@ TEST(DefaultChannelIDStoreTest, TestDeleteAll) { |
TEST(DefaultChannelIDStoreTest, TestAsyncGetAndDeleteAll) { |
scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore); |
persistent_store->AddChannelID(ChannelIDStore::ChannelID( |
- "verisign.com", |
- base::Time(), |
- base::Time(), |
- "a", "b")); |
+ "verisign.com", base::Time(), |
+ make_scoped_ptr(crypto::ECPrivateKey::Create()))); |
persistent_store->AddChannelID(ChannelIDStore::ChannelID( |
- "google.com", |
- base::Time(), |
- base::Time(), |
- "c", "d")); |
+ "google.com", base::Time(), |
+ make_scoped_ptr(crypto::ECPrivateKey::Create()))); |
ChannelIDStore::ChannelIDList pre_channel_ids; |
ChannelIDStore::ChannelIDList post_channel_ids; |
@@ -315,22 +261,17 @@ TEST(DefaultChannelIDStoreTest, TestDelete) { |
scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore); |
DefaultChannelIDStore store(persistent_store.get()); |
- base::Time expiration_time; |
- std::string private_key, cert; |
+ scoped_ptr<crypto::ECPrivateKey> key; |
EXPECT_EQ(0, store.GetChannelIDCount()); |
- store.SetChannelID( |
- "verisign.com", |
- base::Time(), |
- base::Time(), |
- "a", "b"); |
+ store.SetChannelID(make_scoped_ptr(new ChannelIDStore::ChannelID( |
+ "verisign.com", base::Time(), |
+ make_scoped_ptr(crypto::ECPrivateKey::Create())))); |
// Wait for load & queued set task. |
base::MessageLoop::current()->RunUntilIdle(); |
- store.SetChannelID( |
- "google.com", |
- base::Time(), |
- base::Time(), |
- "c", "d"); |
+ store.SetChannelID(make_scoped_ptr(new ChannelIDStore::ChannelID( |
+ "google.com", base::Time(), |
+ make_scoped_ptr(crypto::ECPrivateKey::Create())))); |
EXPECT_EQ(2, store.GetChannelIDCount()); |
int delete_finished = 0; |
@@ -339,42 +280,29 @@ TEST(DefaultChannelIDStoreTest, TestDelete) { |
ASSERT_EQ(1, delete_finished); |
EXPECT_EQ(1, store.GetChannelIDCount()); |
EXPECT_EQ(ERR_FILE_NOT_FOUND, |
- store.GetChannelID("verisign.com", |
- &expiration_time, |
- &private_key, |
- &cert, |
- base::Bind(&GetChannelIDCallbackNotCalled))); |
- EXPECT_EQ(OK, |
- store.GetChannelID("google.com", |
- &expiration_time, |
- &private_key, |
- &cert, |
+ store.GetChannelID("verisign.com", &key, |
base::Bind(&GetChannelIDCallbackNotCalled))); |
+ EXPECT_EQ(OK, store.GetChannelID("google.com", &key, |
+ base::Bind(&GetChannelIDCallbackNotCalled))); |
int delete2_finished = 0; |
store.DeleteChannelID("google.com", |
base::Bind(&CallCounter, &delete2_finished)); |
ASSERT_EQ(1, delete2_finished); |
EXPECT_EQ(0, store.GetChannelIDCount()); |
EXPECT_EQ(ERR_FILE_NOT_FOUND, |
- store.GetChannelID("google.com", |
- &expiration_time, |
- &private_key, |
- &cert, |
+ store.GetChannelID("google.com", &key, |
base::Bind(&GetChannelIDCallbackNotCalled))); |
} |
TEST(DefaultChannelIDStoreTest, TestAsyncDelete) { |
scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore); |
+ scoped_ptr<crypto::ECPrivateKey> expected_key(crypto::ECPrivateKey::Create()); |
persistent_store->AddChannelID(ChannelIDStore::ChannelID( |
- "a.com", |
- base::Time::FromInternalValue(1), |
- base::Time::FromInternalValue(2), |
- "a", "b")); |
- persistent_store->AddChannelID(ChannelIDStore::ChannelID( |
- "b.com", |
- base::Time::FromInternalValue(3), |
- base::Time::FromInternalValue(4), |
- "c", "d")); |
+ "a.com", base::Time::FromInternalValue(1), |
+ make_scoped_ptr(crypto::ECPrivateKey::Create()))); |
+ persistent_store->AddChannelID( |
+ ChannelIDStore::ChannelID("b.com", base::Time::FromInternalValue(3), |
+ make_scoped_ptr(expected_key->Copy()))); |
DefaultChannelIDStore store(persistent_store.get()); |
int delete_finished = 0; |
store.DeleteChannelID("a.com", |
@@ -382,20 +310,16 @@ TEST(DefaultChannelIDStoreTest, TestAsyncDelete) { |
AsyncGetChannelIDHelper a_helper; |
AsyncGetChannelIDHelper b_helper; |
- base::Time expiration_time; |
- std::string private_key; |
- std::string cert = "not set"; |
+ scoped_ptr<crypto::ECPrivateKey> key; |
EXPECT_EQ(0, store.GetChannelIDCount()); |
EXPECT_EQ(ERR_IO_PENDING, |
- store.GetChannelID( |
- "a.com", &expiration_time, &private_key, &cert, |
- base::Bind(&AsyncGetChannelIDHelper::Callback, |
- base::Unretained(&a_helper)))); |
+ store.GetChannelID("a.com", &key, |
+ base::Bind(&AsyncGetChannelIDHelper::Callback, |
+ base::Unretained(&a_helper)))); |
EXPECT_EQ(ERR_IO_PENDING, |
- store.GetChannelID( |
- "b.com", &expiration_time, &private_key, &cert, |
- base::Bind(&AsyncGetChannelIDHelper::Callback, |
- base::Unretained(&b_helper)))); |
+ store.GetChannelID("b.com", &key, |
+ base::Bind(&AsyncGetChannelIDHelper::Callback, |
+ base::Unretained(&b_helper)))); |
EXPECT_EQ(0, delete_finished); |
EXPECT_FALSE(a_helper.called_); |
@@ -404,19 +328,15 @@ TEST(DefaultChannelIDStoreTest, TestAsyncDelete) { |
base::MessageLoop::current()->RunUntilIdle(); |
EXPECT_EQ(1, delete_finished); |
EXPECT_EQ(1, store.GetChannelIDCount()); |
- EXPECT_EQ("not set", cert); |
+ EXPECT_FALSE(key); |
EXPECT_TRUE(a_helper.called_); |
EXPECT_EQ(ERR_FILE_NOT_FOUND, a_helper.err_); |
EXPECT_EQ("a.com", a_helper.server_identifier_); |
- EXPECT_EQ(0, a_helper.expiration_time_.ToInternalValue()); |
- EXPECT_EQ("", a_helper.private_key_); |
- EXPECT_EQ("", a_helper.cert_); |
+ EXPECT_FALSE(a_helper.key_); |
EXPECT_TRUE(b_helper.called_); |
EXPECT_EQ(OK, b_helper.err_); |
EXPECT_EQ("b.com", b_helper.server_identifier_); |
- EXPECT_EQ(4, b_helper.expiration_time_.ToInternalValue()); |
- EXPECT_EQ("c", b_helper.private_key_); |
- EXPECT_EQ("d", b_helper.cert_); |
+ EXPECT_TRUE(KeysEqual(expected_key.get(), b_helper.key_.get())); |
} |
TEST(DefaultChannelIDStoreTest, TestGetAll) { |
@@ -424,26 +344,18 @@ TEST(DefaultChannelIDStoreTest, TestGetAll) { |
DefaultChannelIDStore store(persistent_store.get()); |
EXPECT_EQ(0, store.GetChannelIDCount()); |
- store.SetChannelID( |
- "verisign.com", |
- base::Time(), |
- base::Time(), |
- "a", "b"); |
- store.SetChannelID( |
- "google.com", |
- base::Time(), |
- base::Time(), |
- "c", "d"); |
- store.SetChannelID( |
- "harvard.com", |
- base::Time(), |
- base::Time(), |
- "e", "f"); |
- store.SetChannelID( |
- "mit.com", |
- base::Time(), |
- base::Time(), |
- "g", "h"); |
+ store.SetChannelID(make_scoped_ptr(new ChannelIDStore::ChannelID( |
+ "verisign.com", base::Time(), |
+ make_scoped_ptr(crypto::ECPrivateKey::Create())))); |
+ store.SetChannelID(make_scoped_ptr(new ChannelIDStore::ChannelID( |
+ "google.com", base::Time(), |
+ make_scoped_ptr(crypto::ECPrivateKey::Create())))); |
+ store.SetChannelID(make_scoped_ptr(new ChannelIDStore::ChannelID( |
+ "harvard.com", base::Time(), |
+ make_scoped_ptr(crypto::ECPrivateKey::Create())))); |
+ store.SetChannelID(make_scoped_ptr(new ChannelIDStore::ChannelID( |
+ "mit.com", base::Time(), |
+ make_scoped_ptr(crypto::ECPrivateKey::Create())))); |
// Wait for load & queued set tasks. |
base::MessageLoop::current()->RunUntilIdle(); |
@@ -456,33 +368,28 @@ TEST(DefaultChannelIDStoreTest, TestGetAll) { |
TEST(DefaultChannelIDStoreTest, TestInitializeFrom) { |
scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore); |
DefaultChannelIDStore store(persistent_store.get()); |
- |
- store.SetChannelID( |
- "preexisting.com", |
- base::Time(), |
- base::Time(), |
- "a", "b"); |
- store.SetChannelID( |
- "both.com", |
- base::Time(), |
- base::Time(), |
- "c", "d"); |
+ scoped_ptr<crypto::ECPrivateKey> preexisting_key( |
+ crypto::ECPrivateKey::Create()); |
+ scoped_ptr<crypto::ECPrivateKey> both_key(crypto::ECPrivateKey::Create()); |
+ scoped_ptr<crypto::ECPrivateKey> copied_key(crypto::ECPrivateKey::Create()); |
+ |
+ store.SetChannelID(make_scoped_ptr( |
+ new ChannelIDStore::ChannelID("preexisting.com", base::Time(), |
+ make_scoped_ptr(preexisting_key->Copy())))); |
+ store.SetChannelID(make_scoped_ptr(new ChannelIDStore::ChannelID( |
+ "both.com", base::Time(), |
+ make_scoped_ptr(crypto::ECPrivateKey::Create())))); |
// Wait for load & queued set tasks. |
base::MessageLoop::current()->RunUntilIdle(); |
EXPECT_EQ(2, store.GetChannelIDCount()); |
ChannelIDStore::ChannelIDList source_channel_ids; |
source_channel_ids.push_back(ChannelIDStore::ChannelID( |
- "both.com", |
- base::Time(), |
- base::Time(), |
+ "both.com", base::Time(), |
// Key differs from above to test that existing entries are overwritten. |
- "e", "f")); |
+ make_scoped_ptr(both_key->Copy()))); |
source_channel_ids.push_back(ChannelIDStore::ChannelID( |
- "copied.com", |
- base::Time(), |
- base::Time(), |
- "g", "h")); |
+ "copied.com", base::Time(), make_scoped_ptr(copied_key->Copy()))); |
store.InitializeFrom(source_channel_ids); |
EXPECT_EQ(3, store.GetChannelIDCount()); |
@@ -492,43 +399,39 @@ TEST(DefaultChannelIDStoreTest, TestInitializeFrom) { |
ChannelIDStore::ChannelIDList::iterator channel_id = channel_ids.begin(); |
EXPECT_EQ("both.com", channel_id->server_identifier()); |
- EXPECT_EQ("e", channel_id->private_key()); |
+ EXPECT_TRUE(KeysEqual(both_key.get(), channel_id->key())); |
++channel_id; |
EXPECT_EQ("copied.com", channel_id->server_identifier()); |
- EXPECT_EQ("g", channel_id->private_key()); |
+ EXPECT_TRUE(KeysEqual(copied_key.get(), channel_id->key())); |
++channel_id; |
EXPECT_EQ("preexisting.com", channel_id->server_identifier()); |
- EXPECT_EQ("a", channel_id->private_key()); |
+ EXPECT_TRUE(KeysEqual(preexisting_key.get(), channel_id->key())); |
} |
TEST(DefaultChannelIDStoreTest, TestAsyncInitializeFrom) { |
scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore); |
+ scoped_ptr<crypto::ECPrivateKey> preexisting_key( |
+ crypto::ECPrivateKey::Create()); |
+ scoped_ptr<crypto::ECPrivateKey> both_key(crypto::ECPrivateKey::Create()); |
+ scoped_ptr<crypto::ECPrivateKey> copied_key(crypto::ECPrivateKey::Create()); |
+ |
+ persistent_store->AddChannelID( |
+ ChannelIDStore::ChannelID("preexisting.com", base::Time(), |
+ make_scoped_ptr(preexisting_key->Copy()))); |
persistent_store->AddChannelID(ChannelIDStore::ChannelID( |
- "preexisting.com", |
- base::Time(), |
- base::Time(), |
- "a", "b")); |
- persistent_store->AddChannelID(ChannelIDStore::ChannelID( |
- "both.com", |
- base::Time(), |
- base::Time(), |
- "c", "d")); |
+ "both.com", base::Time(), |
+ make_scoped_ptr(crypto::ECPrivateKey::Create()))); |
DefaultChannelIDStore store(persistent_store.get()); |
ChannelIDStore::ChannelIDList source_channel_ids; |
source_channel_ids.push_back(ChannelIDStore::ChannelID( |
- "both.com", |
- base::Time(), |
- base::Time(), |
+ "both.com", base::Time(), |
// Key differs from above to test that existing entries are overwritten. |
- "e", "f")); |
+ make_scoped_ptr(both_key->Copy()))); |
source_channel_ids.push_back(ChannelIDStore::ChannelID( |
- "copied.com", |
- base::Time(), |
- base::Time(), |
- "g", "h")); |
+ "copied.com", base::Time(), make_scoped_ptr(copied_key->Copy()))); |
store.InitializeFrom(source_channel_ids); |
EXPECT_EQ(0, store.GetChannelIDCount()); |
// Wait for load & queued tasks. |
@@ -541,15 +444,15 @@ TEST(DefaultChannelIDStoreTest, TestAsyncInitializeFrom) { |
ChannelIDStore::ChannelIDList::iterator channel_id = channel_ids.begin(); |
EXPECT_EQ("both.com", channel_id->server_identifier()); |
- EXPECT_EQ("e", channel_id->private_key()); |
+ EXPECT_TRUE(KeysEqual(both_key.get(), channel_id->key())); |
++channel_id; |
EXPECT_EQ("copied.com", channel_id->server_identifier()); |
- EXPECT_EQ("g", channel_id->private_key()); |
+ EXPECT_TRUE(KeysEqual(copied_key.get(), channel_id->key())); |
++channel_id; |
EXPECT_EQ("preexisting.com", channel_id->server_identifier()); |
- EXPECT_EQ("a", channel_id->private_key()); |
+ EXPECT_TRUE(KeysEqual(preexisting_key.get(), channel_id->key())); |
} |
} // namespace net |