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

Side by Side Diff: chrome/browser/supervised_user/supervised_user_settings_service_unittest.cc

Issue 335833003: Rename "managed (mode|user)" to "supervised user" (part 2) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review comments (+ a few other cleanups) Created 6 years, 6 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 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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/callback.h" 6 #include "base/callback.h"
7 #include "base/json/json_reader.h" 7 #include "base/json/json_reader.h"
8 #include "base/prefs/testing_pref_store.h" 8 #include "base/prefs/testing_pref_store.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "chrome/browser/managed_mode/managed_user_settings_service.h" 10 #include "chrome/browser/supervised_user/supervised_user_settings_service.h"
11 #include "sync/api/fake_sync_change_processor.h" 11 #include "sync/api/fake_sync_change_processor.h"
12 #include "sync/api/sync_change.h" 12 #include "sync/api/sync_change.h"
13 #include "sync/api/sync_change_processor_wrapper_for_test.h" 13 #include "sync/api/sync_change_processor_wrapper_for_test.h"
14 #include "sync/api/sync_error_factory_mock.h" 14 #include "sync/api/sync_error_factory_mock.h"
15 #include "sync/protocol/sync.pb.h" 15 #include "sync/protocol/sync.pb.h"
16 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
17 17
18 namespace { 18 namespace {
19 19
20 class MockSyncErrorFactory : public syncer::SyncErrorFactory { 20 class MockSyncErrorFactory : public syncer::SyncErrorFactory {
(...skipping 26 matching lines...) Expand all
47 type_); 47 type_);
48 } 48 }
49 49
50 } // namespace 50 } // namespace
51 51
52 const char kAtomicItemName[] = "X-Wombat"; 52 const char kAtomicItemName[] = "X-Wombat";
53 const char kSettingsName[] = "TestingSetting"; 53 const char kSettingsName[] = "TestingSetting";
54 const char kSettingsValue[] = "SettingsValue"; 54 const char kSettingsValue[] = "SettingsValue";
55 const char kSplitItemName[] = "X-SuperMoosePowers"; 55 const char kSplitItemName[] = "X-SuperMoosePowers";
56 56
57 class ManagedUserSettingsServiceTest : public ::testing::Test { 57 class SupervisedUserSettingsServiceTest : public ::testing::Test {
58 protected: 58 protected:
59 ManagedUserSettingsServiceTest() {} 59 SupervisedUserSettingsServiceTest() {}
60 virtual ~ManagedUserSettingsServiceTest() {} 60 virtual ~SupervisedUserSettingsServiceTest() {}
61 61
62 scoped_ptr<syncer::SyncChangeProcessor> CreateSyncProcessor() { 62 scoped_ptr<syncer::SyncChangeProcessor> CreateSyncProcessor() {
63 sync_processor_.reset(new syncer::FakeSyncChangeProcessor); 63 sync_processor_.reset(new syncer::FakeSyncChangeProcessor);
64 return scoped_ptr<syncer::SyncChangeProcessor>( 64 return scoped_ptr<syncer::SyncChangeProcessor>(
65 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get())); 65 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get()));
66 } 66 }
67 67
68 void StartSyncing(const syncer::SyncDataList& initial_sync_data) { 68 void StartSyncing(const syncer::SyncDataList& initial_sync_data) {
69 scoped_ptr<syncer::SyncErrorFactory> error_handler( 69 scoped_ptr<syncer::SyncErrorFactory> error_handler(
70 new MockSyncErrorFactory(syncer::SUPERVISED_USER_SETTINGS)); 70 new MockSyncErrorFactory(syncer::SUPERVISED_USER_SETTINGS));
71 syncer::SyncMergeResult result = settings_service_.MergeDataAndStartSyncing( 71 syncer::SyncMergeResult result = settings_service_.MergeDataAndStartSyncing(
72 syncer::SUPERVISED_USER_SETTINGS, 72 syncer::SUPERVISED_USER_SETTINGS,
73 initial_sync_data, 73 initial_sync_data,
74 CreateSyncProcessor(), 74 CreateSyncProcessor(),
75 error_handler.Pass()); 75 error_handler.Pass());
76 EXPECT_FALSE(result.error().IsSet()); 76 EXPECT_FALSE(result.error().IsSet());
77 } 77 }
78 78
79 void UploadSplitItem(const std::string& key, const std::string& value) { 79 void UploadSplitItem(const std::string& key, const std::string& value) {
80 split_items_.SetStringWithoutPathExpansion(key, value); 80 split_items_.SetStringWithoutPathExpansion(key, value);
81 settings_service_.UploadItem( 81 settings_service_.UploadItem(
82 ManagedUserSettingsService::MakeSplitSettingKey(kSplitItemName, 82 SupervisedUserSettingsService::MakeSplitSettingKey(kSplitItemName,
83 key), 83 key),
84 scoped_ptr<base::Value>(new base::StringValue(value))); 84 scoped_ptr<base::Value>(new base::StringValue(value)));
85 } 85 }
86 86
87 void UploadAtomicItem(const std::string& value) { 87 void UploadAtomicItem(const std::string& value) {
88 atomic_setting_value_.reset(new base::StringValue(value)); 88 atomic_setting_value_.reset(new base::StringValue(value));
89 settings_service_.UploadItem( 89 settings_service_.UploadItem(
90 kAtomicItemName, 90 kAtomicItemName,
91 scoped_ptr<base::Value>(new base::StringValue(value))); 91 scoped_ptr<base::Value>(new base::StringValue(value)));
92 } 92 }
93 93
94 void VerifySyncDataItem(syncer::SyncData sync_data) { 94 void VerifySyncDataItem(syncer::SyncData sync_data) {
95 const sync_pb::ManagedUserSettingSpecifics& managed_user_setting = 95 const sync_pb::ManagedUserSettingSpecifics& supervised_user_setting =
96 sync_data.GetSpecifics().managed_user_setting(); 96 sync_data.GetSpecifics().managed_user_setting();
97 base::Value* expected_value = NULL; 97 base::Value* expected_value = NULL;
98 if (managed_user_setting.name() == kAtomicItemName) { 98 if (supervised_user_setting.name() == kAtomicItemName) {
99 expected_value = atomic_setting_value_.get(); 99 expected_value = atomic_setting_value_.get();
100 } else { 100 } else {
101 EXPECT_TRUE(StartsWithASCII(managed_user_setting.name(), 101 EXPECT_TRUE(StartsWithASCII(supervised_user_setting.name(),
102 std::string(kSplitItemName) + ':', 102 std::string(kSplitItemName) + ':',
103 true)); 103 true));
104 std::string key = 104 std::string key =
105 managed_user_setting.name().substr(strlen(kSplitItemName) + 1); 105 supervised_user_setting.name().substr(strlen(kSplitItemName) + 1);
106 EXPECT_TRUE(split_items_.GetWithoutPathExpansion(key, &expected_value)); 106 EXPECT_TRUE(split_items_.GetWithoutPathExpansion(key, &expected_value));
107 } 107 }
108 108
109 scoped_ptr<base::Value> value( 109 scoped_ptr<base::Value> value(
110 base::JSONReader::Read(managed_user_setting.value())); 110 base::JSONReader::Read(supervised_user_setting.value()));
111 EXPECT_TRUE(expected_value->Equals(value.get())); 111 EXPECT_TRUE(expected_value->Equals(value.get()));
112 } 112 }
113 113
114 void OnNewSettingsAvailable(const base::DictionaryValue* settings) { 114 void OnNewSettingsAvailable(const base::DictionaryValue* settings) {
115 if (!settings) 115 if (!settings)
116 settings_.reset(); 116 settings_.reset();
117 else 117 else
118 settings_.reset(settings->DeepCopy()); 118 settings_.reset(settings->DeepCopy());
119 } 119 }
120 120
121 // testing::Test overrides: 121 // testing::Test overrides:
122 virtual void SetUp() OVERRIDE { 122 virtual void SetUp() OVERRIDE {
123 TestingPrefStore* pref_store = new TestingPrefStore; 123 TestingPrefStore* pref_store = new TestingPrefStore;
124 settings_service_.Init(pref_store); 124 settings_service_.Init(pref_store);
125 settings_service_.Subscribe( 125 settings_service_.Subscribe(
126 base::Bind(&ManagedUserSettingsServiceTest::OnNewSettingsAvailable, 126 base::Bind(&SupervisedUserSettingsServiceTest::OnNewSettingsAvailable,
127 base::Unretained(this))); 127 base::Unretained(this)));
128 pref_store->SetInitializationCompleted(); 128 pref_store->SetInitializationCompleted();
129 ASSERT_FALSE(settings_); 129 ASSERT_FALSE(settings_);
130 settings_service_.SetActive(true); 130 settings_service_.SetActive(true);
131 ASSERT_TRUE(settings_); 131 ASSERT_TRUE(settings_);
132 } 132 }
133 133
134 virtual void TearDown() OVERRIDE { 134 virtual void TearDown() OVERRIDE {
135 settings_service_.Shutdown(); 135 settings_service_.Shutdown();
136 } 136 }
137 137
138 base::DictionaryValue split_items_; 138 base::DictionaryValue split_items_;
139 scoped_ptr<base::Value> atomic_setting_value_; 139 scoped_ptr<base::Value> atomic_setting_value_;
140 ManagedUserSettingsService settings_service_; 140 SupervisedUserSettingsService settings_service_;
141 scoped_ptr<base::DictionaryValue> settings_; 141 scoped_ptr<base::DictionaryValue> settings_;
142 142
143 scoped_ptr<syncer::FakeSyncChangeProcessor> sync_processor_; 143 scoped_ptr<syncer::FakeSyncChangeProcessor> sync_processor_;
144 }; 144 };
145 145
146 TEST_F(ManagedUserSettingsServiceTest, ProcessAtomicSetting) { 146 TEST_F(SupervisedUserSettingsServiceTest, ProcessAtomicSetting) {
147 StartSyncing(syncer::SyncDataList()); 147 StartSyncing(syncer::SyncDataList());
148 ASSERT_TRUE(settings_); 148 ASSERT_TRUE(settings_);
149 const base::Value* value = NULL; 149 const base::Value* value = NULL;
150 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSettingsName, &value)); 150 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSettingsName, &value));
151 151
152 settings_.reset(); 152 settings_.reset();
153 syncer::SyncData data = 153 syncer::SyncData data =
154 ManagedUserSettingsService::CreateSyncDataForSetting( 154 SupervisedUserSettingsService::CreateSyncDataForSetting(
155 kSettingsName, base::StringValue(kSettingsValue)); 155 kSettingsName, base::StringValue(kSettingsValue));
156 syncer::SyncChangeList change_list; 156 syncer::SyncChangeList change_list;
157 change_list.push_back( 157 change_list.push_back(
158 syncer::SyncChange(FROM_HERE, syncer::SyncChange::ACTION_ADD, data)); 158 syncer::SyncChange(FROM_HERE, syncer::SyncChange::ACTION_ADD, data));
159 syncer::SyncError error = 159 syncer::SyncError error =
160 settings_service_.ProcessSyncChanges(FROM_HERE, change_list); 160 settings_service_.ProcessSyncChanges(FROM_HERE, change_list);
161 EXPECT_FALSE(error.IsSet()) << error.ToString(); 161 EXPECT_FALSE(error.IsSet()) << error.ToString();
162 ASSERT_TRUE(settings_); 162 ASSERT_TRUE(settings_);
163 ASSERT_TRUE(settings_->GetWithoutPathExpansion(kSettingsName, &value)); 163 ASSERT_TRUE(settings_->GetWithoutPathExpansion(kSettingsName, &value));
164 std::string string_value; 164 std::string string_value;
165 EXPECT_TRUE(value->GetAsString(&string_value)); 165 EXPECT_TRUE(value->GetAsString(&string_value));
166 EXPECT_EQ(kSettingsValue, string_value); 166 EXPECT_EQ(kSettingsValue, string_value);
167 } 167 }
168 168
169 TEST_F(ManagedUserSettingsServiceTest, ProcessSplitSetting) { 169 TEST_F(SupervisedUserSettingsServiceTest, ProcessSplitSetting) {
170 StartSyncing(syncer::SyncDataList()); 170 StartSyncing(syncer::SyncDataList());
171 ASSERT_TRUE(settings_); 171 ASSERT_TRUE(settings_);
172 const base::Value* value = NULL; 172 const base::Value* value = NULL;
173 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSettingsName, &value)); 173 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSettingsName, &value));
174 174
175 base::DictionaryValue dict; 175 base::DictionaryValue dict;
176 dict.SetString("foo", "bar"); 176 dict.SetString("foo", "bar");
177 dict.SetBoolean("awesomesauce", true); 177 dict.SetBoolean("awesomesauce", true);
178 dict.SetInteger("eaudecologne", 4711); 178 dict.SetInteger("eaudecologne", 4711);
179 179
180 settings_.reset(); 180 settings_.reset();
181 syncer::SyncChangeList change_list; 181 syncer::SyncChangeList change_list;
182 for (base::DictionaryValue::Iterator it(dict); !it.IsAtEnd(); it.Advance()) { 182 for (base::DictionaryValue::Iterator it(dict); !it.IsAtEnd(); it.Advance()) {
183 syncer::SyncData data = 183 syncer::SyncData data =
184 ManagedUserSettingsService::CreateSyncDataForSetting( 184 SupervisedUserSettingsService::CreateSyncDataForSetting(
185 ManagedUserSettingsService::MakeSplitSettingKey(kSettingsName, 185 SupervisedUserSettingsService::MakeSplitSettingKey(kSettingsName,
186 it.key()), 186 it.key()),
187 it.value()); 187 it.value());
188 change_list.push_back( 188 change_list.push_back(
189 syncer::SyncChange(FROM_HERE, syncer::SyncChange::ACTION_ADD, data)); 189 syncer::SyncChange(FROM_HERE, syncer::SyncChange::ACTION_ADD, data));
190 } 190 }
191 syncer::SyncError error = 191 syncer::SyncError error =
192 settings_service_.ProcessSyncChanges(FROM_HERE, change_list); 192 settings_service_.ProcessSyncChanges(FROM_HERE, change_list);
193 EXPECT_FALSE(error.IsSet()) << error.ToString(); 193 EXPECT_FALSE(error.IsSet()) << error.ToString();
194 ASSERT_TRUE(settings_); 194 ASSERT_TRUE(settings_);
195 ASSERT_TRUE(settings_->GetWithoutPathExpansion(kSettingsName, &value)); 195 ASSERT_TRUE(settings_->GetWithoutPathExpansion(kSettingsName, &value));
196 const base::DictionaryValue* dict_value = NULL; 196 const base::DictionaryValue* dict_value = NULL;
197 ASSERT_TRUE(value->GetAsDictionary(&dict_value)); 197 ASSERT_TRUE(value->GetAsDictionary(&dict_value));
198 EXPECT_TRUE(dict_value->Equals(&dict)); 198 EXPECT_TRUE(dict_value->Equals(&dict));
199 } 199 }
200 200
201 TEST_F(ManagedUserSettingsServiceTest, SetLocalSetting) { 201 TEST_F(SupervisedUserSettingsServiceTest, SetLocalSetting) {
202 const base::Value* value = NULL; 202 const base::Value* value = NULL;
203 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSettingsName, &value)); 203 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSettingsName, &value));
204 204
205 settings_.reset(); 205 settings_.reset();
206 settings_service_.SetLocalSettingForTesting( 206 settings_service_.SetLocalSettingForTesting(
207 kSettingsName, 207 kSettingsName,
208 scoped_ptr<base::Value>(new base::StringValue(kSettingsValue))); 208 scoped_ptr<base::Value>(new base::StringValue(kSettingsValue)));
209 ASSERT_TRUE(settings_); 209 ASSERT_TRUE(settings_);
210 ASSERT_TRUE(settings_->GetWithoutPathExpansion(kSettingsName, &value)); 210 ASSERT_TRUE(settings_->GetWithoutPathExpansion(kSettingsName, &value));
211 std::string string_value; 211 std::string string_value;
212 EXPECT_TRUE(value->GetAsString(&string_value)); 212 EXPECT_TRUE(value->GetAsString(&string_value));
213 EXPECT_EQ(kSettingsValue, string_value); 213 EXPECT_EQ(kSettingsValue, string_value);
214 } 214 }
215 215
216 TEST_F(ManagedUserSettingsServiceTest, UploadItem) { 216 TEST_F(SupervisedUserSettingsServiceTest, UploadItem) {
217 UploadSplitItem("foo", "bar"); 217 UploadSplitItem("foo", "bar");
218 UploadSplitItem("blurp", "baz"); 218 UploadSplitItem("blurp", "baz");
219 UploadAtomicItem("hurdle"); 219 UploadAtomicItem("hurdle");
220 220
221 // Uploading should produce changes when we start syncing. 221 // Uploading should produce changes when we start syncing.
222 StartSyncing(syncer::SyncDataList()); 222 StartSyncing(syncer::SyncDataList());
223 ASSERT_EQ(3u, sync_processor_->changes().size()); 223 ASSERT_EQ(3u, sync_processor_->changes().size());
224 for (syncer::SyncChangeList::const_iterator it = 224 for (syncer::SyncChangeList::const_iterator it =
225 sync_processor_->changes().begin(); 225 sync_processor_->changes().begin();
226 it != sync_processor_->changes().end(); 226 it != sync_processor_->changes().end();
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 // The uploaded items should not show up as settings. 293 // The uploaded items should not show up as settings.
294 const base::Value* value = NULL; 294 const base::Value* value = NULL;
295 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kAtomicItemName, &value)); 295 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kAtomicItemName, &value));
296 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSplitItemName, &value)); 296 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSplitItemName, &value));
297 297
298 // Restarting sync should not create any new changes. 298 // Restarting sync should not create any new changes.
299 settings_service_.StopSyncing(syncer::SUPERVISED_USER_SETTINGS); 299 settings_service_.StopSyncing(syncer::SUPERVISED_USER_SETTINGS);
300 StartSyncing(sync_data); 300 StartSyncing(sync_data);
301 ASSERT_EQ(0u, sync_processor_->changes().size()); 301 ASSERT_EQ(0u, sync_processor_->changes().size());
302 } 302 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698