OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/file_util.h" | 5 #include "base/file_util.h" |
6 #include "base/format_macros.h" | 6 #include "base/format_macros.h" |
7 #include "base/path_service.h" | 7 #include "base/path_service.h" |
8 #include "base/strings/string_number_conversions.h" | 8 #include "base/strings/string_number_conversions.h" |
9 #include "base/strings/stringprintf.h" | 9 #include "base/strings/stringprintf.h" |
10 #include "chrome/common/chrome_paths.h" | 10 #include "chrome/common/chrome_paths.h" |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
229 TEST(ExtensionTest, WantsFileAccess) { | 229 TEST(ExtensionTest, WantsFileAccess) { |
230 scoped_refptr<Extension> extension; | 230 scoped_refptr<Extension> extension; |
231 GURL file_url("file:///etc/passwd"); | 231 GURL file_url("file:///etc/passwd"); |
232 | 232 |
233 // Ignore the policy delegate for this test. | 233 // Ignore the policy delegate for this test. |
234 PermissionsData::SetPolicyDelegate(NULL); | 234 PermissionsData::SetPolicyDelegate(NULL); |
235 | 235 |
236 // <all_urls> permission | 236 // <all_urls> permission |
237 extension = LoadManifest("permissions", "permissions_all_urls.json"); | 237 extension = LoadManifest("permissions", "permissions_all_urls.json"); |
238 EXPECT_TRUE(extension->wants_file_access()); | 238 EXPECT_TRUE(extension->wants_file_access()); |
239 EXPECT_FALSE(extension->permissions_data()->CanExecuteScriptOnPage( | 239 EXPECT_FALSE(extension->permissions_data()->CanAccessPage( |
240 extension, file_url, file_url, -1, NULL, -1, NULL)); | 240 extension, file_url, file_url, -1, -1, NULL)); |
241 extension = LoadManifest( | 241 extension = LoadManifest( |
242 "permissions", "permissions_all_urls.json", Extension::ALLOW_FILE_ACCESS); | 242 "permissions", "permissions_all_urls.json", Extension::ALLOW_FILE_ACCESS); |
243 EXPECT_TRUE(extension->wants_file_access()); | 243 EXPECT_TRUE(extension->wants_file_access()); |
244 EXPECT_TRUE(extension->permissions_data()->CanExecuteScriptOnPage( | 244 EXPECT_TRUE(extension->permissions_data()->CanAccessPage( |
245 extension, file_url, file_url, -1, NULL, -1, NULL)); | 245 extension, file_url, file_url, -1, -1, NULL)); |
246 | 246 |
247 // file:///* permission | 247 // file:///* permission |
248 extension = LoadManifest("permissions", "permissions_file_scheme.json"); | 248 extension = LoadManifest("permissions", "permissions_file_scheme.json"); |
249 EXPECT_TRUE(extension->wants_file_access()); | 249 EXPECT_TRUE(extension->wants_file_access()); |
250 EXPECT_FALSE(extension->permissions_data()->CanExecuteScriptOnPage( | 250 EXPECT_FALSE(extension->permissions_data()->CanAccessPage( |
251 extension, file_url, file_url, -1, NULL, -1, NULL)); | 251 extension, file_url, file_url, -1, -1, NULL)); |
252 extension = LoadManifest("permissions", | 252 extension = LoadManifest("permissions", |
253 "permissions_file_scheme.json", | 253 "permissions_file_scheme.json", |
254 Extension::ALLOW_FILE_ACCESS); | 254 Extension::ALLOW_FILE_ACCESS); |
255 EXPECT_TRUE(extension->wants_file_access()); | 255 EXPECT_TRUE(extension->wants_file_access()); |
256 EXPECT_TRUE(extension->permissions_data()->CanExecuteScriptOnPage( | 256 EXPECT_TRUE(extension->permissions_data()->CanAccessPage( |
257 extension, file_url, file_url, -1, NULL, -1, NULL)); | 257 extension, file_url, file_url, -1, -1, NULL)); |
258 | 258 |
259 // http://* permission | 259 // http://* permission |
260 extension = LoadManifest("permissions", "permissions_http_scheme.json"); | 260 extension = LoadManifest("permissions", "permissions_http_scheme.json"); |
261 EXPECT_FALSE(extension->wants_file_access()); | 261 EXPECT_FALSE(extension->wants_file_access()); |
262 EXPECT_FALSE(extension->permissions_data()->CanExecuteScriptOnPage( | 262 EXPECT_FALSE(extension->permissions_data()->CanAccessPage( |
263 extension, file_url, file_url, -1, NULL, -1, NULL)); | 263 extension, file_url, file_url, -1, -1, NULL)); |
264 extension = LoadManifest("permissions", | 264 extension = LoadManifest("permissions", |
265 "permissions_http_scheme.json", | 265 "permissions_http_scheme.json", |
266 Extension::ALLOW_FILE_ACCESS); | 266 Extension::ALLOW_FILE_ACCESS); |
267 EXPECT_FALSE(extension->wants_file_access()); | 267 EXPECT_FALSE(extension->wants_file_access()); |
268 EXPECT_FALSE(extension->permissions_data()->CanExecuteScriptOnPage( | 268 EXPECT_FALSE(extension->permissions_data()->CanAccessPage( |
269 extension, file_url, file_url, -1, NULL, -1, NULL)); | 269 extension, file_url, file_url, -1, -1, NULL)); |
270 | 270 |
271 // <all_urls> content script match | 271 // <all_urls> content script match |
272 extension = LoadManifest("permissions", "content_script_all_urls.json"); | 272 extension = LoadManifest("permissions", "content_script_all_urls.json"); |
273 EXPECT_TRUE(extension->wants_file_access()); | 273 EXPECT_TRUE(extension->wants_file_access()); |
274 EXPECT_FALSE(extension->permissions_data()->CanExecuteScriptOnPage( | 274 EXPECT_FALSE(extension->permissions_data()->CanRunContentScriptOnPage( |
275 extension, | 275 extension, file_url, file_url, -1, -1, NULL)); |
276 file_url, | |
277 file_url, | |
278 -1, | |
279 &ContentScriptsInfo::GetContentScripts(extension.get())[0], | |
280 -1, | |
281 NULL)); | |
282 extension = LoadManifest("permissions", "content_script_all_urls.json", | 276 extension = LoadManifest("permissions", "content_script_all_urls.json", |
283 Extension::ALLOW_FILE_ACCESS); | 277 Extension::ALLOW_FILE_ACCESS); |
284 EXPECT_TRUE(extension->wants_file_access()); | 278 EXPECT_TRUE(extension->wants_file_access()); |
285 EXPECT_TRUE(extension->permissions_data()->CanExecuteScriptOnPage( | 279 EXPECT_TRUE(extension->permissions_data()->CanRunContentScriptOnPage( |
286 extension, | 280 extension, file_url, file_url, -1, -1, NULL)); |
287 file_url, | |
288 file_url, | |
289 -1, | |
290 &ContentScriptsInfo::GetContentScripts(extension)[0], | |
291 -1, | |
292 NULL)); | |
293 | 281 |
294 // file:///* content script match | 282 // file:///* content script match |
295 extension = LoadManifest("permissions", "content_script_file_scheme.json"); | 283 extension = LoadManifest("permissions", "content_script_file_scheme.json"); |
296 EXPECT_TRUE(extension->wants_file_access()); | 284 EXPECT_TRUE(extension->wants_file_access()); |
297 EXPECT_FALSE(extension->permissions_data()->CanExecuteScriptOnPage( | 285 EXPECT_FALSE(extension->permissions_data()->CanRunContentScriptOnPage( |
298 extension, | 286 extension, file_url, file_url, -1, -1, NULL)); |
299 file_url, | |
300 file_url, | |
301 -1, | |
302 &ContentScriptsInfo::GetContentScripts(extension)[0], | |
303 -1, | |
304 NULL)); | |
305 extension = LoadManifest("permissions", "content_script_file_scheme.json", | 287 extension = LoadManifest("permissions", "content_script_file_scheme.json", |
306 Extension::ALLOW_FILE_ACCESS); | 288 Extension::ALLOW_FILE_ACCESS); |
307 EXPECT_TRUE(extension->wants_file_access()); | 289 EXPECT_TRUE(extension->wants_file_access()); |
308 EXPECT_TRUE(extension->permissions_data()->CanExecuteScriptOnPage( | 290 EXPECT_TRUE(extension->permissions_data()->CanRunContentScriptOnPage( |
309 extension, | 291 extension, file_url, file_url, -1, -1, NULL)); |
310 file_url, | |
311 file_url, | |
312 -1, | |
313 &ContentScriptsInfo::GetContentScripts(extension)[0], | |
314 -1, | |
315 NULL)); | |
316 | 292 |
317 // http://* content script match | 293 // http://* content script match |
318 extension = LoadManifest("permissions", "content_script_http_scheme.json"); | 294 extension = LoadManifest("permissions", "content_script_http_scheme.json"); |
319 EXPECT_FALSE(extension->wants_file_access()); | 295 EXPECT_FALSE(extension->wants_file_access()); |
320 EXPECT_FALSE(extension->permissions_data()->CanExecuteScriptOnPage( | 296 EXPECT_FALSE(extension->permissions_data()->CanRunContentScriptOnPage( |
321 extension, | 297 extension, file_url, file_url, -1, -1, NULL)); |
322 file_url, | |
323 file_url, | |
324 -1, | |
325 &ContentScriptsInfo::GetContentScripts(extension)[0], | |
326 -1, | |
327 NULL)); | |
328 extension = LoadManifest("permissions", "content_script_http_scheme.json", | 298 extension = LoadManifest("permissions", "content_script_http_scheme.json", |
329 Extension::ALLOW_FILE_ACCESS); | 299 Extension::ALLOW_FILE_ACCESS); |
330 EXPECT_FALSE(extension->wants_file_access()); | 300 EXPECT_FALSE(extension->wants_file_access()); |
331 EXPECT_FALSE(extension->permissions_data()->CanExecuteScriptOnPage( | 301 EXPECT_FALSE(extension->permissions_data()->CanRunContentScriptOnPage( |
332 extension, | 302 extension, file_url, file_url, -1, -1, NULL)); |
333 file_url, | |
334 file_url, | |
335 -1, | |
336 &ContentScriptsInfo::GetContentScripts(extension)[0], | |
337 -1, | |
338 NULL)); | |
339 } | 303 } |
340 | 304 |
341 TEST(ExtensionTest, ExtraFlags) { | 305 TEST(ExtensionTest, ExtraFlags) { |
342 scoped_refptr<Extension> extension; | 306 scoped_refptr<Extension> extension; |
343 extension = LoadManifest("app", "manifest.json", Extension::FROM_WEBSTORE); | 307 extension = LoadManifest("app", "manifest.json", Extension::FROM_WEBSTORE); |
344 EXPECT_TRUE(extension->from_webstore()); | 308 EXPECT_TRUE(extension->from_webstore()); |
345 | 309 |
346 extension = LoadManifest("app", "manifest.json", Extension::FROM_BOOKMARK); | 310 extension = LoadManifest("app", "manifest.json", Extension::FROM_BOOKMARK); |
347 EXPECT_TRUE(extension->from_bookmark()); | 311 EXPECT_TRUE(extension->from_bookmark()); |
348 | 312 |
349 extension = LoadManifest("app", "manifest.json", Extension::NO_FLAGS); | 313 extension = LoadManifest("app", "manifest.json", Extension::NO_FLAGS); |
350 EXPECT_FALSE(extension->from_bookmark()); | 314 EXPECT_FALSE(extension->from_bookmark()); |
351 EXPECT_FALSE(extension->from_webstore()); | 315 EXPECT_FALSE(extension->from_webstore()); |
352 } | 316 } |
353 | 317 |
354 } // namespace extensions | 318 } // namespace extensions |
OLD | NEW |