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