Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(550)

Side by Side Diff: remoting/protocol/pairing_registry_unittest.cc

Issue 21128006: Refactored PairingRegistry::Delegate such that it can retrieve/modify for a single client. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 10
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 scoped_ptr<base::ListValue> pairings_; 75 scoped_ptr<base::ListValue> pairings_;
76 }; 76 };
77 77
78 TEST_F(PairingRegistryTest, CreateAndGetPairings) { 78 TEST_F(PairingRegistryTest, CreateAndGetPairings) {
79 MockPairingRegistryDelegate* mock_delegate = 79 MockPairingRegistryDelegate* mock_delegate =
80 new MockPairingRegistryDelegate(); 80 new MockPairingRegistryDelegate();
81 scoped_ptr<PairingRegistry::Delegate> delegate(mock_delegate); 81 scoped_ptr<PairingRegistry::Delegate> delegate(mock_delegate);
82 82
83 scoped_refptr<PairingRegistry> registry(new PairingRegistry(delegate.Pass())); 83 scoped_refptr<PairingRegistry> registry(new PairingRegistry(delegate.Pass()));
84 PairingRegistry::Pairing pairing_1 = registry->CreatePairing("my_client"); 84 PairingRegistry::Pairing pairing_1 = registry->CreatePairing("my_client");
85 mock_delegate->RunCallback(); 85 mock_delegate->DrainCallbacks();
86 PairingRegistry::Pairing pairing_2 = registry->CreatePairing("my_client"); 86 PairingRegistry::Pairing pairing_2 = registry->CreatePairing("my_client");
Jamie 2013/07/30 21:35:07 I think a lot of these DrainCallbacks are redundan
alexeypa (please no reviews) 2013/07/31 21:31:24 Done.
87 mock_delegate->RunCallback(); 87 mock_delegate->DrainCallbacks();
88 88
89 EXPECT_NE(pairing_1.shared_secret(), pairing_2.shared_secret()); 89 EXPECT_NE(pairing_1.shared_secret(), pairing_2.shared_secret());
90 90
91 registry->GetPairing(pairing_1.client_id(), 91 registry->GetPairing(pairing_1.client_id(),
92 base::Bind(&PairingRegistryTest::ExpectSecret, 92 base::Bind(&PairingRegistryTest::ExpectSecret,
93 base::Unretained(this), 93 base::Unretained(this),
94 pairing_1.shared_secret())); 94 pairing_1.shared_secret()));
95 mock_delegate->RunCallback(); 95 mock_delegate->DrainCallbacks();
96 EXPECT_EQ(1, callback_count_); 96 EXPECT_EQ(1, callback_count_);
97 97
98 // Check that the second client is paired with a different shared secret. 98 // Check that the second client is paired with a different shared secret.
99 registry->GetPairing(pairing_2.client_id(), 99 registry->GetPairing(pairing_2.client_id(),
100 base::Bind(&PairingRegistryTest::ExpectSecret, 100 base::Bind(&PairingRegistryTest::ExpectSecret,
101 base::Unretained(this), 101 base::Unretained(this),
102 pairing_2.shared_secret())); 102 pairing_2.shared_secret()));
103 mock_delegate->RunCallback(); 103 mock_delegate->DrainCallbacks();
104 EXPECT_EQ(2, callback_count_); 104 EXPECT_EQ(2, callback_count_);
105 } 105 }
106 106
107 TEST_F(PairingRegistryTest, GetAllPairings) { 107 TEST_F(PairingRegistryTest, GetAllPairings) {
108 MockPairingRegistryDelegate* mock_delegate = 108 MockPairingRegistryDelegate* mock_delegate =
109 new MockPairingRegistryDelegate(); 109 new MockPairingRegistryDelegate();
110 scoped_ptr<PairingRegistry::Delegate> delegate(mock_delegate); 110 scoped_ptr<PairingRegistry::Delegate> delegate(mock_delegate);
111 111
112 scoped_refptr<PairingRegistry> registry(new PairingRegistry(delegate.Pass())); 112 scoped_refptr<PairingRegistry> registry(new PairingRegistry(delegate.Pass()));
113 PairingRegistry::Pairing pairing_1 = registry->CreatePairing("client1"); 113 PairingRegistry::Pairing pairing_1 = registry->CreatePairing("client1");
114 mock_delegate->RunCallback(); 114 mock_delegate->DrainCallbacks();
115 PairingRegistry::Pairing pairing_2 = registry->CreatePairing("client2"); 115 PairingRegistry::Pairing pairing_2 = registry->CreatePairing("client2");
116 mock_delegate->RunCallback(); 116 mock_delegate->DrainCallbacks();
117 117
118 registry->GetAllPairings( 118 registry->GetAllPairings(
119 base::Bind(&PairingRegistryTest::set_pairings, 119 base::Bind(&PairingRegistryTest::set_pairings,
120 base::Unretained(this))); 120 base::Unretained(this)));
121 mock_delegate->RunCallback(); 121 mock_delegate->DrainCallbacks();
122 122
123 ASSERT_EQ(2u, pairings_->GetSize()); 123 ASSERT_EQ(2u, pairings_->GetSize());
124 const base::DictionaryValue* actual_pairing_1; 124 const base::DictionaryValue* actual_pairing_1;
125 const base::DictionaryValue* actual_pairing_2; 125 const base::DictionaryValue* actual_pairing_2;
126 ASSERT_TRUE(pairings_->GetDictionary(0, &actual_pairing_1)); 126 ASSERT_TRUE(pairings_->GetDictionary(0, &actual_pairing_1));
127 ASSERT_TRUE(pairings_->GetDictionary(1, &actual_pairing_2)); 127 ASSERT_TRUE(pairings_->GetDictionary(1, &actual_pairing_2));
128 128
129 // Ordering is not guaranteed, so swap if necessary. 129 // Ordering is not guaranteed, so swap if necessary.
130 std::string actual_client_id; 130 std::string actual_client_id;
131 ASSERT_TRUE(actual_pairing_1->GetString(PairingRegistry::kClientIdKey, 131 ASSERT_TRUE(actual_pairing_1->GetString(PairingRegistry::kClientIdKey,
132 &actual_client_id)); 132 &actual_client_id));
133 if (actual_client_id != pairing_1.client_id()) { 133 if (actual_client_id != pairing_1.client_id()) {
134 std::swap(actual_pairing_1, actual_pairing_2); 134 std::swap(actual_pairing_1, actual_pairing_2);
135 } 135 }
136 136
137 VerifyPairing(pairing_1, *actual_pairing_1); 137 VerifyPairing(pairing_1, *actual_pairing_1);
138 VerifyPairing(pairing_2, *actual_pairing_2); 138 VerifyPairing(pairing_2, *actual_pairing_2);
139 } 139 }
140 140
141 TEST_F(PairingRegistryTest, DeletePairing) { 141 TEST_F(PairingRegistryTest, DeletePairing) {
142 MockPairingRegistryDelegate* mock_delegate = 142 MockPairingRegistryDelegate* mock_delegate =
143 new MockPairingRegistryDelegate(); 143 new MockPairingRegistryDelegate();
144 scoped_ptr<PairingRegistry::Delegate> delegate(mock_delegate); 144 scoped_ptr<PairingRegistry::Delegate> delegate(mock_delegate);
145 145
146 scoped_refptr<PairingRegistry> registry(new PairingRegistry(delegate.Pass())); 146 scoped_refptr<PairingRegistry> registry(new PairingRegistry(delegate.Pass()));
147 PairingRegistry::Pairing pairing_1 = registry->CreatePairing("client1"); 147 PairingRegistry::Pairing pairing_1 = registry->CreatePairing("client1");
148 mock_delegate->RunCallback(); 148 mock_delegate->DrainCallbacks();
149 PairingRegistry::Pairing pairing_2 = registry->CreatePairing("client2"); 149 PairingRegistry::Pairing pairing_2 = registry->CreatePairing("client2");
150 mock_delegate->RunCallback(); 150 mock_delegate->DrainCallbacks();
151 151
152 registry->DeletePairing( 152 registry->DeletePairing(
153 pairing_1.client_id(), 153 pairing_1.client_id(),
154 base::Bind(&PairingRegistryTest::ExpectSaveSuccess, 154 base::Bind(&PairingRegistryTest::ExpectSaveSuccess,
155 base::Unretained(this))); 155 base::Unretained(this)));
156 mock_delegate->RunCallback(); 156 mock_delegate->DrainCallbacks();
157 157
158 // Re-read the list, and verify it only has the pairing_2 client. 158 // Re-read the list, and verify it only has the pairing_2 client.
159 registry->GetAllPairings( 159 registry->GetAllPairings(
160 base::Bind(&PairingRegistryTest::set_pairings, 160 base::Bind(&PairingRegistryTest::set_pairings,
161 base::Unretained(this))); 161 base::Unretained(this)));
162 mock_delegate->RunCallback(); 162 mock_delegate->DrainCallbacks();
163 163
164 ASSERT_EQ(1u, pairings_->GetSize()); 164 ASSERT_EQ(1u, pairings_->GetSize());
165 const base::DictionaryValue* actual_pairing_2; 165 const base::DictionaryValue* actual_pairing_2;
166 ASSERT_TRUE(pairings_->GetDictionary(0, &actual_pairing_2)); 166 ASSERT_TRUE(pairings_->GetDictionary(0, &actual_pairing_2));
167 std::string actual_client_id; 167 std::string actual_client_id;
168 ASSERT_TRUE(actual_pairing_2->GetString(PairingRegistry::kClientIdKey, 168 ASSERT_TRUE(actual_pairing_2->GetString(PairingRegistry::kClientIdKey,
169 &actual_client_id)); 169 &actual_client_id));
170 EXPECT_EQ(pairing_2.client_id(), actual_client_id); 170 EXPECT_EQ(pairing_2.client_id(), actual_client_id);
171 } 171 }
172 172
173 TEST_F(PairingRegistryTest, ClearAllPairings) { 173 TEST_F(PairingRegistryTest, ClearAllPairings) {
174 MockPairingRegistryDelegate* mock_delegate = 174 MockPairingRegistryDelegate* mock_delegate =
175 new MockPairingRegistryDelegate(); 175 new MockPairingRegistryDelegate();
176 scoped_ptr<PairingRegistry::Delegate> delegate(mock_delegate); 176 scoped_ptr<PairingRegistry::Delegate> delegate(mock_delegate);
177 177
178 scoped_refptr<PairingRegistry> registry(new PairingRegistry(delegate.Pass())); 178 scoped_refptr<PairingRegistry> registry(new PairingRegistry(delegate.Pass()));
179 PairingRegistry::Pairing pairing_1 = registry->CreatePairing("client1"); 179 PairingRegistry::Pairing pairing_1 = registry->CreatePairing("client1");
180 mock_delegate->RunCallback(); 180 mock_delegate->DrainCallbacks();
181 PairingRegistry::Pairing pairing_2 = registry->CreatePairing("client2"); 181 PairingRegistry::Pairing pairing_2 = registry->CreatePairing("client2");
182 mock_delegate->RunCallback(); 182 mock_delegate->DrainCallbacks();
183 183
184 registry->ClearAllPairings( 184 registry->ClearAllPairings(
185 base::Bind(&PairingRegistryTest::ExpectSaveSuccess, 185 base::Bind(&PairingRegistryTest::ExpectSaveSuccess,
186 base::Unretained(this))); 186 base::Unretained(this)));
187 187
188 // Re-read the list, and verify it is empty. 188 // Re-read the list, and verify it is empty.
189 registry->GetAllPairings( 189 registry->GetAllPairings(
190 base::Bind(&PairingRegistryTest::set_pairings, 190 base::Bind(&PairingRegistryTest::set_pairings,
191 base::Unretained(this))); 191 base::Unretained(this)));
192 mock_delegate->RunCallback(); 192 mock_delegate->DrainCallbacks();
193 193
194 EXPECT_TRUE(pairings_->empty()); 194 EXPECT_TRUE(pairings_->empty());
195 } 195 }
196 196
197 TEST_F(PairingRegistryTest, SerializedRequests) { 197 TEST_F(PairingRegistryTest, SerializedRequests) {
198 MockPairingRegistryDelegate* mock_delegate = 198 MockPairingRegistryDelegate* mock_delegate =
199 new MockPairingRegistryDelegate(); 199 new MockPairingRegistryDelegate();
200 scoped_ptr<PairingRegistry::Delegate> delegate(mock_delegate); 200 scoped_ptr<PairingRegistry::Delegate> delegate(mock_delegate);
201 mock_delegate->set_run_save_callback_automatically(false);
202 201
203 scoped_refptr<PairingRegistry> registry(new PairingRegistry(delegate.Pass())); 202 scoped_refptr<PairingRegistry> registry(new PairingRegistry(delegate.Pass()));
204 PairingRegistry::Pairing pairing_1 = registry->CreatePairing("client1"); 203 PairingRegistry::Pairing pairing_1 = registry->CreatePairing("client1");
205 PairingRegistry::Pairing pairing_2 = registry->CreatePairing("client2"); 204 PairingRegistry::Pairing pairing_2 = registry->CreatePairing("client2");
206 registry->GetPairing( 205 registry->GetPairing(
207 pairing_1.client_id(), 206 pairing_1.client_id(),
208 base::Bind(&PairingRegistryTest::ExpectClientName, 207 base::Bind(&PairingRegistryTest::ExpectClientName,
209 base::Unretained(this), "client1")); 208 base::Unretained(this), "client1"));
210 registry->GetPairing( 209 registry->GetPairing(
211 pairing_2.client_id(), 210 pairing_2.client_id(),
(...skipping 16 matching lines...) Expand all
228 base::Unretained(this))); 227 base::Unretained(this)));
229 registry->GetAllPairings( 228 registry->GetAllPairings(
230 base::Bind(&PairingRegistryTest::ExpectNoPairings, 229 base::Bind(&PairingRegistryTest::ExpectNoPairings,
231 base::Unretained(this))); 230 base::Unretained(this)));
232 PairingRegistry::Pairing pairing_3 = registry->CreatePairing("client3"); 231 PairingRegistry::Pairing pairing_3 = registry->CreatePairing("client3");
233 registry->GetPairing( 232 registry->GetPairing(
234 pairing_3.client_id(), 233 pairing_3.client_id(),
235 base::Bind(&PairingRegistryTest::ExpectClientName, 234 base::Bind(&PairingRegistryTest::ExpectClientName,
236 base::Unretained(this), "client3")); 235 base::Unretained(this), "client3"));
237 236
238 while (mock_delegate->HasCallback()) { 237 mock_delegate->DrainCallbacks();
239 mock_delegate->RunCallback();
240 }
241 238
242 EXPECT_EQ(8, callback_count_); 239 EXPECT_EQ(8, callback_count_);
243 } 240 }
244 241
245 } // namespace protocol 242 } // namespace protocol
246 } // namespace remoting 243 } // namespace remoting
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698