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

Side by Side Diff: chrome/browser/profiles/profile_metadata_storage_unittest.cc

Issue 1214483002: Improve the ProfileInfoCache API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
OLDNEW
(Empty)
1 // Copyright (c) 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
noms (inactive) 2015/06/29 17:10:40 nit: same comment about the copyright
anthonyvd 2015/06/30 21:24:53 Done.
3 // found in the LICENSE file.
4
5 #include "base/strings/stringprintf.h"
6 #include "base/strings/utf_string_conversions.h"
7 #include "chrome/browser/profiles/profile_info_cache.h"
8 #include "chrome/browser/profiles/profile_manager.h"
9 #include "chrome/browser/supervised_user/supervised_user_constants.h"
10 #include "chrome/test/base/testing_browser_process.h"
11 #include "chrome/test/base/testing_profile_manager.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13
14 namespace {
15 // The ProfileMetadataEntry accessors aren't just plain old accessors to local
16 // members so they'll be tested. The following helpers will make the testing
17 // code less verbose.
18 #define TEST_ACCESSORS(entry, member, first_value, second_value) \
19 TestAccessors(&entry, \
20 &decltype(entry)::Get ## member, \
21 &decltype(entry)::Set ## member, \
22 first_value, \
23 second_value);
24
25 #define TEST_STRING16_ACCESSORS(entry, member) \
26 TEST_ACCESSORS(entry, member, \
27 base::ASCIIToUTF16("first_" #member "_value"), \
28 base::ASCIIToUTF16("second_" #member "_value"));
29
30 #define TEST_STRING_ACCESSORS(entry, member) \
31 TEST_ACCESSORS(entry, member, \
32 std::string("first_" #member "_value"), \
33 std::string("second_" #member "_value"));
34
35 #define TEST_BOOL_ACCESSORS(entry, member) \
36 TestAccessors(&entry, \
37 &decltype(entry)::member, \
38 &decltype(entry)::Set ## member, \
39 false, \
40 true);
41
42 template<typename TValue, typename TGetter, typename TSetter>
43 void TestAccessors(ProfileMetadataStorage::ProfileMetadataEntry* entry,
44 TGetter getter_func,
45 TSetter setter_func,
46 TValue first_value,
47 TValue second_value) {
48 (entry->*setter_func)(first_value);
49 EXPECT_EQ(first_value, (entry->*getter_func)());
50 (entry->*setter_func)(second_value);
51 EXPECT_EQ(second_value, (entry->*getter_func)());
52 }
53 } // namespace
54
55 class ProfileMetadataStorageTest : public testing::Test {
56 public:
57 ProfileMetadataStorageTest()
58 : testing_profile_manager_(TestingBrowserProcess::GetGlobal()) {}
59 ~ProfileMetadataStorageTest() override {}
60
61 protected:
62 void SetUp() override {
63 ASSERT_TRUE(testing_profile_manager_.SetUp());
64 }
65
66 void TearDown() override {
67 }
68
69 base::FilePath GetProfilePath(const std::string& base_name) {
70 return testing_profile_manager_.profile_manager()->user_data_dir().
71 AppendASCII(base_name);
72 }
73
74 ProfileMetadataStorage* storage() {
75 return testing_profile_manager_.profile_info_cache();
76 }
77
78 void AddTestingProfile() {
79 size_t number_of_profiles = storage()->GetNumberOfProfiles();
80
81 storage()->AddProfile(
82 GetProfilePath(
83 base::StringPrintf("testing_profile_path%lu", number_of_profiles)),
84 base::ASCIIToUTF16(
85 base::StringPrintf("testing_profile_name%lu", number_of_profiles)),
86 std::string(
87 base::StringPrintf("testing_profile_gaia%lu", number_of_profiles)),
88 base::ASCIIToUTF16(
89 base::StringPrintf("testing_profile_user%lu", number_of_profiles)),
90 number_of_profiles,
91 std::string(""));
92
93 EXPECT_EQ(number_of_profiles + 1, storage()->GetNumberOfProfiles());
94 }
95
96 TestingProfileManager testing_profile_manager_;
Mike Lerman 2015/06/29 19:14:37 nit: private:
anthonyvd 2015/06/30 21:24:53 Done.
97 };
98
99 TEST_F(ProfileMetadataStorageTest, ProfileNotFound) {
100 EXPECT_EQ(0U, storage()->GetNumberOfProfiles());
101
102 ProfileMetadataStorage::ProfileMetadataEntry entry;
103 ASSERT_FALSE(storage()->GetProfileMetadataWithPath(
104 GetProfilePath("testing_profile_path0"), &entry));
105
106 AddTestingProfile();
107 EXPECT_EQ(1U, storage()->GetNumberOfProfiles());
108
109 ASSERT_TRUE(storage()->GetProfileMetadataWithPath(
110 GetProfilePath("testing_profile_path0"), &entry));
111 ASSERT_FALSE(storage()->GetProfileMetadataWithPath(
112 GetProfilePath("testing_profile_path1"), &entry));
113 }
114
115 TEST_F(ProfileMetadataStorageTest, AddProfile) {
116 EXPECT_EQ(0U, storage()->GetNumberOfProfiles());
117
118 storage()->AddProfile(GetProfilePath("new_profile_path_1"),
119 base::ASCIIToUTF16("new_profile_name_1"),
120 std::string("new_profile_gaia_1"),
121 base::ASCIIToUTF16("new_profile_username_1"),
122 1,
123 std::string(""));
124
125 EXPECT_EQ(1U, storage()->GetNumberOfProfiles());
126
127 ProfileMetadataStorage::ProfileMetadataEntry entry;
128 ASSERT_TRUE(storage()->GetProfileMetadataWithPath(
129 GetProfilePath("new_profile_path_1"), &entry));
130 EXPECT_EQ(base::ASCIIToUTF16("new_profile_name_1"), entry.GetName());
131 }
132
133 TEST_F(ProfileMetadataStorageTest, DeleteProfile) {
134 EXPECT_EQ(0U, storage()->GetNumberOfProfiles());
135
136 ProfileMetadataStorage::ProfileMetadataEntry entry;
137 ASSERT_FALSE(storage()->GetProfileMetadataWithPath(
138 GetProfilePath("testing_profile_path0"), &entry));
139
140 AddTestingProfile();
141 EXPECT_EQ(1U, storage()->GetNumberOfProfiles());
142
143 // Deleting an existing profile should make it un-retrievable.
144 storage()->DeleteProfile(GetProfilePath("testing_profile_path0"));
145 EXPECT_EQ(0U, storage()->GetNumberOfProfiles());
146
147 ASSERT_FALSE(storage()->GetProfileMetadataWithPath(
148 GetProfilePath("testing_profile_path1"), &entry));
149 ASSERT_FALSE(storage()->GetProfileMetadataWithPath(
150 GetProfilePath("testing_profile_path1"), &entry));
151 }
152
153 TEST_F(ProfileMetadataStorageTest, MultipleProfiles) {
154 EXPECT_EQ(0U, storage()->GetNumberOfProfiles());
155
156 for (size_t i = 0; i < 5; ++i) {
157 AddTestingProfile();
158 EXPECT_EQ(i + 1, storage()->GetNumberOfProfiles());
159 std::vector<ProfileMetadataStorage::ProfileMetadataEntry> entries =
160 storage()->GetAllProfilesMetadata();
161 EXPECT_EQ(i + 1, entries.size());
162 }
163
164 EXPECT_EQ(5U, storage()->GetNumberOfProfiles());
165
166 ProfileMetadataStorage::ProfileMetadataEntry entry;
167 ASSERT_TRUE(storage()->GetProfileMetadataWithPath(
168 GetProfilePath("testing_profile_path0"), &entry));
169 EXPECT_EQ(base::ASCIIToUTF16("testing_profile_name0"), entry.GetName());
170
171 storage()->DeleteProfile(GetProfilePath("testing_profile_path0"));
172 ASSERT_FALSE(storage()->GetProfileMetadataWithPath(
173 GetProfilePath("testing_profile_path0"), &entry));
174 EXPECT_EQ(4U, storage()->GetNumberOfProfiles());
175
176 std::vector<ProfileMetadataStorage::ProfileMetadataEntry> entries =
177 storage()->GetAllProfilesMetadata();
178 for (auto& entry: entries) {
179 EXPECT_NE(GetProfilePath("testing_profile_path0"), entry.GetPath());
180 }
181 }
182
183 TEST_F(ProfileMetadataStorageTest, InitialValues) {
184 AddTestingProfile();
185
186 ProfileMetadataStorage::ProfileMetadataEntry entry;
187 ASSERT_TRUE(storage()->GetProfileMetadataWithPath(
188 GetProfilePath("testing_profile_path0"), &entry));
189 EXPECT_EQ(GetProfilePath("testing_profile_path0"), entry.GetPath());
190 EXPECT_EQ(base::ASCIIToUTF16("testing_profile_name0"), entry.GetName());
191 EXPECT_EQ(std::string("testing_profile_gaia0"), entry.GetGAIAId());
192 EXPECT_EQ(base::ASCIIToUTF16("testing_profile_user0"), entry.GetUserName());
193 EXPECT_EQ(0U, entry.GetAvatarIconIndex());
194 EXPECT_EQ(std::string(""), entry.GetSupervisedUserId());
195 }
196
197 TEST_F(ProfileMetadataStorageTest, EntryAccessors) {
198 AddTestingProfile();
199
200 ProfileMetadataStorage::ProfileMetadataEntry entry;
201 ASSERT_TRUE(storage()->GetProfileMetadataWithPath(
202 GetProfilePath("testing_profile_path0"), &entry));
203
204 EXPECT_EQ(GetProfilePath("testing_profile_path0"), entry.GetPath());
205
206 TEST_STRING16_ACCESSORS(entry, Name);
207 TEST_STRING16_ACCESSORS(entry, ShortcutName);
208 TEST_STRING_ACCESSORS(entry, LocalAuthCredentials);
209 TEST_STRING_ACCESSORS(entry, PasswordChangeDetectionToken);
210 TEST_ACCESSORS(entry, BackgroundStatus, false, true);
211 TEST_STRING16_ACCESSORS(entry, GAIAName);
212 TEST_STRING16_ACCESSORS(entry, GAIAGivenName);
213 TEST_BOOL_ACCESSORS(entry, IsUsingGAIAPicture);
214 TEST_BOOL_ACCESSORS(entry, IsOmitted);
215 TEST_BOOL_ACCESSORS(entry, IsSigninRequired);
216 TEST_STRING_ACCESSORS(entry, SupervisedUserId);
217 TEST_BOOL_ACCESSORS(entry, IsEphemeral);
218 TEST_BOOL_ACCESSORS(entry, IsUsingDefaultName);
219 TEST_BOOL_ACCESSORS(entry, IsUsingDefaultAvatar);
220 TEST_BOOL_ACCESSORS(entry, IsAuthError);
221 }
222
223 TEST_F(ProfileMetadataStorageTest, AuthInfo) {
224 AddTestingProfile();
225
226 ProfileMetadataStorage::ProfileMetadataEntry entry;
227 ASSERT_TRUE(storage()->GetProfileMetadataWithPath(
228 GetProfilePath("testing_profile_path0"), &entry));
229
230 entry.SetAuthInfo("", base::string16());
231 ASSERT_FALSE(entry.IsAuthenticated());
232 EXPECT_EQ(base::string16(), entry.GetUserName());
233 EXPECT_EQ("", entry.GetGAIAId());
234
235 entry.SetAuthInfo("foo", base::ASCIIToUTF16("bar"));
236 ASSERT_TRUE(entry.IsAuthenticated());
237 EXPECT_EQ(base::ASCIIToUTF16("bar"), entry.GetUserName());
238 EXPECT_EQ("foo", entry.GetGAIAId());
239 }
240
241 TEST_F(ProfileMetadataStorageTest, SupervisedUsersAccessors) {
242 AddTestingProfile();
243
244 ProfileMetadataStorage::ProfileMetadataEntry entry;
245 ASSERT_TRUE(storage()->GetProfileMetadataWithPath(
246 GetProfilePath("testing_profile_path0"), &entry));
247
248 entry.SetSupervisedUserId("");
249 ASSERT_FALSE(entry.IsSupervised());
250 ASSERT_FALSE(entry.IsChild());
251 ASSERT_FALSE(entry.IsLegacySupervised());
252
253 entry.SetSupervisedUserId("some_supervised_user_id");
254 ASSERT_TRUE(entry.IsSupervised());
255 ASSERT_FALSE(entry.IsChild());
256 ASSERT_TRUE(entry.IsLegacySupervised());
257
258 entry.SetSupervisedUserId(supervised_users::kChildAccountSUID);
259 ASSERT_TRUE(entry.IsSupervised());
260 ASSERT_TRUE(entry.IsChild());
261 ASSERT_FALSE(entry.IsLegacySupervised());
262 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698