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

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: review 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(
121 extension->permissions_data()->GetPermissionMessageStrings(); 113 VerifyTwoPermissionMessages(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", false));
124 base::UTF16ToUTF8(warnings[0]));
125 EXPECT_EQ("Read your data on www.twitter.com",
126 base::UTF16ToUTF8(warnings[1]));
127 116
128 const AutomationInfo* info = AutomationInfo::Get(extension.get()); 117 const AutomationInfo* info = AutomationInfo::Get(extension.get());
129 ASSERT_TRUE(info); 118 ASSERT_TRUE(info);
130 119
131 EXPECT_FALSE(info->desktop); 120 EXPECT_FALSE(info->desktop);
132 EXPECT_FALSE(info->interact); 121 EXPECT_FALSE(info->interact);
133 EXPECT_FALSE(info->matches.is_empty()); 122 EXPECT_FALSE(info->matches.is_empty());
134 123
135 EXPECT_TRUE(info->matches.MatchesURL(GURL("http://www.twitter.com/"))); 124 EXPECT_TRUE(info->matches.MatchesURL(GURL("http://www.twitter.com/")));
136 EXPECT_TRUE(info->matches.MatchesURL(GURL("http://www.twitter.com"))); 125 EXPECT_TRUE(info->matches.MatchesURL(GURL("http://www.twitter.com")));
137 } 126 }
138 127
139 TEST_F(AutomationManifestTest, EmptyMatches) { 128 TEST_F(AutomationManifestTest, EmptyMatches) {
140 scoped_refptr<Extension> extension = 129 scoped_refptr<Extension> extension =
141 LoadAndExpectWarning("automation_empty_matches.json", 130 LoadAndExpectWarning("automation_empty_matches.json",
142 automation_errors::kErrorNoMatchesProvided); 131 automation_errors::kErrorNoMatchesProvided);
143 ASSERT_TRUE(extension.get()); 132 ASSERT_TRUE(extension.get());
144 133
145 std::vector<base::string16> warnings = 134 EXPECT_TRUE(VerifyNoPermissionMessages(extension->permissions_data()));
146 extension->permissions_data()->GetPermissionMessageStrings();
147 EXPECT_EQ(0u, warnings.size());
148 135
149 const AutomationInfo* info = AutomationInfo::Get(extension.get()); 136 const AutomationInfo* info = AutomationInfo::Get(extension.get());
150 ASSERT_TRUE(info); 137 ASSERT_TRUE(info);
151 138
152 EXPECT_FALSE(info->desktop); 139 EXPECT_FALSE(info->desktop);
153 EXPECT_FALSE(info->interact); 140 EXPECT_FALSE(info->interact);
154 EXPECT_TRUE(info->matches.is_empty()); 141 EXPECT_TRUE(info->matches.is_empty());
155 } 142 }
156 143
157 TEST_F(AutomationManifestTest, NoValidMatches) { 144 TEST_F(AutomationManifestTest, NoValidMatches) {
158 std::string error; 145 std::string error;
159 scoped_refptr<Extension> extension = 146 scoped_refptr<Extension> extension =
160 LoadExtension(ManifestData("automation_no_valid_matches.json"), &error); 147 LoadExtension(ManifestData("automation_no_valid_matches.json"), &error);
161 ASSERT_TRUE(extension.get()); 148 ASSERT_TRUE(extension.get());
162 EXPECT_EQ("", error); 149 EXPECT_EQ("", error);
163 EXPECT_EQ(2u, extension->install_warnings().size()); 150 EXPECT_EQ(2u, extension->install_warnings().size());
164 EXPECT_EQ(ErrorUtils::FormatErrorMessage( 151 EXPECT_EQ(ErrorUtils::FormatErrorMessage(
165 automation_errors::kErrorInvalidMatch, 152 automation_errors::kErrorInvalidMatch,
166 "www.badpattern.com", 153 "www.badpattern.com",
167 URLPattern::GetParseResultString( 154 URLPattern::GetParseResultString(
168 URLPattern::PARSE_ERROR_MISSING_SCHEME_SEPARATOR)), 155 URLPattern::PARSE_ERROR_MISSING_SCHEME_SEPARATOR)),
169 extension->install_warnings()[0].message); 156 extension->install_warnings()[0].message);
170 EXPECT_EQ(automation_errors::kErrorNoMatchesProvided, 157 EXPECT_EQ(automation_errors::kErrorNoMatchesProvided,
171 extension->install_warnings()[1].message); 158 extension->install_warnings()[1].message);
172 159
173 std::vector<base::string16> warnings = 160 EXPECT_TRUE(VerifyNoPermissionMessages(extension->permissions_data()));
174 extension->permissions_data()->GetPermissionMessageStrings();
175 ASSERT_EQ(0u, warnings.size());
176 161
177 const AutomationInfo* info = AutomationInfo::Get(extension.get()); 162 const AutomationInfo* info = AutomationInfo::Get(extension.get());
178 ASSERT_TRUE(info); 163 ASSERT_TRUE(info);
179 164
180 EXPECT_FALSE(info->desktop); 165 EXPECT_FALSE(info->desktop);
181 EXPECT_FALSE(info->interact); 166 EXPECT_FALSE(info->interact);
182 EXPECT_TRUE(info->matches.is_empty()); 167 EXPECT_TRUE(info->matches.is_empty());
183 } 168 }
184 169
185 TEST_F(AutomationManifestTest, DesktopFalse) { 170 TEST_F(AutomationManifestTest, DesktopFalse) {
186 scoped_refptr<Extension> extension = 171 scoped_refptr<Extension> extension =
187 LoadAndExpectSuccess("automation_desktop_false.json"); 172 LoadAndExpectSuccess("automation_desktop_false.json");
188 ASSERT_TRUE(extension.get()); 173 ASSERT_TRUE(extension.get());
189 174
190 std::vector<base::string16> warnings = 175 EXPECT_TRUE(VerifyOnePermissionMessage(
191 extension->permissions_data()->GetPermissionMessageStrings(); 176 extension->permissions_data(),
192 ASSERT_EQ(1u, warnings.size()); 177 "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 178
196 const AutomationInfo* info = AutomationInfo::Get(extension.get()); 179 const AutomationInfo* info = AutomationInfo::Get(extension.get());
197 ASSERT_TRUE(info); 180 ASSERT_TRUE(info);
198 181
199 EXPECT_FALSE(info->desktop); 182 EXPECT_FALSE(info->desktop);
200 EXPECT_FALSE(info->interact); 183 EXPECT_FALSE(info->interact);
201 EXPECT_TRUE(info->matches.is_empty()); 184 EXPECT_TRUE(info->matches.is_empty());
202 } 185 }
203 186
204 TEST_F(AutomationManifestTest, DesktopTrue) { 187 TEST_F(AutomationManifestTest, DesktopTrue) {
205 scoped_refptr<Extension> extension = 188 scoped_refptr<Extension> extension =
206 LoadAndExpectSuccess("automation_desktop_true.json"); 189 LoadAndExpectSuccess("automation_desktop_true.json");
207 ASSERT_TRUE(extension.get()); 190 ASSERT_TRUE(extension.get());
208 191
209 std::vector<base::string16> warnings = 192 EXPECT_TRUE(VerifyOnePermissionMessage(
210 extension->permissions_data()->GetPermissionMessageStrings(); 193 extension->permissions_data(),
211 ASSERT_EQ(1u, warnings.size()); 194 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 195
215 const AutomationInfo* info = AutomationInfo::Get(extension.get()); 196 const AutomationInfo* info = AutomationInfo::Get(extension.get());
216 ASSERT_TRUE(info); 197 ASSERT_TRUE(info);
217 198
218 EXPECT_TRUE(info->desktop); 199 EXPECT_TRUE(info->desktop);
219 EXPECT_TRUE(info->interact); 200 EXPECT_TRUE(info->interact);
220 EXPECT_TRUE(info->matches.is_empty()); 201 EXPECT_TRUE(info->matches.is_empty());
221 } 202 }
222 203
223 TEST_F(AutomationManifestTest, Desktop_InteractTrue) { 204 TEST_F(AutomationManifestTest, Desktop_InteractTrue) {
224 scoped_refptr<Extension> extension = 205 scoped_refptr<Extension> extension =
225 LoadAndExpectSuccess("automation_desktop_interact_true.json"); 206 LoadAndExpectSuccess("automation_desktop_interact_true.json");
226 ASSERT_TRUE(extension.get()); 207 ASSERT_TRUE(extension.get());
227 std::vector<base::string16> warnings = 208
228 extension->permissions_data()->GetPermissionMessageStrings(); 209 EXPECT_TRUE(VerifyOnePermissionMessage(
229 ASSERT_EQ(1u, warnings.size()); 210 extension->permissions_data(),
230 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS), 211 l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS)));
231 warnings[0]);
232 212
233 const AutomationInfo* info = AutomationInfo::Get(extension.get()); 213 const AutomationInfo* info = AutomationInfo::Get(extension.get());
234 ASSERT_TRUE(info); 214 ASSERT_TRUE(info);
235 215
236 EXPECT_TRUE(info->desktop); 216 EXPECT_TRUE(info->desktop);
237 EXPECT_TRUE(info->interact); 217 EXPECT_TRUE(info->interact);
238 EXPECT_TRUE(info->matches.is_empty()); 218 EXPECT_TRUE(info->matches.is_empty());
239 } 219 }
240 220
241 TEST_F(AutomationManifestTest, Desktop_InteractFalse) { 221 TEST_F(AutomationManifestTest, Desktop_InteractFalse) {
242 scoped_refptr<Extension> extension = 222 scoped_refptr<Extension> extension =
243 LoadAndExpectWarning("automation_desktop_interact_false.json", 223 LoadAndExpectWarning("automation_desktop_interact_false.json",
244 automation_errors::kErrorDesktopTrueInteractFalse); 224 automation_errors::kErrorDesktopTrueInteractFalse);
245 ASSERT_TRUE(extension.get()); 225 ASSERT_TRUE(extension.get());
246 226
247 std::vector<base::string16> warnings = 227 EXPECT_TRUE(VerifyOnePermissionMessage(
248 extension->permissions_data()->GetPermissionMessageStrings(); 228 extension->permissions_data(),
249 ASSERT_EQ(1u, warnings.size()); 229 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 230
253 const AutomationInfo* info = AutomationInfo::Get(extension.get()); 231 const AutomationInfo* info = AutomationInfo::Get(extension.get());
254 ASSERT_TRUE(info); 232 ASSERT_TRUE(info);
255 233
256 EXPECT_TRUE(info->desktop); 234 EXPECT_TRUE(info->desktop);
257 EXPECT_TRUE(info->interact); 235 EXPECT_TRUE(info->interact);
258 EXPECT_TRUE(info->matches.is_empty()); 236 EXPECT_TRUE(info->matches.is_empty());
259 } 237 }
260 238
261 TEST_F(AutomationManifestTest, Desktop_MatchesSpecified) { 239 TEST_F(AutomationManifestTest, Desktop_MatchesSpecified) {
262 scoped_refptr<Extension> extension = LoadAndExpectWarning( 240 scoped_refptr<Extension> extension = LoadAndExpectWarning(
263 "automation_desktop_matches_specified.json", 241 "automation_desktop_matches_specified.json",
264 automation_errors::kErrorDesktopTrueMatchesSpecified); 242 automation_errors::kErrorDesktopTrueMatchesSpecified);
265 ASSERT_TRUE(extension.get()); 243 ASSERT_TRUE(extension.get());
266 244
267 std::vector<base::string16> warnings = 245 EXPECT_TRUE(VerifyOnePermissionMessage(
268 extension->permissions_data()->GetPermissionMessageStrings(); 246 extension->permissions_data(),
269 ASSERT_EQ(1u, warnings.size()); 247 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 248
273 const AutomationInfo* info = AutomationInfo::Get(extension.get()); 249 const AutomationInfo* info = AutomationInfo::Get(extension.get());
274 ASSERT_TRUE(info); 250 ASSERT_TRUE(info);
275 251
276 EXPECT_TRUE(info->desktop); 252 EXPECT_TRUE(info->desktop);
277 EXPECT_TRUE(info->interact); 253 EXPECT_TRUE(info->interact);
278 EXPECT_TRUE(info->matches.is_empty()); 254 EXPECT_TRUE(info->matches.is_empty());
279 } 255 }
280 256
281 TEST_F(AutomationManifestTest, AllHostsInteractFalse) { 257 TEST_F(AutomationManifestTest, AllHostsInteractFalse) {
282 scoped_refptr<Extension> extension = 258 scoped_refptr<Extension> extension =
283 LoadAndExpectSuccess("automation_all_hosts_interact_false.json"); 259 LoadAndExpectSuccess("automation_all_hosts_interact_false.json");
284 ASSERT_TRUE(extension.get()); 260 ASSERT_TRUE(extension.get());
285 261
286 std::vector<base::string16> warnings = 262 EXPECT_TRUE(VerifyOnePermissionMessage(
287 extension->permissions_data()->GetPermissionMessageStrings(); 263 extension->permissions_data(),
288 ASSERT_EQ(1u, warnings.size()); 264 l10n_util::GetStringUTF16(
289 EXPECT_EQ(l10n_util::GetStringUTF16( 265 IDS_EXTENSION_PROMPT_WARNING_ALL_HOSTS_READ_ONLY)));
290 IDS_EXTENSION_PROMPT_WARNING_ALL_HOSTS_READ_ONLY),
291 warnings[0]);
292 266
293 const AutomationInfo* info = AutomationInfo::Get(extension.get()); 267 const AutomationInfo* info = AutomationInfo::Get(extension.get());
294 ASSERT_TRUE(info); 268 ASSERT_TRUE(info);
295 269
296 EXPECT_FALSE(info->desktop); 270 EXPECT_FALSE(info->desktop);
297 EXPECT_FALSE(info->interact); 271 EXPECT_FALSE(info->interact);
298 EXPECT_FALSE(info->matches.is_empty()); 272 EXPECT_FALSE(info->matches.is_empty());
299 EXPECT_TRUE(info->matches.MatchesAllURLs()); 273 EXPECT_TRUE(info->matches.MatchesAllURLs());
300 } 274 }
301 275
302 TEST_F(AutomationManifestTest, AllHostsInteractTrue) { 276 TEST_F(AutomationManifestTest, AllHostsInteractTrue) {
303 scoped_refptr<Extension> extension = 277 scoped_refptr<Extension> extension =
304 LoadAndExpectSuccess("automation_all_hosts_interact_true.json"); 278 LoadAndExpectSuccess("automation_all_hosts_interact_true.json");
305 ASSERT_TRUE(extension.get()); 279 ASSERT_TRUE(extension.get());
306 280
307 std::vector<base::string16> warnings = 281 EXPECT_TRUE(VerifyOnePermissionMessage(
308 extension->permissions_data()->GetPermissionMessageStrings(); 282 extension->permissions_data(),
309 ASSERT_EQ(1u, warnings.size()); 283 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 284
313 const AutomationInfo* info = AutomationInfo::Get(extension.get()); 285 const AutomationInfo* info = AutomationInfo::Get(extension.get());
314 ASSERT_TRUE(info); 286 ASSERT_TRUE(info);
315 287
316 EXPECT_FALSE(info->desktop); 288 EXPECT_FALSE(info->desktop);
317 EXPECT_TRUE(info->interact); 289 EXPECT_TRUE(info->interact);
318 EXPECT_FALSE(info->matches.is_empty()); 290 EXPECT_FALSE(info->matches.is_empty());
319 EXPECT_TRUE(info->matches.MatchesAllURLs()); 291 EXPECT_TRUE(info->matches.MatchesAllURLs());
320 } 292 }
321 } // namespace extensions 293 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698