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

Side by Side Diff: chrome/browser/webshare/share_target_pref_helper_unittest.cc

Issue 2639463002: Add a pref name for share targets, and store their manifest data. (Closed)
Patch Set: Separate tests, add .h, as per feedback Created 3 years, 11 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 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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698