| Index: remoting/protocol/pairing_registry_unittest.cc
|
| diff --git a/remoting/protocol/pairing_registry_unittest.cc b/remoting/protocol/pairing_registry_unittest.cc
|
| index b113f1369e7937c8a18af51570f8b6883d38e735..f564256c335bdc60d723f63a840a2617ab2dccdf 100644
|
| --- a/remoting/protocol/pairing_registry_unittest.cc
|
| +++ b/remoting/protocol/pairing_registry_unittest.cc
|
| @@ -33,11 +33,6 @@ void VerifyPairing(PairingRegistry::Pairing expected,
|
| EXPECT_FALSE(actual.HasKey(PairingRegistry::kSharedSecretKey));
|
| }
|
|
|
| -// SaveCallback that expects to be called with success = true.
|
| -void ExpectSaveSuccess(bool success) {
|
| - EXPECT_TRUE(success);
|
| -}
|
| -
|
| } // namespace
|
|
|
| namespace remoting {
|
| @@ -45,20 +40,38 @@ namespace protocol {
|
|
|
| class PairingRegistryTest : public testing::Test {
|
| public:
|
| - void CompareSecret(const std::string& expected,
|
| - PairingRegistry::Pairing actual) {
|
| - EXPECT_EQ(expected, actual.shared_secret());
|
| - secret_ = actual.shared_secret();
|
| - got_secret_ = true;
|
| + virtual void SetUp() OVERRIDE {
|
| + callback_count_ = 0;
|
| }
|
|
|
| void set_pairings(scoped_ptr<base::ListValue> pairings) {
|
| pairings_ = pairings.Pass();
|
| }
|
|
|
| + void ExpectSecret(const std::string& expected,
|
| + PairingRegistry::Pairing actual) {
|
| + EXPECT_EQ(expected, actual.shared_secret());
|
| + ++callback_count_;
|
| + }
|
| +
|
| + void ExpectSaveSuccess(bool success) {
|
| + EXPECT_TRUE(success);
|
| + ++callback_count_;
|
| + }
|
| +
|
| + void ExpectClientName(const std::string& expected,
|
| + PairingRegistry::Pairing actual) {
|
| + EXPECT_EQ(expected, actual.client_name());
|
| + ++callback_count_;
|
| + }
|
| +
|
| + void ExpectNoPairings(scoped_ptr<base::ListValue> pairings) {
|
| + EXPECT_TRUE(pairings->empty());
|
| + ++callback_count_;
|
| + }
|
| +
|
| protected:
|
| - std::string secret_;
|
| - bool got_secret_;
|
| + int callback_count_;
|
| scoped_ptr<base::ListValue> pairings_;
|
| };
|
|
|
| @@ -73,24 +86,22 @@ TEST_F(PairingRegistryTest, CreateAndGetPairings) {
|
| PairingRegistry::Pairing pairing_2 = registry->CreatePairing("my_client");
|
| mock_delegate->RunCallback();
|
|
|
| + EXPECT_NE(pairing_1.shared_secret(), pairing_2.shared_secret());
|
| +
|
| registry->GetPairing(pairing_1.client_id(),
|
| - base::Bind(&PairingRegistryTest::CompareSecret,
|
| + base::Bind(&PairingRegistryTest::ExpectSecret,
|
| base::Unretained(this),
|
| pairing_1.shared_secret()));
|
| - got_secret_ = false;
|
| mock_delegate->RunCallback();
|
| - EXPECT_TRUE(got_secret_);
|
| - std::string secret_1 = secret_;
|
| + EXPECT_EQ(1, callback_count_);
|
|
|
| // Check that the second client is paired with a different shared secret.
|
| registry->GetPairing(pairing_2.client_id(),
|
| - base::Bind(&PairingRegistryTest::CompareSecret,
|
| + base::Bind(&PairingRegistryTest::ExpectSecret,
|
| base::Unretained(this),
|
| pairing_2.shared_secret()));
|
| - got_secret_ = false;
|
| mock_delegate->RunCallback();
|
| - EXPECT_TRUE(got_secret_);
|
| - EXPECT_NE(secret_, secret_1);
|
| + EXPECT_EQ(2, callback_count_);
|
| }
|
|
|
| TEST_F(PairingRegistryTest, GetAllPairings) {
|
| @@ -138,7 +149,10 @@ TEST_F(PairingRegistryTest, DeletePairing) {
|
| PairingRegistry::Pairing pairing_2 = registry->CreatePairing("client2");
|
| mock_delegate->RunCallback();
|
|
|
| - registry->DeletePairing(pairing_1.client_id(), base::Bind(ExpectSaveSuccess));
|
| + registry->DeletePairing(
|
| + pairing_1.client_id(),
|
| + base::Bind(&PairingRegistryTest::ExpectSaveSuccess,
|
| + base::Unretained(this)));
|
| mock_delegate->RunCallback();
|
|
|
| // Re-read the list, and verify it only has the pairing_2 client.
|
| @@ -167,7 +181,9 @@ TEST_F(PairingRegistryTest, ClearAllPairings) {
|
| PairingRegistry::Pairing pairing_2 = registry->CreatePairing("client2");
|
| mock_delegate->RunCallback();
|
|
|
| - registry->ClearAllPairings(base::Bind(ExpectSaveSuccess));
|
| + registry->ClearAllPairings(
|
| + base::Bind(&PairingRegistryTest::ExpectSaveSuccess,
|
| + base::Unretained(this)));
|
|
|
| // Re-read the list, and verify it is empty.
|
| registry->GetAllPairings(
|
| @@ -178,5 +194,53 @@ TEST_F(PairingRegistryTest, ClearAllPairings) {
|
| EXPECT_TRUE(pairings_->empty());
|
| }
|
|
|
| +TEST_F(PairingRegistryTest, SerializedRequests) {
|
| + MockPairingRegistryDelegate* mock_delegate =
|
| + new MockPairingRegistryDelegate();
|
| + scoped_ptr<PairingRegistry::Delegate> delegate(mock_delegate);
|
| + mock_delegate->set_run_save_callback_automatically(false);
|
| +
|
| + scoped_refptr<PairingRegistry> registry(new PairingRegistry(delegate.Pass()));
|
| + PairingRegistry::Pairing pairing_1 = registry->CreatePairing("client1");
|
| + PairingRegistry::Pairing pairing_2 = registry->CreatePairing("client2");
|
| + registry->GetPairing(
|
| + pairing_1.client_id(),
|
| + base::Bind(&PairingRegistryTest::ExpectClientName,
|
| + base::Unretained(this), "client1"));
|
| + registry->GetPairing(
|
| + pairing_2.client_id(),
|
| + base::Bind(&PairingRegistryTest::ExpectClientName,
|
| + base::Unretained(this), "client2"));
|
| + registry->DeletePairing(
|
| + pairing_2.client_id(),
|
| + base::Bind(&PairingRegistryTest::ExpectSaveSuccess,
|
| + base::Unretained(this)));
|
| + registry->GetPairing(
|
| + pairing_1.client_id(),
|
| + base::Bind(&PairingRegistryTest::ExpectClientName,
|
| + base::Unretained(this), "client1"));
|
| + registry->GetPairing(
|
| + pairing_2.client_id(),
|
| + base::Bind(&PairingRegistryTest::ExpectClientName,
|
| + base::Unretained(this), ""));
|
| + registry->ClearAllPairings(
|
| + base::Bind(&PairingRegistryTest::ExpectSaveSuccess,
|
| + base::Unretained(this)));
|
| + registry->GetAllPairings(
|
| + base::Bind(&PairingRegistryTest::ExpectNoPairings,
|
| + base::Unretained(this)));
|
| + PairingRegistry::Pairing pairing_3 = registry->CreatePairing("client3");
|
| + registry->GetPairing(
|
| + pairing_3.client_id(),
|
| + base::Bind(&PairingRegistryTest::ExpectClientName,
|
| + base::Unretained(this), "client3"));
|
| +
|
| + while (mock_delegate->HasCallback()) {
|
| + mock_delegate->RunCallback();
|
| + }
|
| +
|
| + EXPECT_EQ(8, callback_count_);
|
| +}
|
| +
|
| } // namespace protocol
|
| } // namespace remoting
|
|
|