| 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 | 
|---|