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

Side by Side Diff: chrome/browser/managed_mode/managed_user_sync_service_unittest.cc

Issue 23653007: Avatar syncing for supervised users (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: ... Created 7 years, 3 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 <string> 5 #include <string>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "base/threading/sequenced_worker_pool.h" 9 #include "base/threading/sequenced_worker_pool.h"
10 #include "chrome/browser/managed_mode/managed_user_sync_service.h" 10 #include "chrome/browser/managed_mode/managed_user_sync_service.h"
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 } // namespace 78 } // namespace
79 79
80 class ManagedUserSyncServiceTest : public ::testing::Test { 80 class ManagedUserSyncServiceTest : public ::testing::Test {
81 public: 81 public:
82 ManagedUserSyncServiceTest(); 82 ManagedUserSyncServiceTest();
83 virtual ~ManagedUserSyncServiceTest(); 83 virtual ~ManagedUserSyncServiceTest();
84 84
85 protected: 85 protected:
86 scoped_ptr<SyncChangeProcessor> CreateChangeProcessor(); 86 scoped_ptr<SyncChangeProcessor> CreateChangeProcessor();
87 scoped_ptr<SyncErrorFactory> CreateErrorFactory(); 87 scoped_ptr<SyncErrorFactory> CreateErrorFactory();
88 SyncData CreateRemoteData(const std::string& id, const std::string& name); 88 SyncData CreateRemoteData(const std::string& id,
89 const std::string& name,
90 const std::string& avatar);
89 91
90 PrefService* prefs() { return profile_.GetPrefs(); } 92 PrefService* prefs() { return profile_.GetPrefs(); }
91 ManagedUserSyncService* service() { return service_; } 93 ManagedUserSyncService* service() { return service_; }
92 MockChangeProcessor* change_processor() { return change_processor_; } 94 MockChangeProcessor* change_processor() { return change_processor_; }
93 95
94 private: 96 private:
95 TestingProfile profile_; 97 TestingProfile profile_;
96 ManagedUserSyncService* service_; 98 ManagedUserSyncService* service_;
97 99
98 // Owned by the ManagedUserSyncService. 100 // Owned by the ManagedUserSyncService.
(...skipping 18 matching lines...) Expand all
117 return scoped_ptr<SyncChangeProcessor>(change_processor_); 119 return scoped_ptr<SyncChangeProcessor>(change_processor_);
118 } 120 }
119 121
120 scoped_ptr<SyncErrorFactory> 122 scoped_ptr<SyncErrorFactory>
121 ManagedUserSyncServiceTest::CreateErrorFactory() { 123 ManagedUserSyncServiceTest::CreateErrorFactory() {
122 return scoped_ptr<SyncErrorFactory>(new syncer::SyncErrorFactoryMock()); 124 return scoped_ptr<SyncErrorFactory>(new syncer::SyncErrorFactoryMock());
123 } 125 }
124 126
125 SyncData ManagedUserSyncServiceTest::CreateRemoteData( 127 SyncData ManagedUserSyncServiceTest::CreateRemoteData(
126 const std::string& id, 128 const std::string& id,
127 const std::string& name) { 129 const std::string& name,
130 const std::string& chrome_avatar) {
128 ::sync_pb::EntitySpecifics specifics; 131 ::sync_pb::EntitySpecifics specifics;
129 specifics.mutable_managed_user()->set_id(id); 132 specifics.mutable_managed_user()->set_id(id);
130 specifics.mutable_managed_user()->set_name(name); 133 specifics.mutable_managed_user()->set_name(name);
131 specifics.mutable_managed_user()->set_acknowledged(true); 134 specifics.mutable_managed_user()->set_acknowledged(true);
135 if (!chrome_avatar.empty())
136 specifics.mutable_managed_user()->set_chrome_avatar(chrome_avatar);
137
132 return SyncData::CreateRemoteData(++sync_data_id_, specifics, base::Time()); 138 return SyncData::CreateRemoteData(++sync_data_id_, specifics, base::Time());
133 } 139 }
134 140
135 TEST_F(ManagedUserSyncServiceTest, MergeEmpty) { 141 TEST_F(ManagedUserSyncServiceTest, MergeEmpty) {
136 SyncMergeResult result = 142 SyncMergeResult result =
137 service()->MergeDataAndStartSyncing(MANAGED_USERS, 143 service()->MergeDataAndStartSyncing(MANAGED_USERS,
138 SyncDataList(), 144 SyncDataList(),
139 CreateChangeProcessor(), 145 CreateChangeProcessor(),
140 CreateErrorFactory()); 146 CreateErrorFactory());
141 EXPECT_FALSE(result.error().IsSet()); 147 EXPECT_FALSE(result.error().IsSet());
142 EXPECT_EQ(0, result.num_items_added()); 148 EXPECT_EQ(0, result.num_items_added());
143 EXPECT_EQ(0, result.num_items_modified()); 149 EXPECT_EQ(0, result.num_items_modified());
144 EXPECT_EQ(0, result.num_items_deleted()); 150 EXPECT_EQ(0, result.num_items_deleted());
145 EXPECT_EQ(0, result.num_items_before_association()); 151 EXPECT_EQ(0, result.num_items_before_association());
146 EXPECT_EQ(0, result.num_items_after_association()); 152 EXPECT_EQ(0, result.num_items_after_association());
147 EXPECT_EQ(0u, service()->GetManagedUsers()->size()); 153 EXPECT_EQ(0u, service()->GetManagedUsers()->size());
148 EXPECT_EQ(0u, change_processor()->changes().size()); 154 EXPECT_EQ(0u, change_processor()->changes().size());
149 155
150 service()->StopSyncing(MANAGED_USERS); 156 service()->StopSyncing(MANAGED_USERS);
151 service()->Shutdown(); 157 service()->Shutdown();
152 } 158 }
153 159
154 TEST_F(ManagedUserSyncServiceTest, MergeExisting) { 160 TEST_F(ManagedUserSyncServiceTest, MergeExisting) {
155 const char kNameKey[] = "name"; 161 const char kNameKey[] = "name";
156 const char kAcknowledgedKey[] = "acknowledged"; 162 const char kAcknowledgedKey[] = "acknowledged";
163 const char kChromeAvatarKey[] = "chromeAvatar";
157 164
158 const char kUserId1[] = "aaaaa"; 165 const char kUserId1[] = "aaaaa";
159 const char kUserId2[] = "bbbbb"; 166 const char kUserId2[] = "bbbbb";
160 const char kUserId3[] = "ccccc"; 167 const char kUserId3[] = "ccccc";
161 const char kUserId4[] = "ddddd"; 168 const char kUserId4[] = "ddddd";
162 const char kName1[] = "Anchor"; 169 const char kName1[] = "Anchor";
163 const char kName2[] = "Buzz"; 170 const char kName2[] = "Buzz";
164 const char kName3[] = "Crush"; 171 const char kName3[] = "Crush";
165 const char kName4[] = "Dory"; 172 const char kName4[] = "Dory";
173 const char kAvatar1[] = "";
174 const char kAvatar2[] = "chrome-avatar-index:0";
175 const char kAvatar3[] = "chrome-avatar-index:20";
176 const char kAvatar4[] = "";
166 { 177 {
167 DictionaryPrefUpdate update(prefs(), prefs::kManagedUsers); 178 DictionaryPrefUpdate update(prefs(), prefs::kManagedUsers);
168 DictionaryValue* managed_users = update.Get(); 179 DictionaryValue* managed_users = update.Get();
169 DictionaryValue* dict = new DictionaryValue; 180 DictionaryValue* dict = new DictionaryValue;
170 dict->SetString(kNameKey, kName1); 181 dict->SetString(kNameKey, kName1);
171 managed_users->Set(kUserId1, dict); 182 managed_users->Set(kUserId1, dict);
172 dict = new DictionaryValue; 183 dict = new DictionaryValue;
173 dict->SetString(kNameKey, kName2); 184 dict->SetString(kNameKey, kName2);
174 dict->SetBoolean(kAcknowledgedKey, true); 185 dict->SetBoolean(kAcknowledgedKey, true);
175 managed_users->Set(kUserId2, dict); 186 managed_users->Set(kUserId2, dict);
176 } 187 }
177 188
178 const base::DictionaryValue* async_managed_users = NULL; 189 const base::DictionaryValue* async_managed_users = NULL;
179 service()->GetManagedUsersAsync( 190 service()->GetManagedUsersAsync(
180 base::Bind(&GetManagedUsersCallback, &async_managed_users)); 191 base::Bind(&GetManagedUsersCallback, &async_managed_users));
181 192
182 SyncDataList initial_sync_data; 193 SyncDataList initial_sync_data;
183 initial_sync_data.push_back(CreateRemoteData(kUserId2, kName2)); 194 initial_sync_data.push_back(CreateRemoteData(kUserId2, kName2, kAvatar2));
184 initial_sync_data.push_back(CreateRemoteData(kUserId3, kName3)); 195 initial_sync_data.push_back(CreateRemoteData(kUserId3, kName3, kAvatar3));
185 initial_sync_data.push_back(CreateRemoteData(kUserId4, kName4)); 196 initial_sync_data.push_back(CreateRemoteData(kUserId4, kName4, kAvatar4));
186 197
187 SyncMergeResult result = 198 SyncMergeResult result =
188 service()->MergeDataAndStartSyncing(MANAGED_USERS, 199 service()->MergeDataAndStartSyncing(MANAGED_USERS,
189 initial_sync_data, 200 initial_sync_data,
190 CreateChangeProcessor(), 201 CreateChangeProcessor(),
191 CreateErrorFactory()); 202 CreateErrorFactory());
192 EXPECT_FALSE(result.error().IsSet()); 203 EXPECT_FALSE(result.error().IsSet());
193 EXPECT_EQ(2, result.num_items_added()); 204 EXPECT_EQ(2, result.num_items_added());
194 EXPECT_EQ(1, result.num_items_modified()); 205 EXPECT_EQ(1, result.num_items_modified());
195 EXPECT_EQ(0, result.num_items_deleted()); 206 EXPECT_EQ(0, result.num_items_deleted());
196 EXPECT_EQ(2, result.num_items_before_association()); 207 EXPECT_EQ(2, result.num_items_before_association());
197 EXPECT_EQ(4, result.num_items_after_association()); 208 EXPECT_EQ(4, result.num_items_after_association());
198 209
199 const DictionaryValue* managed_users = service()->GetManagedUsers(); 210 const DictionaryValue* managed_users = service()->GetManagedUsers();
200 EXPECT_EQ(4u, managed_users->size()); 211 EXPECT_EQ(4u, managed_users->size());
201 EXPECT_TRUE(async_managed_users); 212 EXPECT_TRUE(async_managed_users);
202 EXPECT_TRUE(managed_users->Equals(async_managed_users)); 213 EXPECT_TRUE(managed_users->Equals(async_managed_users));
203 214
204 { 215 {
205 const DictionaryValue* managed_user = NULL; 216 const DictionaryValue* managed_user = NULL;
206 ASSERT_TRUE(managed_users->GetDictionary(kUserId2, &managed_user)); 217 ASSERT_TRUE(managed_users->GetDictionary(kUserId2, &managed_user));
207 ASSERT_TRUE(managed_user); 218 ASSERT_TRUE(managed_user);
208 std::string name; 219 std::string name;
209 EXPECT_TRUE(managed_user->GetString(kNameKey, &name)); 220 EXPECT_TRUE(managed_user->GetString(kNameKey, &name));
210 EXPECT_EQ(kName2, name); 221 EXPECT_EQ(kName2, name);
211 bool acknowledged = false; 222 bool acknowledged = false;
212 EXPECT_TRUE(managed_user->GetBoolean(kAcknowledgedKey, &acknowledged)); 223 EXPECT_TRUE(managed_user->GetBoolean(kAcknowledgedKey, &acknowledged));
213 EXPECT_TRUE(acknowledged); 224 EXPECT_TRUE(acknowledged);
225 std::string avatar;
226 EXPECT_TRUE(managed_user->GetString(kChromeAvatarKey, &avatar));
227 EXPECT_EQ(kAvatar2, avatar);
214 } 228 }
215 { 229 {
216 const DictionaryValue* managed_user = NULL; 230 const DictionaryValue* managed_user = NULL;
217 ASSERT_TRUE(managed_users->GetDictionary(kUserId3, &managed_user)); 231 ASSERT_TRUE(managed_users->GetDictionary(kUserId3, &managed_user));
218 ASSERT_TRUE(managed_user); 232 ASSERT_TRUE(managed_user);
219 std::string name; 233 std::string name;
220 EXPECT_TRUE(managed_user->GetString(kNameKey, &name)); 234 EXPECT_TRUE(managed_user->GetString(kNameKey, &name));
221 EXPECT_EQ(kName3, name); 235 EXPECT_EQ(kName3, name);
222 bool acknowledged = false; 236 bool acknowledged = false;
223 EXPECT_TRUE(managed_user->GetBoolean(kAcknowledgedKey, &acknowledged)); 237 EXPECT_TRUE(managed_user->GetBoolean(kAcknowledgedKey, &acknowledged));
224 EXPECT_TRUE(acknowledged); 238 EXPECT_TRUE(acknowledged);
239 std::string avatar;
240 EXPECT_TRUE(managed_user->GetString(kChromeAvatarKey, &avatar));
241 EXPECT_EQ(kAvatar3, avatar);
225 } 242 }
226 { 243 {
227 const DictionaryValue* managed_user = NULL; 244 const DictionaryValue* managed_user = NULL;
228 ASSERT_TRUE(managed_users->GetDictionary(kUserId4, &managed_user)); 245 ASSERT_TRUE(managed_users->GetDictionary(kUserId4, &managed_user));
229 ASSERT_TRUE(managed_user); 246 ASSERT_TRUE(managed_user);
230 std::string name; 247 std::string name;
231 EXPECT_TRUE(managed_user->GetString(kNameKey, &name)); 248 EXPECT_TRUE(managed_user->GetString(kNameKey, &name));
232 EXPECT_EQ(kName4, name); 249 EXPECT_EQ(kName4, name);
233 bool acknowledged = false; 250 bool acknowledged = false;
234 EXPECT_TRUE(managed_user->GetBoolean(kAcknowledgedKey, &acknowledged)); 251 EXPECT_TRUE(managed_user->GetBoolean(kAcknowledgedKey, &acknowledged));
235 EXPECT_TRUE(acknowledged); 252 EXPECT_TRUE(acknowledged);
253 std::string avatar;
254 EXPECT_TRUE(managed_user->GetString(kChromeAvatarKey, &avatar));
255 EXPECT_EQ(kAvatar4, avatar);
236 } 256 }
237 257
238 EXPECT_EQ(1u, change_processor()->changes().size()); 258 EXPECT_EQ(1u, change_processor()->changes().size());
239 { 259 {
240 SyncChange change = change_processor()->GetChange(kUserId1); 260 SyncChange change = change_processor()->GetChange(kUserId1);
241 ASSERT_TRUE(change.IsValid()); 261 ASSERT_TRUE(change.IsValid());
242 EXPECT_EQ(SyncChange::ACTION_ADD, change.change_type()); 262 EXPECT_EQ(SyncChange::ACTION_ADD, change.change_type());
243 const ManagedUserSpecifics& managed_user = 263 const ManagedUserSpecifics& managed_user =
244 change.sync_data().GetSpecifics().managed_user(); 264 change.sync_data().GetSpecifics().managed_user();
245 EXPECT_EQ(kName1, managed_user.name()); 265 EXPECT_EQ(kName1, managed_user.name());
246 EXPECT_FALSE(managed_user.acknowledged()); 266 EXPECT_FALSE(managed_user.acknowledged());
267 EXPECT_EQ(kAvatar1, managed_user.chrome_avatar());
247 } 268 }
248 } 269 }
OLDNEW
« no previous file with comments | « chrome/browser/managed_mode/managed_user_sync_service.cc ('k') | sync/protocol/managed_user_specifics.proto » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698