| 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/files/file_util.h" | 5 #include "base/files/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 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 235 scoped_refptr<Extension> extension; | 235 scoped_refptr<Extension> extension; |
| 236 GURL file_url("file:///etc/passwd"); | 236 GURL file_url("file:///etc/passwd"); |
| 237 | 237 |
| 238 // Ignore the policy delegate for this test. | 238 // Ignore the policy delegate for this test. |
| 239 PermissionsData::SetPolicyDelegate(NULL); | 239 PermissionsData::SetPolicyDelegate(NULL); |
| 240 | 240 |
| 241 // <all_urls> permission | 241 // <all_urls> permission |
| 242 extension = LoadManifest("permissions", "permissions_all_urls.json"); | 242 extension = LoadManifest("permissions", "permissions_all_urls.json"); |
| 243 EXPECT_TRUE(extension->wants_file_access()); | 243 EXPECT_TRUE(extension->wants_file_access()); |
| 244 EXPECT_FALSE(extension->permissions_data()->CanAccessPage( | 244 EXPECT_FALSE(extension->permissions_data()->CanAccessPage( |
| 245 extension.get(), file_url, file_url, -1, -1, NULL)); | 245 extension.get(), file_url, -1, -1, NULL)); |
| 246 extension = LoadManifest( | 246 extension = LoadManifest( |
| 247 "permissions", "permissions_all_urls.json", Extension::ALLOW_FILE_ACCESS); | 247 "permissions", "permissions_all_urls.json", Extension::ALLOW_FILE_ACCESS); |
| 248 EXPECT_TRUE(extension->wants_file_access()); | 248 EXPECT_TRUE(extension->wants_file_access()); |
| 249 EXPECT_TRUE(extension->permissions_data()->CanAccessPage( | 249 EXPECT_TRUE(extension->permissions_data()->CanAccessPage( |
| 250 extension.get(), file_url, file_url, -1, -1, NULL)); | 250 extension.get(), file_url, -1, -1, NULL)); |
| 251 | 251 |
| 252 // file:///* permission | 252 // file:///* permission |
| 253 extension = LoadManifest("permissions", "permissions_file_scheme.json"); | 253 extension = LoadManifest("permissions", "permissions_file_scheme.json"); |
| 254 EXPECT_TRUE(extension->wants_file_access()); | 254 EXPECT_TRUE(extension->wants_file_access()); |
| 255 EXPECT_FALSE(extension->permissions_data()->CanAccessPage( | 255 EXPECT_FALSE(extension->permissions_data()->CanAccessPage( |
| 256 extension.get(), file_url, file_url, -1, -1, NULL)); | 256 extension.get(), file_url, -1, -1, NULL)); |
| 257 extension = LoadManifest("permissions", | 257 extension = LoadManifest("permissions", |
| 258 "permissions_file_scheme.json", | 258 "permissions_file_scheme.json", |
| 259 Extension::ALLOW_FILE_ACCESS); | 259 Extension::ALLOW_FILE_ACCESS); |
| 260 EXPECT_TRUE(extension->wants_file_access()); | 260 EXPECT_TRUE(extension->wants_file_access()); |
| 261 EXPECT_TRUE(extension->permissions_data()->CanAccessPage( | 261 EXPECT_TRUE(extension->permissions_data()->CanAccessPage( |
| 262 extension.get(), file_url, file_url, -1, -1, NULL)); | 262 extension.get(), file_url, -1, -1, NULL)); |
| 263 | 263 |
| 264 // http://* permission | 264 // http://* permission |
| 265 extension = LoadManifest("permissions", "permissions_http_scheme.json"); | 265 extension = LoadManifest("permissions", "permissions_http_scheme.json"); |
| 266 EXPECT_FALSE(extension->wants_file_access()); | 266 EXPECT_FALSE(extension->wants_file_access()); |
| 267 EXPECT_FALSE(extension->permissions_data()->CanAccessPage( | 267 EXPECT_FALSE(extension->permissions_data()->CanAccessPage( |
| 268 extension.get(), file_url, file_url, -1, -1, NULL)); | 268 extension.get(), file_url, -1, -1, NULL)); |
| 269 extension = LoadManifest("permissions", | 269 extension = LoadManifest("permissions", |
| 270 "permissions_http_scheme.json", | 270 "permissions_http_scheme.json", |
| 271 Extension::ALLOW_FILE_ACCESS); | 271 Extension::ALLOW_FILE_ACCESS); |
| 272 EXPECT_FALSE(extension->wants_file_access()); | 272 EXPECT_FALSE(extension->wants_file_access()); |
| 273 EXPECT_FALSE(extension->permissions_data()->CanAccessPage( | 273 EXPECT_FALSE(extension->permissions_data()->CanAccessPage( |
| 274 extension.get(), file_url, file_url, -1, -1, NULL)); | 274 extension.get(), file_url, -1, -1, NULL)); |
| 275 | 275 |
| 276 // <all_urls> content script match | 276 // <all_urls> content script match |
| 277 extension = LoadManifest("permissions", "content_script_all_urls.json"); | 277 extension = LoadManifest("permissions", "content_script_all_urls.json"); |
| 278 EXPECT_TRUE(extension->wants_file_access()); | 278 EXPECT_TRUE(extension->wants_file_access()); |
| 279 EXPECT_FALSE(extension->permissions_data()->CanRunContentScriptOnPage( | 279 EXPECT_FALSE(extension->permissions_data()->CanRunContentScriptOnPage( |
| 280 extension.get(), file_url, file_url, -1, -1, NULL)); | 280 extension.get(), file_url, -1, -1, NULL)); |
| 281 extension = LoadManifest("permissions", "content_script_all_urls.json", | 281 extension = LoadManifest("permissions", "content_script_all_urls.json", |
| 282 Extension::ALLOW_FILE_ACCESS); | 282 Extension::ALLOW_FILE_ACCESS); |
| 283 EXPECT_TRUE(extension->wants_file_access()); | 283 EXPECT_TRUE(extension->wants_file_access()); |
| 284 EXPECT_TRUE(extension->permissions_data()->CanRunContentScriptOnPage( | 284 EXPECT_TRUE(extension->permissions_data()->CanRunContentScriptOnPage( |
| 285 extension.get(), file_url, file_url, -1, -1, NULL)); | 285 extension.get(), file_url, -1, -1, NULL)); |
| 286 | 286 |
| 287 // file:///* content script match | 287 // file:///* content script match |
| 288 extension = LoadManifest("permissions", "content_script_file_scheme.json"); | 288 extension = LoadManifest("permissions", "content_script_file_scheme.json"); |
| 289 EXPECT_TRUE(extension->wants_file_access()); | 289 EXPECT_TRUE(extension->wants_file_access()); |
| 290 EXPECT_FALSE(extension->permissions_data()->CanRunContentScriptOnPage( | 290 EXPECT_FALSE(extension->permissions_data()->CanRunContentScriptOnPage( |
| 291 extension.get(), file_url, file_url, -1, -1, NULL)); | 291 extension.get(), file_url, -1, -1, NULL)); |
| 292 extension = LoadManifest("permissions", "content_script_file_scheme.json", | 292 extension = LoadManifest("permissions", "content_script_file_scheme.json", |
| 293 Extension::ALLOW_FILE_ACCESS); | 293 Extension::ALLOW_FILE_ACCESS); |
| 294 EXPECT_TRUE(extension->wants_file_access()); | 294 EXPECT_TRUE(extension->wants_file_access()); |
| 295 EXPECT_TRUE(extension->permissions_data()->CanRunContentScriptOnPage( | 295 EXPECT_TRUE(extension->permissions_data()->CanRunContentScriptOnPage( |
| 296 extension.get(), file_url, file_url, -1, -1, NULL)); | 296 extension.get(), file_url, -1, -1, NULL)); |
| 297 | 297 |
| 298 // http://* content script match | 298 // http://* content script match |
| 299 extension = LoadManifest("permissions", "content_script_http_scheme.json"); | 299 extension = LoadManifest("permissions", "content_script_http_scheme.json"); |
| 300 EXPECT_FALSE(extension->wants_file_access()); | 300 EXPECT_FALSE(extension->wants_file_access()); |
| 301 EXPECT_FALSE(extension->permissions_data()->CanRunContentScriptOnPage( | 301 EXPECT_FALSE(extension->permissions_data()->CanRunContentScriptOnPage( |
| 302 extension.get(), file_url, file_url, -1, -1, NULL)); | 302 extension.get(), file_url, -1, -1, NULL)); |
| 303 extension = LoadManifest("permissions", "content_script_http_scheme.json", | 303 extension = LoadManifest("permissions", "content_script_http_scheme.json", |
| 304 Extension::ALLOW_FILE_ACCESS); | 304 Extension::ALLOW_FILE_ACCESS); |
| 305 EXPECT_FALSE(extension->wants_file_access()); | 305 EXPECT_FALSE(extension->wants_file_access()); |
| 306 EXPECT_FALSE(extension->permissions_data()->CanRunContentScriptOnPage( | 306 EXPECT_FALSE(extension->permissions_data()->CanRunContentScriptOnPage( |
| 307 extension.get(), file_url, file_url, -1, -1, NULL)); | 307 extension.get(), file_url, -1, -1, NULL)); |
| 308 } | 308 } |
| 309 | 309 |
| 310 TEST(ExtensionTest, ExtraFlags) { | 310 TEST(ExtensionTest, ExtraFlags) { |
| 311 scoped_refptr<Extension> extension; | 311 scoped_refptr<Extension> extension; |
| 312 extension = LoadManifest("app", "manifest.json", Extension::FROM_WEBSTORE); | 312 extension = LoadManifest("app", "manifest.json", Extension::FROM_WEBSTORE); |
| 313 EXPECT_TRUE(extension->from_webstore()); | 313 EXPECT_TRUE(extension->from_webstore()); |
| 314 | 314 |
| 315 extension = LoadManifest("app", "manifest.json", Extension::FROM_BOOKMARK); | 315 extension = LoadManifest("app", "manifest.json", Extension::FROM_BOOKMARK); |
| 316 EXPECT_TRUE(extension->from_bookmark()); | 316 EXPECT_TRUE(extension->from_bookmark()); |
| 317 | 317 |
| 318 extension = LoadManifest("app", "manifest.json", Extension::NO_FLAGS); | 318 extension = LoadManifest("app", "manifest.json", Extension::NO_FLAGS); |
| 319 EXPECT_FALSE(extension->from_bookmark()); | 319 EXPECT_FALSE(extension->from_bookmark()); |
| 320 EXPECT_FALSE(extension->from_webstore()); | 320 EXPECT_FALSE(extension->from_webstore()); |
| 321 } | 321 } |
| 322 | 322 |
| 323 } // namespace extensions | 323 } // namespace extensions |
| OLD | NEW |