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

Side by Side Diff: chrome/common/extensions/manifest_handlers/automation_unittest.cc

Issue 980353003: Extensions: Switch to new permission message system, part I (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: cleanup;rebase Created 5 years, 9 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
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/strings/utf_string_conversions.h"
6 #include "chrome/common/extensions/features/feature_channel.h" 5 #include "chrome/common/extensions/features/feature_channel.h"
7 #include "chrome/common/extensions/manifest_handlers/automation.h" 6 #include "chrome/common/extensions/manifest_handlers/automation.h"
8 #include "chrome/common/extensions/manifest_tests/chrome_manifest_test.h" 7 #include "chrome/common/extensions/manifest_tests/chrome_manifest_test.h"
9 #include "chrome/grit/generated_resources.h" 8 #include "chrome/grit/generated_resources.h"
10 #include "extensions/common/error_utils.h" 9 #include "extensions/common/error_utils.h"
11 #include "extensions/common/manifest_constants.h" 10 #include "extensions/common/manifest_constants.h"
11 #include "extensions/common/permissions/permission_message_test_util.h"
12 #include "extensions/common/permissions/permissions_data.h" 12 #include "extensions/common/permissions/permissions_data.h"
13 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
14 #include "ui/base/l10n/l10n_util.h" 14 #include "ui/base/l10n/l10n_util.h"
15 15
16 namespace extensions { 16 namespace extensions {
17 17
18 class AutomationManifestTest : public ChromeManifestTest { 18 class AutomationManifestTest : public ChromeManifestTest {
19 public: 19 public:
20 AutomationManifestTest() : channel_(chrome::VersionInfo::CHANNEL_UNKNOWN) {} 20 AutomationManifestTest() : channel_(chrome::VersionInfo::CHANNEL_UNKNOWN) {}
21 21
22 protected: 22 protected:
23 AutomationInfo* GetAutomationInfo(scoped_refptr<Extension> extension) { 23 AutomationInfo* GetAutomationInfo(scoped_refptr<Extension> extension) {
24 return static_cast<AutomationInfo*>( 24 return static_cast<AutomationInfo*>(
25 extension->GetManifestData(manifest_keys::kAutomation)); 25 extension->GetManifestData(manifest_keys::kAutomation));
26 } 26 }
27 27
28 private: 28 private:
29 ScopedCurrentChannel channel_; 29 ScopedCurrentChannel channel_;
30 }; 30 };
31 31
32 TEST_F(AutomationManifestTest, AsBooleanFalse) { 32 TEST_F(AutomationManifestTest, AsBooleanFalse) {
33 scoped_refptr<Extension> extension = 33 scoped_refptr<Extension> extension =
34 LoadAndExpectSuccess("automation_boolean_false.json"); 34 LoadAndExpectSuccess("automation_boolean_false.json");
35 ASSERT_TRUE(extension.get()); 35 ASSERT_TRUE(extension.get());
36 36
37 std::vector<base::string16> warnings = 37 EXPECT_TRUE(VerifyNoPermissionMessages(extension->permissions_data()));
38 extension->permissions_data()->GetPermissionMessageStrings();
39 EXPECT_EQ(0u, warnings.size());
40 38
41 const AutomationInfo* info = AutomationInfo::Get(extension.get()); 39 const AutomationInfo* info = AutomationInfo::Get(extension.get());
42 ASSERT_FALSE(info); 40 ASSERT_FALSE(info);
43 } 41 }
44 42
45 TEST_F(AutomationManifestTest, AsBooleanTrue) { 43 TEST_F(AutomationManifestTest, AsBooleanTrue) {
46 scoped_refptr<Extension> extension = 44 scoped_refptr<Extension> extension =
47 LoadAndExpectSuccess("automation_boolean_true.json"); 45 LoadAndExpectSuccess("automation_boolean_true.json");
48 ASSERT_TRUE(extension.get()); 46 ASSERT_TRUE(extension.get());
49 47
50 std::vector<base::string16> warnings = 48 EXPECT_TRUE(VerifyOnePermissionMessage(
51 extension->permissions_data()->GetPermissionMessageStrings(); 49 extension->permissions_data(),
52 ASSERT_EQ(1u, warnings.size()); 50 "Read and change your data on www.google.com"));
53 EXPECT_EQ("Read and change your data on www.google.com",
54 base::UTF16ToUTF8(warnings[0]));
55 51
56 const AutomationInfo* info = AutomationInfo::Get(extension.get()); 52 const AutomationInfo* info = AutomationInfo::Get(extension.get());
57 ASSERT_TRUE(info); 53 ASSERT_TRUE(info);
58 54
59 EXPECT_FALSE(info->desktop); 55 EXPECT_FALSE(info->desktop);
60 EXPECT_FALSE(info->interact); 56 EXPECT_FALSE(info->interact);
61 EXPECT_TRUE(info->matches.is_empty()); 57 EXPECT_TRUE(info->matches.is_empty());
62 } 58 }
63 59
64 TEST_F(AutomationManifestTest, InteractTrue) { 60 TEST_F(AutomationManifestTest, InteractTrue) {
65 scoped_refptr<Extension> extension = 61 scoped_refptr<Extension> extension =
66 LoadAndExpectSuccess("automation_interact_true.json"); 62 LoadAndExpectSuccess("automation_interact_true.json");
67 ASSERT_TRUE(extension.get()); 63 ASSERT_TRUE(extension.get());
68 64
69 std::vector<base::string16> warnings = 65 EXPECT_TRUE(VerifyOnePermissionMessage(
70 extension->permissions_data()->GetPermissionMessageStrings(); 66 extension->permissions_data(),
71 ASSERT_EQ(1u, warnings.size()); 67 "Read and change your data on www.google.com"));
72 EXPECT_EQ("Read and change your data on www.google.com",
73 base::UTF16ToUTF8(warnings[0]));
74 68
75 const AutomationInfo* info = AutomationInfo::Get(extension.get()); 69 const AutomationInfo* info = AutomationInfo::Get(extension.get());
76 ASSERT_TRUE(info); 70 ASSERT_TRUE(info);
77 71
78 EXPECT_FALSE(info->desktop); 72 EXPECT_FALSE(info->desktop);
79 EXPECT_TRUE(info->interact); 73 EXPECT_TRUE(info->interact);
80 EXPECT_TRUE(info->matches.is_empty()); 74 EXPECT_TRUE(info->matches.is_empty());
81 } 75 }
82 76
83 TEST_F(AutomationManifestTest, Matches) { 77 TEST_F(AutomationManifestTest, Matches) {
84 scoped_refptr<Extension> extension = LoadAndExpectWarning( 78 scoped_refptr<Extension> extension = LoadAndExpectWarning(
85 "automation_matches.json", 79 "automation_matches.json",
86 ErrorUtils::FormatErrorMessage( 80 ErrorUtils::FormatErrorMessage(
87 automation_errors::kErrorInvalidMatch, 81 automation_errors::kErrorInvalidMatch,
88 "www.badpattern.com", 82 "www.badpattern.com",
89 URLPattern::GetParseResultString( 83 URLPattern::GetParseResultString(
90 URLPattern::PARSE_ERROR_MISSING_SCHEME_SEPARATOR))); 84 URLPattern::PARSE_ERROR_MISSING_SCHEME_SEPARATOR)));
91 ASSERT_TRUE(extension.get()); 85 ASSERT_TRUE(extension.get());
92 86
93 std::vector<base::string16> warnings = 87 EXPECT_TRUE(VerifyOnePermissionMessage(
94 extension->permissions_data()->GetPermissionMessageStrings(); 88 extension->permissions_data(),
95 ASSERT_EQ(1u, warnings.size()); 89 "Read your data on www.google.com and www.twitter.com"));
96 EXPECT_EQ("Read your data on www.google.com and www.twitter.com",
97 base::UTF16ToUTF8(warnings[0]));
98 90
99 const AutomationInfo* info = AutomationInfo::Get(extension.get()); 91 const AutomationInfo* info = AutomationInfo::Get(extension.get());
100 ASSERT_TRUE(info); 92 ASSERT_TRUE(info);
101 93
102 EXPECT_FALSE(info->desktop); 94 EXPECT_FALSE(info->desktop);
103 EXPECT_FALSE(info->interact); 95 EXPECT_FALSE(info->interact);
104 EXPECT_FALSE(info->matches.is_empty()); 96 EXPECT_FALSE(info->matches.is_empty());
105 97
106 EXPECT_TRUE(info->matches.MatchesURL(GURL("http://www.google.com/"))); 98 EXPECT_TRUE(info->matches.MatchesURL(GURL("http://www.google.com/")));
107 EXPECT_TRUE(info->matches.MatchesURL(GURL("http://www.google.com"))); 99 EXPECT_TRUE(info->matches.MatchesURL(GURL("http://www.google.com")));
108 EXPECT_TRUE(info->matches.MatchesURL(GURL("http://www.twitter.com/"))); 100 EXPECT_TRUE(info->matches.MatchesURL(GURL("http://www.twitter.com/")));
109 EXPECT_TRUE(info->matches.MatchesURL(GURL("http://www.twitter.com"))); 101 EXPECT_TRUE(info->matches.MatchesURL(GURL("http://www.twitter.com")));
110 102
111 EXPECT_FALSE(info->matches.MatchesURL(GURL("http://www.bing.com/"))); 103 EXPECT_FALSE(info->matches.MatchesURL(GURL("http://www.bing.com/")));
112 EXPECT_FALSE(info->matches.MatchesURL(GURL("http://www.bing.com"))); 104 EXPECT_FALSE(info->matches.MatchesURL(GURL("http://www.bing.com")));
113 } 105 }
114 106
115 TEST_F(AutomationManifestTest, MatchesAndPermissions) { 107 TEST_F(AutomationManifestTest, MatchesAndPermissions) {
116 scoped_refptr<Extension> extension = 108 scoped_refptr<Extension> extension =
117 LoadAndExpectSuccess("automation_matches_and_permissions.json"); 109 LoadAndExpectSuccess("automation_matches_and_permissions.json");
118 ASSERT_TRUE(extension.get()); 110 ASSERT_TRUE(extension.get());
119 111
120 std::vector<base::string16> warnings = 112 EXPECT_TRUE(VerifyTwoPermissionMessages(
121 extension->permissions_data()->GetPermissionMessageStrings(); 113 extension->permissions_data(),
122 ASSERT_EQ(2u, warnings.size()); 114 "Read and change your data on www.google.com",
123 EXPECT_EQ("Read and change your data on www.google.com", 115 "Read your data on www.twitter.com",
124 base::UTF16ToUTF8(warnings[0])); 116 false));
125 EXPECT_EQ("Read your data on www.twitter.com",
126 base::UTF16ToUTF8(warnings[1]));
127 117
128 const AutomationInfo* info = AutomationInfo::Get(extension.get()); 118 const AutomationInfo* info = AutomationInfo::Get(extension.get());
129 ASSERT_TRUE(info); 119 ASSERT_TRUE(info);
130 120
131 EXPECT_FALSE(info->desktop); 121 EXPECT_FALSE(info->desktop);
132 EXPECT_FALSE(info->interact); 122 EXPECT_FALSE(info->interact);
133 EXPECT_FALSE(info->matches.is_empty()); 123 EXPECT_FALSE(info->matches.is_empty());
134 124
135 EXPECT_TRUE(info->matches.MatchesURL(GURL("http://www.twitter.com/"))); 125 EXPECT_TRUE(info->matches.MatchesURL(GURL("http://www.twitter.com/")));
136 EXPECT_TRUE(info->matches.MatchesURL(GURL("http://www.twitter.com"))); 126 EXPECT_TRUE(info->matches.MatchesURL(GURL("http://www.twitter.com")));
137 } 127 }
138 128
139 TEST_F(AutomationManifestTest, EmptyMatches) { 129 TEST_F(AutomationManifestTest, EmptyMatches) {
140 scoped_refptr<Extension> extension = 130 scoped_refptr<Extension> extension =
141 LoadAndExpectWarning("automation_empty_matches.json", 131 LoadAndExpectWarning("automation_empty_matches.json",
142 automation_errors::kErrorNoMatchesProvided); 132 automation_errors::kErrorNoMatchesProvided);
143 ASSERT_TRUE(extension.get()); 133 ASSERT_TRUE(extension.get());
144 134
145 std::vector<base::string16> warnings = 135 EXPECT_TRUE(VerifyNoPermissionMessages(extension->permissions_data()));
146 extension->permissions_data()->GetPermissionMessageStrings();
147 EXPECT_EQ(0u, warnings.size());
148 136
149 const AutomationInfo* info = AutomationInfo::Get(extension.get()); 137 const AutomationInfo* info = AutomationInfo::Get(extension.get());
150 ASSERT_TRUE(info); 138 ASSERT_TRUE(info);
151 139
152 EXPECT_FALSE(info->desktop); 140 EXPECT_FALSE(info->desktop);
153 EXPECT_FALSE(info->interact); 141 EXPECT_FALSE(info->interact);
154 EXPECT_TRUE(info->matches.is_empty()); 142 EXPECT_TRUE(info->matches.is_empty());
155 } 143 }
156 144
157 TEST_F(AutomationManifestTest, NoValidMatches) { 145 TEST_F(AutomationManifestTest, NoValidMatches) {
158 std::string error; 146 std::string error;
159 scoped_refptr<Extension> extension = 147 scoped_refptr<Extension> extension =
160 LoadExtension(ManifestData("automation_no_valid_matches.json"), &error); 148 LoadExtension(ManifestData("automation_no_valid_matches.json"), &error);
161 ASSERT_TRUE(extension.get()); 149 ASSERT_TRUE(extension.get());
162 EXPECT_EQ("", error); 150 EXPECT_EQ("", error);
163 EXPECT_EQ(2u, extension->install_warnings().size()); 151 EXPECT_EQ(2u, extension->install_warnings().size());
164 EXPECT_EQ(ErrorUtils::FormatErrorMessage( 152 EXPECT_EQ(ErrorUtils::FormatErrorMessage(
165 automation_errors::kErrorInvalidMatch, 153 automation_errors::kErrorInvalidMatch,
166 "www.badpattern.com", 154 "www.badpattern.com",
167 URLPattern::GetParseResultString( 155 URLPattern::GetParseResultString(
168 URLPattern::PARSE_ERROR_MISSING_SCHEME_SEPARATOR)), 156 URLPattern::PARSE_ERROR_MISSING_SCHEME_SEPARATOR)),
169 extension->install_warnings()[0].message); 157 extension->install_warnings()[0].message);
170 EXPECT_EQ(automation_errors::kErrorNoMatchesProvided, 158 EXPECT_EQ(automation_errors::kErrorNoMatchesProvided,
171 extension->install_warnings()[1].message); 159 extension->install_warnings()[1].message);
172 160
173 std::vector<base::string16> warnings = 161 EXPECT_TRUE(VerifyNoPermissionMessages(extension->permissions_data()));
174 extension->permissions_data()->GetPermissionMessageStrings();
175 ASSERT_EQ(0u, warnings.size());
176 162
177 const AutomationInfo* info = AutomationInfo::Get(extension.get()); 163 const AutomationInfo* info = AutomationInfo::Get(extension.get());
178 ASSERT_TRUE(info); 164 ASSERT_TRUE(info);
179 165
180 EXPECT_FALSE(info->desktop); 166 EXPECT_FALSE(info->desktop);
181 EXPECT_FALSE(info->interact); 167 EXPECT_FALSE(info->interact);
182 EXPECT_TRUE(info->matches.is_empty()); 168 EXPECT_TRUE(info->matches.is_empty());
183 } 169 }
184 170
185 TEST_F(AutomationManifestTest, DesktopFalse) { 171 TEST_F(AutomationManifestTest, DesktopFalse) {
186 scoped_refptr<Extension> extension = 172 scoped_refptr<Extension> extension =
187 LoadAndExpectSuccess("automation_desktop_false.json"); 173 LoadAndExpectSuccess("automation_desktop_false.json");
188 ASSERT_TRUE(extension.get()); 174 ASSERT_TRUE(extension.get());
189 175
190 std::vector<base::string16> warnings = 176 EXPECT_TRUE(VerifyOnePermissionMessage(
191 extension->permissions_data()->GetPermissionMessageStrings(); 177 extension->permissions_data(),
192 ASSERT_EQ(1u, warnings.size()); 178 "Read and change your data on www.google.com"));
193 EXPECT_EQ("Read and change your data on www.google.com",
194 base::UTF16ToUTF8(warnings[0]));
195 179
196 const AutomationInfo* info = AutomationInfo::Get(extension.get()); 180 const AutomationInfo* info = AutomationInfo::Get(extension.get());
197 ASSERT_TRUE(info); 181 ASSERT_TRUE(info);
198 182
199 EXPECT_FALSE(info->desktop); 183 EXPECT_FALSE(info->desktop);
200 EXPECT_FALSE(info->interact); 184 EXPECT_FALSE(info->interact);
201 EXPECT_TRUE(info->matches.is_empty()); 185 EXPECT_TRUE(info->matches.is_empty());
202 } 186 }
203 187
204 TEST_F(AutomationManifestTest, DesktopTrue) { 188 TEST_F(AutomationManifestTest, DesktopTrue) {
205 scoped_refptr<Extension> extension = 189 scoped_refptr<Extension> extension =
206 LoadAndExpectSuccess("automation_desktop_true.json"); 190 LoadAndExpectSuccess("automation_desktop_true.json");
207 ASSERT_TRUE(extension.get()); 191 ASSERT_TRUE(extension.get());
208 192
209 std::vector<base::string16> warnings = 193 EXPECT_TRUE(VerifyOnePermissionMessage(
210 extension->permissions_data()->GetPermissionMessageStrings(); 194 extension->permissions_data(),
211 ASSERT_EQ(1u, warnings.size()); 195 l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS)));
212 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS),
213 warnings[0]);
214 196
215 const AutomationInfo* info = AutomationInfo::Get(extension.get()); 197 const AutomationInfo* info = AutomationInfo::Get(extension.get());
216 ASSERT_TRUE(info); 198 ASSERT_TRUE(info);
217 199
218 EXPECT_TRUE(info->desktop); 200 EXPECT_TRUE(info->desktop);
219 EXPECT_TRUE(info->interact); 201 EXPECT_TRUE(info->interact);
220 EXPECT_TRUE(info->matches.is_empty()); 202 EXPECT_TRUE(info->matches.is_empty());
221 } 203 }
222 204
223 TEST_F(AutomationManifestTest, Desktop_InteractTrue) { 205 TEST_F(AutomationManifestTest, Desktop_InteractTrue) {
224 scoped_refptr<Extension> extension = 206 scoped_refptr<Extension> extension =
225 LoadAndExpectSuccess("automation_desktop_interact_true.json"); 207 LoadAndExpectSuccess("automation_desktop_interact_true.json");
226 ASSERT_TRUE(extension.get()); 208 ASSERT_TRUE(extension.get());
227 std::vector<base::string16> warnings = 209
228 extension->permissions_data()->GetPermissionMessageStrings(); 210 EXPECT_TRUE(VerifyOnePermissionMessage(
229 ASSERT_EQ(1u, warnings.size()); 211 extension->permissions_data(),
230 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS), 212 l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS)));
231 warnings[0]);
232 213
233 const AutomationInfo* info = AutomationInfo::Get(extension.get()); 214 const AutomationInfo* info = AutomationInfo::Get(extension.get());
234 ASSERT_TRUE(info); 215 ASSERT_TRUE(info);
235 216
236 EXPECT_TRUE(info->desktop); 217 EXPECT_TRUE(info->desktop);
237 EXPECT_TRUE(info->interact); 218 EXPECT_TRUE(info->interact);
238 EXPECT_TRUE(info->matches.is_empty()); 219 EXPECT_TRUE(info->matches.is_empty());
239 } 220 }
240 221
241 TEST_F(AutomationManifestTest, Desktop_InteractFalse) { 222 TEST_F(AutomationManifestTest, Desktop_InteractFalse) {
242 scoped_refptr<Extension> extension = 223 scoped_refptr<Extension> extension =
243 LoadAndExpectWarning("automation_desktop_interact_false.json", 224 LoadAndExpectWarning("automation_desktop_interact_false.json",
244 automation_errors::kErrorDesktopTrueInteractFalse); 225 automation_errors::kErrorDesktopTrueInteractFalse);
245 ASSERT_TRUE(extension.get()); 226 ASSERT_TRUE(extension.get());
246 227
247 std::vector<base::string16> warnings = 228 EXPECT_TRUE(VerifyOnePermissionMessage(
248 extension->permissions_data()->GetPermissionMessageStrings(); 229 extension->permissions_data(),
249 ASSERT_EQ(1u, warnings.size()); 230 l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS)));
250 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS),
251 warnings[0]);
252 231
253 const AutomationInfo* info = AutomationInfo::Get(extension.get()); 232 const AutomationInfo* info = AutomationInfo::Get(extension.get());
254 ASSERT_TRUE(info); 233 ASSERT_TRUE(info);
255 234
256 EXPECT_TRUE(info->desktop); 235 EXPECT_TRUE(info->desktop);
257 EXPECT_TRUE(info->interact); 236 EXPECT_TRUE(info->interact);
258 EXPECT_TRUE(info->matches.is_empty()); 237 EXPECT_TRUE(info->matches.is_empty());
259 } 238 }
260 239
261 TEST_F(AutomationManifestTest, Desktop_MatchesSpecified) { 240 TEST_F(AutomationManifestTest, Desktop_MatchesSpecified) {
262 scoped_refptr<Extension> extension = LoadAndExpectWarning( 241 scoped_refptr<Extension> extension = LoadAndExpectWarning(
263 "automation_desktop_matches_specified.json", 242 "automation_desktop_matches_specified.json",
264 automation_errors::kErrorDesktopTrueMatchesSpecified); 243 automation_errors::kErrorDesktopTrueMatchesSpecified);
265 ASSERT_TRUE(extension.get()); 244 ASSERT_TRUE(extension.get());
266 245
267 std::vector<base::string16> warnings = 246 EXPECT_TRUE(VerifyOnePermissionMessage(
268 extension->permissions_data()->GetPermissionMessageStrings(); 247 extension->permissions_data(),
269 ASSERT_EQ(1u, warnings.size()); 248 l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS)));
270 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS),
271 warnings[0]);
272 249
273 const AutomationInfo* info = AutomationInfo::Get(extension.get()); 250 const AutomationInfo* info = AutomationInfo::Get(extension.get());
274 ASSERT_TRUE(info); 251 ASSERT_TRUE(info);
275 252
276 EXPECT_TRUE(info->desktop); 253 EXPECT_TRUE(info->desktop);
277 EXPECT_TRUE(info->interact); 254 EXPECT_TRUE(info->interact);
278 EXPECT_TRUE(info->matches.is_empty()); 255 EXPECT_TRUE(info->matches.is_empty());
279 } 256 }
280 257
281 TEST_F(AutomationManifestTest, AllHostsInteractFalse) { 258 TEST_F(AutomationManifestTest, AllHostsInteractFalse) {
282 scoped_refptr<Extension> extension = 259 scoped_refptr<Extension> extension =
283 LoadAndExpectSuccess("automation_all_hosts_interact_false.json"); 260 LoadAndExpectSuccess("automation_all_hosts_interact_false.json");
284 ASSERT_TRUE(extension.get()); 261 ASSERT_TRUE(extension.get());
285 262
286 std::vector<base::string16> warnings = 263 EXPECT_TRUE(VerifyOnePermissionMessage(
287 extension->permissions_data()->GetPermissionMessageStrings(); 264 extension->permissions_data(),
288 ASSERT_EQ(1u, warnings.size()); 265 l10n_util::GetStringUTF16(
289 EXPECT_EQ(l10n_util::GetStringUTF16( 266 IDS_EXTENSION_PROMPT_WARNING_ALL_HOSTS_READ_ONLY)));
290 IDS_EXTENSION_PROMPT_WARNING_ALL_HOSTS_READ_ONLY),
291 warnings[0]);
292 267
293 const AutomationInfo* info = AutomationInfo::Get(extension.get()); 268 const AutomationInfo* info = AutomationInfo::Get(extension.get());
294 ASSERT_TRUE(info); 269 ASSERT_TRUE(info);
295 270
296 EXPECT_FALSE(info->desktop); 271 EXPECT_FALSE(info->desktop);
297 EXPECT_FALSE(info->interact); 272 EXPECT_FALSE(info->interact);
298 EXPECT_FALSE(info->matches.is_empty()); 273 EXPECT_FALSE(info->matches.is_empty());
299 EXPECT_TRUE(info->matches.MatchesAllURLs()); 274 EXPECT_TRUE(info->matches.MatchesAllURLs());
300 } 275 }
301 276
302 TEST_F(AutomationManifestTest, AllHostsInteractTrue) { 277 TEST_F(AutomationManifestTest, AllHostsInteractTrue) {
303 scoped_refptr<Extension> extension = 278 scoped_refptr<Extension> extension =
304 LoadAndExpectSuccess("automation_all_hosts_interact_true.json"); 279 LoadAndExpectSuccess("automation_all_hosts_interact_true.json");
305 ASSERT_TRUE(extension.get()); 280 ASSERT_TRUE(extension.get());
306 281
307 std::vector<base::string16> warnings = 282 EXPECT_TRUE(VerifyOnePermissionMessage(
308 extension->permissions_data()->GetPermissionMessageStrings(); 283 extension->permissions_data(),
309 ASSERT_EQ(1u, warnings.size()); 284 l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_ALL_HOSTS)));
310 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_ALL_HOSTS),
311 warnings[0]);
312 285
313 const AutomationInfo* info = AutomationInfo::Get(extension.get()); 286 const AutomationInfo* info = AutomationInfo::Get(extension.get());
314 ASSERT_TRUE(info); 287 ASSERT_TRUE(info);
315 288
316 EXPECT_FALSE(info->desktop); 289 EXPECT_FALSE(info->desktop);
317 EXPECT_TRUE(info->interact); 290 EXPECT_TRUE(info->interact);
318 EXPECT_FALSE(info->matches.is_empty()); 291 EXPECT_FALSE(info->matches.is_empty());
319 EXPECT_TRUE(info->matches.MatchesAllURLs()); 292 EXPECT_TRUE(info->matches.MatchesAllURLs());
320 } 293 }
321 } // namespace extensions 294 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698