| OLD | NEW | 
|    1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |    1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
|    2 // Use of this source code is governed by a BSD-style license that can be |    2 // Use of this source code is governed by a BSD-style license that can be | 
|    3 // found in the LICENSE file. |    3 // found in the LICENSE file. | 
|    4  |    4  | 
|    5 #include "remoting/protocol/pairing_registry.h" |    5 #include "remoting/protocol/pairing_registry.h" | 
|    6  |    6  | 
|    7 #include <stdlib.h> |    7 #include <stdlib.h> | 
|    8  |    8  | 
|    9 #include <algorithm> |    9 #include <algorithm> | 
|   10 #include <memory> |   10 #include <memory> | 
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   85  protected: |   85  protected: | 
|   86   base::MessageLoop message_loop_; |   86   base::MessageLoop message_loop_; | 
|   87   base::RunLoop run_loop_; |   87   base::RunLoop run_loop_; | 
|   88  |   88  | 
|   89   int callback_count_; |   89   int callback_count_; | 
|   90   std::unique_ptr<base::ListValue> pairings_; |   90   std::unique_ptr<base::ListValue> pairings_; | 
|   91 }; |   91 }; | 
|   92  |   92  | 
|   93 TEST_F(PairingRegistryTest, CreateAndGetPairings) { |   93 TEST_F(PairingRegistryTest, CreateAndGetPairings) { | 
|   94   scoped_refptr<PairingRegistry> registry = new SynchronousPairingRegistry( |   94   scoped_refptr<PairingRegistry> registry = new SynchronousPairingRegistry( | 
|   95       base::WrapUnique(new MockPairingRegistryDelegate())); |   95       base::MakeUnique<MockPairingRegistryDelegate>()); | 
|   96   PairingRegistry::Pairing pairing_1 = registry->CreatePairing("my_client"); |   96   PairingRegistry::Pairing pairing_1 = registry->CreatePairing("my_client"); | 
|   97   PairingRegistry::Pairing pairing_2 = registry->CreatePairing("my_client"); |   97   PairingRegistry::Pairing pairing_2 = registry->CreatePairing("my_client"); | 
|   98  |   98  | 
|   99   EXPECT_NE(pairing_1.shared_secret(), pairing_2.shared_secret()); |   99   EXPECT_NE(pairing_1.shared_secret(), pairing_2.shared_secret()); | 
|  100  |  100  | 
|  101   registry->GetPairing(pairing_1.client_id(), |  101   registry->GetPairing(pairing_1.client_id(), | 
|  102                        base::Bind(&PairingRegistryTest::ExpectSecret, |  102                        base::Bind(&PairingRegistryTest::ExpectSecret, | 
|  103                                   base::Unretained(this), |  103                                   base::Unretained(this), | 
|  104                                   pairing_1.shared_secret())); |  104                                   pairing_1.shared_secret())); | 
|  105   EXPECT_EQ(1, callback_count_); |  105   EXPECT_EQ(1, callback_count_); | 
|  106  |  106  | 
|  107   // Check that the second client is paired with a different shared secret. |  107   // Check that the second client is paired with a different shared secret. | 
|  108   registry->GetPairing(pairing_2.client_id(), |  108   registry->GetPairing(pairing_2.client_id(), | 
|  109                        base::Bind(&PairingRegistryTest::ExpectSecret, |  109                        base::Bind(&PairingRegistryTest::ExpectSecret, | 
|  110                                   base::Unretained(this), |  110                                   base::Unretained(this), | 
|  111                                   pairing_2.shared_secret())); |  111                                   pairing_2.shared_secret())); | 
|  112   EXPECT_EQ(2, callback_count_); |  112   EXPECT_EQ(2, callback_count_); | 
|  113 } |  113 } | 
|  114  |  114  | 
|  115 TEST_F(PairingRegistryTest, GetAllPairings) { |  115 TEST_F(PairingRegistryTest, GetAllPairings) { | 
|  116   scoped_refptr<PairingRegistry> registry = new SynchronousPairingRegistry( |  116   scoped_refptr<PairingRegistry> registry = new SynchronousPairingRegistry( | 
|  117       base::WrapUnique(new MockPairingRegistryDelegate())); |  117       base::MakeUnique<MockPairingRegistryDelegate>()); | 
|  118   PairingRegistry::Pairing pairing_1 = registry->CreatePairing("client1"); |  118   PairingRegistry::Pairing pairing_1 = registry->CreatePairing("client1"); | 
|  119   PairingRegistry::Pairing pairing_2 = registry->CreatePairing("client2"); |  119   PairingRegistry::Pairing pairing_2 = registry->CreatePairing("client2"); | 
|  120  |  120  | 
|  121   registry->GetAllPairings( |  121   registry->GetAllPairings( | 
|  122       base::Bind(&PairingRegistryTest::set_pairings, |  122       base::Bind(&PairingRegistryTest::set_pairings, | 
|  123                  base::Unretained(this))); |  123                  base::Unretained(this))); | 
|  124  |  124  | 
|  125   ASSERT_EQ(2u, pairings_->GetSize()); |  125   ASSERT_EQ(2u, pairings_->GetSize()); | 
|  126   const base::DictionaryValue* actual_pairing_1; |  126   const base::DictionaryValue* actual_pairing_1; | 
|  127   const base::DictionaryValue* actual_pairing_2; |  127   const base::DictionaryValue* actual_pairing_2; | 
|  128   ASSERT_TRUE(pairings_->GetDictionary(0, &actual_pairing_1)); |  128   ASSERT_TRUE(pairings_->GetDictionary(0, &actual_pairing_1)); | 
|  129   ASSERT_TRUE(pairings_->GetDictionary(1, &actual_pairing_2)); |  129   ASSERT_TRUE(pairings_->GetDictionary(1, &actual_pairing_2)); | 
|  130  |  130  | 
|  131   // Ordering is not guaranteed, so swap if necessary. |  131   // Ordering is not guaranteed, so swap if necessary. | 
|  132   std::string actual_client_id; |  132   std::string actual_client_id; | 
|  133   ASSERT_TRUE(actual_pairing_1->GetString(PairingRegistry::kClientIdKey, |  133   ASSERT_TRUE(actual_pairing_1->GetString(PairingRegistry::kClientIdKey, | 
|  134                                           &actual_client_id)); |  134                                           &actual_client_id)); | 
|  135   if (actual_client_id != pairing_1.client_id()) { |  135   if (actual_client_id != pairing_1.client_id()) { | 
|  136     std::swap(actual_pairing_1, actual_pairing_2); |  136     std::swap(actual_pairing_1, actual_pairing_2); | 
|  137   } |  137   } | 
|  138  |  138  | 
|  139   VerifyPairing(pairing_1, *actual_pairing_1); |  139   VerifyPairing(pairing_1, *actual_pairing_1); | 
|  140   VerifyPairing(pairing_2, *actual_pairing_2); |  140   VerifyPairing(pairing_2, *actual_pairing_2); | 
|  141 } |  141 } | 
|  142  |  142  | 
|  143 TEST_F(PairingRegistryTest, DeletePairing) { |  143 TEST_F(PairingRegistryTest, DeletePairing) { | 
|  144   scoped_refptr<PairingRegistry> registry = new SynchronousPairingRegistry( |  144   scoped_refptr<PairingRegistry> registry = new SynchronousPairingRegistry( | 
|  145       base::WrapUnique(new MockPairingRegistryDelegate())); |  145       base::MakeUnique<MockPairingRegistryDelegate>()); | 
|  146   PairingRegistry::Pairing pairing_1 = registry->CreatePairing("client1"); |  146   PairingRegistry::Pairing pairing_1 = registry->CreatePairing("client1"); | 
|  147   PairingRegistry::Pairing pairing_2 = registry->CreatePairing("client2"); |  147   PairingRegistry::Pairing pairing_2 = registry->CreatePairing("client2"); | 
|  148  |  148  | 
|  149   registry->DeletePairing( |  149   registry->DeletePairing( | 
|  150       pairing_1.client_id(), |  150       pairing_1.client_id(), | 
|  151       base::Bind(&PairingRegistryTest::ExpectSaveSuccess, |  151       base::Bind(&PairingRegistryTest::ExpectSaveSuccess, | 
|  152                  base::Unretained(this))); |  152                  base::Unretained(this))); | 
|  153  |  153  | 
|  154   // Re-read the list, and verify it only has the pairing_2 client. |  154   // Re-read the list, and verify it only has the pairing_2 client. | 
|  155   registry->GetAllPairings( |  155   registry->GetAllPairings( | 
|  156       base::Bind(&PairingRegistryTest::set_pairings, |  156       base::Bind(&PairingRegistryTest::set_pairings, | 
|  157                  base::Unretained(this))); |  157                  base::Unretained(this))); | 
|  158  |  158  | 
|  159   ASSERT_EQ(1u, pairings_->GetSize()); |  159   ASSERT_EQ(1u, pairings_->GetSize()); | 
|  160   const base::DictionaryValue* actual_pairing_2; |  160   const base::DictionaryValue* actual_pairing_2; | 
|  161   ASSERT_TRUE(pairings_->GetDictionary(0, &actual_pairing_2)); |  161   ASSERT_TRUE(pairings_->GetDictionary(0, &actual_pairing_2)); | 
|  162   std::string actual_client_id; |  162   std::string actual_client_id; | 
|  163   ASSERT_TRUE(actual_pairing_2->GetString(PairingRegistry::kClientIdKey, |  163   ASSERT_TRUE(actual_pairing_2->GetString(PairingRegistry::kClientIdKey, | 
|  164                                           &actual_client_id)); |  164                                           &actual_client_id)); | 
|  165   EXPECT_EQ(pairing_2.client_id(), actual_client_id); |  165   EXPECT_EQ(pairing_2.client_id(), actual_client_id); | 
|  166 } |  166 } | 
|  167  |  167  | 
|  168 TEST_F(PairingRegistryTest, ClearAllPairings) { |  168 TEST_F(PairingRegistryTest, ClearAllPairings) { | 
|  169   scoped_refptr<PairingRegistry> registry = new SynchronousPairingRegistry( |  169   scoped_refptr<PairingRegistry> registry = new SynchronousPairingRegistry( | 
|  170       base::WrapUnique(new MockPairingRegistryDelegate())); |  170       base::MakeUnique<MockPairingRegistryDelegate>()); | 
|  171   PairingRegistry::Pairing pairing_1 = registry->CreatePairing("client1"); |  171   PairingRegistry::Pairing pairing_1 = registry->CreatePairing("client1"); | 
|  172   PairingRegistry::Pairing pairing_2 = registry->CreatePairing("client2"); |  172   PairingRegistry::Pairing pairing_2 = registry->CreatePairing("client2"); | 
|  173  |  173  | 
|  174   registry->ClearAllPairings( |  174   registry->ClearAllPairings( | 
|  175       base::Bind(&PairingRegistryTest::ExpectSaveSuccess, |  175       base::Bind(&PairingRegistryTest::ExpectSaveSuccess, | 
|  176                  base::Unretained(this))); |  176                  base::Unretained(this))); | 
|  177  |  177  | 
|  178   // Re-read the list, and verify it is empty. |  178   // Re-read the list, and verify it is empty. | 
|  179   registry->GetAllPairings( |  179   registry->GetAllPairings( | 
|  180       base::Bind(&PairingRegistryTest::set_pairings, |  180       base::Bind(&PairingRegistryTest::set_pairings, | 
| (...skipping 30 matching lines...) Expand all  Loading... | 
|  211   EXPECT_CALL(callbacks, DoneCallback(true)) |  211   EXPECT_CALL(callbacks, DoneCallback(true)) | 
|  212       .InSequence(s); |  212       .InSequence(s); | 
|  213   EXPECT_CALL(callbacks, GetAllPairingsCallbackPtr(NoPairings())) |  213   EXPECT_CALL(callbacks, GetAllPairingsCallbackPtr(NoPairings())) | 
|  214       .InSequence(s); |  214       .InSequence(s); | 
|  215   EXPECT_CALL(callbacks, GetPairingCallback(EqualsClientName("client3"))) |  215   EXPECT_CALL(callbacks, GetPairingCallback(EqualsClientName("client3"))) | 
|  216       .InSequence(s) |  216       .InSequence(s) | 
|  217       .WillOnce(QuitMessageLoop(run_loop_.QuitClosure())); |  217       .WillOnce(QuitMessageLoop(run_loop_.QuitClosure())); | 
|  218  |  218  | 
|  219   scoped_refptr<PairingRegistry> registry = |  219   scoped_refptr<PairingRegistry> registry = | 
|  220       new PairingRegistry(base::ThreadTaskRunnerHandle::Get(), |  220       new PairingRegistry(base::ThreadTaskRunnerHandle::Get(), | 
|  221                           base::WrapUnique(new MockPairingRegistryDelegate())); |  221                           base::MakeUnique<MockPairingRegistryDelegate>()); | 
|  222   PairingRegistry::Pairing pairing_1 = registry->CreatePairing("client1"); |  222   PairingRegistry::Pairing pairing_1 = registry->CreatePairing("client1"); | 
|  223   PairingRegistry::Pairing pairing_2 = registry->CreatePairing("client2"); |  223   PairingRegistry::Pairing pairing_2 = registry->CreatePairing("client2"); | 
|  224   registry->GetPairing( |  224   registry->GetPairing( | 
|  225       pairing_1.client_id(), |  225       pairing_1.client_id(), | 
|  226       base::Bind(&MockPairingRegistryCallbacks::GetPairingCallback, |  226       base::Bind(&MockPairingRegistryCallbacks::GetPairingCallback, | 
|  227                  base::Unretained(&callbacks))); |  227                  base::Unretained(&callbacks))); | 
|  228   registry->GetPairing( |  228   registry->GetPairing( | 
|  229       pairing_2.client_id(), |  229       pairing_2.client_id(), | 
|  230       base::Bind(&MockPairingRegistryCallbacks::GetPairingCallback, |  230       base::Bind(&MockPairingRegistryCallbacks::GetPairingCallback, | 
|  231                  base::Unretained(&callbacks))); |  231                  base::Unretained(&callbacks))); | 
| (...skipping 19 matching lines...) Expand all  Loading... | 
|  251   registry->GetPairing( |  251   registry->GetPairing( | 
|  252       pairing_3.client_id(), |  252       pairing_3.client_id(), | 
|  253       base::Bind(&MockPairingRegistryCallbacks::GetPairingCallback, |  253       base::Bind(&MockPairingRegistryCallbacks::GetPairingCallback, | 
|  254                  base::Unretained(&callbacks))); |  254                  base::Unretained(&callbacks))); | 
|  255  |  255  | 
|  256   run_loop_.Run(); |  256   run_loop_.Run(); | 
|  257 } |  257 } | 
|  258  |  258  | 
|  259 }  // namespace protocol |  259 }  // namespace protocol | 
|  260 }  // namespace remoting |  260 }  // namespace remoting | 
| OLD | NEW |