Chromium Code Reviews| 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 |