OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "base/strings/string16.h" | |
6 #include "base/strings/string_util.h" | |
7 #include "base/strings/utf_string_conversions.h" | |
8 #include "chrome/browser/webshare/share_target_pref_helper.h" | |
9 #include "chrome/common/pref_names.h" | |
10 #include "chrome/test/base/testing_profile.h" | |
11 #include "components/prefs/pref_registry_simple.h" | |
12 #include "components/prefs/testing_pref_service.h" | |
13 #include "testing/gtest/include/gtest/gtest.h" | |
14 | |
15 class PrefRegistrySimple; | |
16 | |
Matt Giuca
2017/01/24 03:26:09
I think this entire file (except for the forward d
constantina
2017/01/24 23:39:05
Done.
| |
17 class ShareTargetPrefHelperUnittest : public testing::Test { | |
18 protected: | |
19 ShareTargetPrefHelperUnittest() {} | |
20 ~ShareTargetPrefHelperUnittest() override {} | |
21 | |
22 void SetUp() override { | |
23 pref_service.registry()->RegisterDictionaryPref( | |
Matt Giuca
2017/01/24 03:26:10
This will need a corresponding TearDown which rese
constantina
2017/01/24 23:39:05
As in, an UnregisterPref? I can't find anything th
Matt Giuca
2017/01/25 00:25:53
Acknowledged.
| |
24 prefs::kWebShareVisitedTargets); | |
25 | |
26 share_target_dict = nullptr; | |
27 share_target_info_dict = nullptr; | |
28 } | |
29 | |
30 TestingPrefServiceSimple pref_service; | |
Matt Giuca
2017/01/24 03:26:10
These should follow standard style rules: fields s
constantina
2017/01/24 23:39:05
Done.
| |
31 std::string share_target_origin; | |
Matt Giuca
2017/01/24 03:26:10
These four (share_target_origin .. share_target_in
constantina
2017/01/24 23:39:05
Done.
| |
32 base::Optional<std::string> expected_url_template; | |
33 const base::DictionaryValue* share_target_dict; | |
34 const base::DictionaryValue* share_target_info_dict; | |
35 }; | |
36 | |
37 constexpr char kUrlTemplateKey[] = "url_template"; | |
38 | |
39 TEST_F(ShareTargetPrefHelperUnittest, AddMultipleShareTargets) { | |
Matt Giuca
2017/01/24 03:26:10
Good, the tests feel much better split up.
constantina
2017/01/24 23:39:05
:D
| |
40 // Add a share target to prefs that wasn't previously stored. | |
41 { | |
Matt Giuca
2017/01/24 03:26:10
I don't think these braces are really warranted. T
constantina
2017/01/24 23:39:05
Done.
| |
42 share_target_origin = "https://www.sharetarget.com/"; | |
43 expected_url_template = base::Optional<std::string>("share/?title={title}"); | |
Matt Giuca
2017/01/24 03:26:10
This shouldn't be called "expected_url_template" b
constantina
2017/01/24 23:39:05
There's already a url_template, which you said to
Matt Giuca
2017/01/25 00:25:53
Oh I see what I did there.
Yeah I think it makes
constantina
2017/01/25 03:18:27
Done.
| |
44 | |
45 webshare::AddShareTargetToPrefs( | |
46 share_target_origin, expected_url_template, &pref_service); | |
47 | |
48 share_target_dict = | |
49 pref_service.GetDictionary(prefs::kWebShareVisitedTargets); | |
50 EXPECT_EQ(1UL, share_target_dict->size()); | |
51 ASSERT_TRUE(share_target_dict->GetDictionaryWithoutPathExpansion( | |
52 share_target_origin, &share_target_info_dict)); | |
53 EXPECT_EQ(1UL, share_target_info_dict->size()); | |
54 std::string url_template; | |
55 EXPECT_TRUE(share_target_info_dict->GetString(kUrlTemplateKey, | |
56 &url_template)); | |
57 EXPECT_EQ(url_template, expected_url_template); | |
58 } | |
59 | |
60 // Add second share target to prefs that wasn't previously stored. | |
61 { | |
62 share_target_origin = "https://www.sharetarget2.com/"; | |
63 expected_url_template = base::Optional<std::string>("share/?title={title}"); | |
64 | |
65 webshare::AddShareTargetToPrefs(share_target_origin, expected_url_template, | |
66 &pref_service); | |
67 | |
68 share_target_dict = | |
69 pref_service.GetDictionary(prefs::kWebShareVisitedTargets); | |
70 EXPECT_EQ(2UL, share_target_dict->size()); | |
71 ASSERT_TRUE(share_target_dict->GetDictionaryWithoutPathExpansion( | |
72 share_target_origin, &share_target_info_dict)); | |
73 EXPECT_EQ(1UL, share_target_info_dict->size()); | |
74 std::string url_template; | |
75 EXPECT_TRUE(share_target_info_dict->GetString(kUrlTemplateKey, | |
76 &url_template)); | |
77 EXPECT_EQ(url_template, expected_url_template); | |
78 } | |
79 } | |
80 | |
81 TEST_F(ShareTargetPrefHelperUnittest, AddShareTargetTwice) { | |
Matt Giuca
2017/01/24 03:26:10
I think this test can be removed ... it is essenti
constantina
2017/01/24 23:39:05
One adds the same share target with the same url_t
| |
82 share_target_origin = "https://www.sharetarget.com/"; | |
83 expected_url_template = base::Optional<std::string>("share/?title={title}"); | |
84 | |
85 // Add a share target to prefs that wasn't previously stored. | |
86 { | |
87 webshare::AddShareTargetToPrefs( | |
88 share_target_origin, expected_url_template, &pref_service); | |
89 | |
90 share_target_dict = | |
91 pref_service.GetDictionary(prefs::kWebShareVisitedTargets); | |
92 EXPECT_EQ(1UL, share_target_dict->size()); | |
93 ASSERT_TRUE(share_target_dict->GetDictionaryWithoutPathExpansion( | |
94 share_target_origin, &share_target_info_dict)); | |
95 EXPECT_EQ(1UL, share_target_info_dict->size()); | |
96 std::string url_template; | |
97 EXPECT_TRUE(share_target_info_dict->GetString(kUrlTemplateKey, | |
98 &url_template)); | |
99 EXPECT_EQ(url_template, expected_url_template); | |
100 } | |
101 | |
102 // Add same share target to prefs that was previously stored; shouldn't | |
103 // duplicate it. | |
104 { | |
105 webshare::AddShareTargetToPrefs( | |
106 share_target_origin, expected_url_template, &pref_service); | |
107 | |
108 share_target_dict = | |
109 pref_service.GetDictionary(prefs::kWebShareVisitedTargets); | |
110 EXPECT_EQ(1UL, share_target_dict->size()); | |
111 ASSERT_TRUE(share_target_dict->GetDictionaryWithoutPathExpansion( | |
112 share_target_origin, &share_target_info_dict)); | |
113 EXPECT_EQ(1UL, share_target_info_dict->size()); | |
114 std::string url_template; | |
115 EXPECT_TRUE(share_target_info_dict->GetString(kUrlTemplateKey, | |
116 &url_template)); | |
117 EXPECT_EQ(url_template, expected_url_template); | |
118 } | |
119 } | |
120 | |
121 TEST_F(ShareTargetPrefHelperUnittest, DontAddNonShareTarget) { | |
Matt Giuca
2017/01/24 03:26:10
Move this down right before RemoveShareTarget....
constantina
2017/01/24 23:39:05
Done.
| |
122 // Don't add a site that has a null template. | |
123 { | |
Matt Giuca
2017/01/24 03:26:10
Don't need the extra braces for a test that only h
constantina
2017/01/24 23:39:05
Done.
| |
124 share_target_origin = "https://www.dudsharetarget.com/"; | |
125 expected_url_template = base::nullopt; | |
126 | |
127 webshare::AddShareTargetToPrefs( | |
128 share_target_origin, expected_url_template, &pref_service); | |
129 | |
130 share_target_dict = | |
131 pref_service.GetDictionary(prefs::kWebShareVisitedTargets); | |
132 EXPECT_EQ(0UL, share_target_dict->size()); | |
133 ASSERT_FALSE(share_target_dict->GetDictionaryWithoutPathExpansion( | |
134 share_target_origin, &share_target_info_dict)); | |
135 } | |
136 } | |
137 | |
138 TEST_F(ShareTargetPrefHelperUnittest, UpdateShareTarget) { | |
139 // Add a share target to prefs that wasn't previously stored. | |
140 { | |
141 share_target_origin = "https://www.sharetarget.com/"; | |
142 expected_url_template = base::Optional<std::string>("share/?title={title}"); | |
143 | |
144 webshare::AddShareTargetToPrefs( | |
145 share_target_origin, expected_url_template, &pref_service); | |
146 | |
147 share_target_dict = | |
148 pref_service.GetDictionary(prefs::kWebShareVisitedTargets); | |
149 EXPECT_EQ(1UL, share_target_dict->size()); | |
150 ASSERT_TRUE(share_target_dict->GetDictionaryWithoutPathExpansion( | |
151 share_target_origin, &share_target_info_dict)); | |
152 EXPECT_EQ(1UL, share_target_info_dict->size()); | |
153 std::string url_template; | |
154 EXPECT_TRUE(share_target_info_dict->GetString(kUrlTemplateKey, | |
155 &url_template)); | |
156 EXPECT_EQ(url_template, expected_url_template); | |
157 } | |
158 | |
159 // Add same share target to prefs that was previously stored, with new | |
160 // url_template; should update the value. | |
161 { | |
162 share_target_origin = "https://www.sharetarget.com/"; | |
163 expected_url_template = | |
164 base::Optional<std::string>("share/?title={title}&text={text}"); | |
165 | |
166 webshare::AddShareTargetToPrefs( | |
167 share_target_origin, expected_url_template, &pref_service); | |
168 | |
169 share_target_dict = | |
170 pref_service.GetDictionary(prefs::kWebShareVisitedTargets); | |
171 EXPECT_EQ(1UL, share_target_dict->size()); | |
172 ASSERT_TRUE(share_target_dict->GetDictionaryWithoutPathExpansion( | |
173 share_target_origin, &share_target_info_dict)); | |
174 EXPECT_EQ(1UL, share_target_info_dict->size()); | |
175 std::string url_template; | |
176 EXPECT_TRUE(share_target_info_dict->GetString(kUrlTemplateKey, | |
177 &url_template)); | |
178 EXPECT_EQ(url_template, expected_url_template); | |
179 } | |
180 } | |
181 | |
182 TEST_F(ShareTargetPrefHelperUnittest, RemoveShareTargetThatIsNoLongerTarget) { | |
Matt Giuca
2017/01/24 03:26:10
Maybe just rename this to "RemoveShareTarget".
constantina
2017/01/24 23:39:05
Done.
| |
183 // Add a share target to prefs that wasn't previously stored. | |
184 { | |
185 share_target_origin = "https://www.sharetarget.com/"; | |
186 expected_url_template = base::Optional<std::string>("share/?title={title}"); | |
187 | |
188 webshare::AddShareTargetToPrefs( | |
189 share_target_origin, expected_url_template, &pref_service); | |
190 | |
191 share_target_dict = | |
192 pref_service.GetDictionary(prefs::kWebShareVisitedTargets); | |
193 EXPECT_EQ(1UL, share_target_dict->size()); | |
194 ASSERT_TRUE(share_target_dict->GetDictionaryWithoutPathExpansion( | |
195 share_target_origin, &share_target_info_dict)); | |
196 EXPECT_EQ(1UL, share_target_info_dict->size()); | |
197 std::string url_template; | |
198 EXPECT_TRUE(share_target_info_dict->GetString(kUrlTemplateKey, | |
199 &url_template)); | |
200 EXPECT_EQ(url_template, expected_url_template); | |
201 } | |
202 | |
203 // Share target already added now has null template. Remove from prefs. | |
204 { | |
205 share_target_origin = "https://www.sharetarget.com/"; | |
206 expected_url_template = base::nullopt; | |
207 | |
208 webshare::AddShareTargetToPrefs( | |
209 share_target_origin, expected_url_template, &pref_service); | |
210 | |
211 share_target_dict = | |
212 pref_service.GetDictionary(prefs::kWebShareVisitedTargets); | |
213 EXPECT_EQ(0UL, share_target_dict->size()); | |
214 } | |
215 } | |
OLD | NEW |