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

Side by Side Diff: chrome/common/extensions/extension_manifests_unittest.cc

Issue 9741002: Adding file access permissions to fileBrowserHandler manifest. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: unit_tests Created 8 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/common/extensions/extension.h" 5 #include "chrome/common/extensions/extension.h"
6 6
7 #if defined(TOOLKIT_GTK) 7 #if defined(TOOLKIT_GTK)
8 #include <gtk/gtk.h> 8 #include <gtk/gtk.h>
9 #endif 9 #endif
10 10
(...skipping 965 matching lines...) Expand 10 before | Expand all | Expand 10 after
976 976
977 CommandLine::ForCurrentProcess()->AppendSwitch( 977 CommandLine::ForCurrentProcess()->AppendSwitch(
978 switches::kEnableExperimentalExtensionApis); 978 switches::kEnableExperimentalExtensionApis);
979 scoped_refptr<Extension> extension2( 979 scoped_refptr<Extension> extension2(
980 LoadAndExpectSuccess("isolated_app_valid.json")); 980 LoadAndExpectSuccess("isolated_app_valid.json"));
981 EXPECT_TRUE(extension2->is_storage_isolated()); 981 EXPECT_TRUE(extension2->is_storage_isolated());
982 } 982 }
983 983
984 984
985 TEST_F(ExtensionManifestTest, FileBrowserHandlers) { 985 TEST_F(ExtensionManifestTest, FileBrowserHandlers) {
986 LoadAndExpectError("filebrowser_invalid_access_permission.json",
987 ExtensionErrorUtils::FormatErrorMessage(
988 errors::kInvalidFileAccessValue, base::IntToString(1)));
989 LoadAndExpectError("filebrowser_invalid_access_permission_list.json",
990 errors::kInvalidFileAccessList);
991 LoadAndExpectError("filebrowser_invalid_empty_access_permission_list.json",
992 errors::kInvalidFileAccessList);
986 LoadAndExpectError("filebrowser_invalid_actions_1.json", 993 LoadAndExpectError("filebrowser_invalid_actions_1.json",
987 errors::kInvalidFileBrowserHandler); 994 errors::kInvalidFileBrowserHandler);
988 LoadAndExpectError("filebrowser_invalid_actions_2.json", 995 LoadAndExpectError("filebrowser_invalid_actions_2.json",
989 errors::kInvalidFileBrowserHandler); 996 errors::kInvalidFileBrowserHandler);
990 LoadAndExpectError("filebrowser_invalid_action_id.json", 997 LoadAndExpectError("filebrowser_invalid_action_id.json",
991 errors::kInvalidPageActionId); 998 errors::kInvalidPageActionId);
992 LoadAndExpectError("filebrowser_invalid_action_title.json", 999 LoadAndExpectError("filebrowser_invalid_action_title.json",
993 errors::kInvalidPageActionDefaultTitle); 1000 errors::kInvalidPageActionDefaultTitle);
994 LoadAndExpectError("filebrowser_invalid_action_id.json", 1001 LoadAndExpectError("filebrowser_invalid_action_id.json",
995 errors::kInvalidPageActionId); 1002 errors::kInvalidPageActionId);
(...skipping 11 matching lines...) Expand all
1007 ASSERT_TRUE(extension->file_browser_handlers() != NULL); 1014 ASSERT_TRUE(extension->file_browser_handlers() != NULL);
1008 ASSERT_EQ(extension->file_browser_handlers()->size(), 1U); 1015 ASSERT_EQ(extension->file_browser_handlers()->size(), 1U);
1009 const FileBrowserHandler* action = 1016 const FileBrowserHandler* action =
1010 extension->file_browser_handlers()->at(0).get(); 1017 extension->file_browser_handlers()->at(0).get();
1011 EXPECT_EQ(action->title(), "Default title"); 1018 EXPECT_EQ(action->title(), "Default title");
1012 EXPECT_EQ(action->icon_path(), "icon.png"); 1019 EXPECT_EQ(action->icon_path(), "icon.png");
1013 const URLPatternSet& patterns = action->file_url_patterns(); 1020 const URLPatternSet& patterns = action->file_url_patterns();
1014 ASSERT_EQ(patterns.patterns().size(), 1U); 1021 ASSERT_EQ(patterns.patterns().size(), 1U);
1015 ASSERT_TRUE(action->MatchesURL( 1022 ASSERT_TRUE(action->MatchesURL(
1016 GURL("filesystem:chrome-extension://foo/local/test.txt"))); 1023 GURL("filesystem:chrome-extension://foo/local/test.txt")));
1024 ASSERT_FALSE(action->HasCreateAccessPermission());
1025 ASSERT_TRUE(action->CanRead());
1026 ASSERT_TRUE(action->CanWrite());
1027
1028 scoped_refptr<Extension> create_extension(
1029 LoadAndExpectSuccess("filebrowser_valid_with_create.json"));
1030 ASSERT_TRUE(create_extension->file_browser_handlers() != NULL);
1031 ASSERT_EQ(create_extension->file_browser_handlers()->size(), 1U);
1032 const FileBrowserHandler* create_action =
1033 create_extension->file_browser_handlers()->at(0).get();
1034 EXPECT_EQ(create_action->title(), "Default title");
1035 EXPECT_EQ(create_action->icon_path(), "icon.png");
1036 const URLPatternSet& create_patterns = create_action->file_url_patterns();
1037 ASSERT_EQ(create_patterns.patterns().size(), 0U);
1038 ASSERT_TRUE(create_action->HasCreateAccessPermission());
1039 ASSERT_FALSE(create_action->CanRead());
1040 ASSERT_FALSE(create_action->CanWrite());
1017 } 1041 }
1018 1042
1019 TEST_F(ExtensionManifestTest, FileManagerURLOverride) { 1043 TEST_F(ExtensionManifestTest, FileManagerURLOverride) {
1020 // A component extention can override chrome://files/ URL. 1044 // A component extention can override chrome://files/ URL.
1021 std::string error; 1045 std::string error;
1022 scoped_refptr<Extension> extension; 1046 scoped_refptr<Extension> extension;
1023 extension = LoadExtension( 1047 extension = LoadExtension(
1024 Manifest("filebrowser_url_override.json"), 1048 Manifest("filebrowser_url_override.json"),
1025 &error, 1049 &error,
1026 Extension::COMPONENT, 1050 Extension::COMPONENT,
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
1157 // Extension with manifest version 2 *can* use storage API. 1181 // Extension with manifest version 2 *can* use storage API.
1158 { 1182 {
1159 DictionaryValue manifest_with_version; 1183 DictionaryValue manifest_with_version;
1160 manifest_with_version.SetInteger(keys::kManifestVersion, 2); 1184 manifest_with_version.SetInteger(keys::kManifestVersion, 2);
1161 manifest_with_version.MergeDictionary(&base_manifest); 1185 manifest_with_version.MergeDictionary(&base_manifest);
1162 1186
1163 Manifest manifest(&manifest_with_version, "test"); 1187 Manifest manifest(&manifest_with_version, "test");
1164 LoadAndExpectSuccess(manifest); 1188 LoadAndExpectSuccess(manifest);
1165 } 1189 }
1166 } 1190 }
OLDNEW
« no previous file with comments | « chrome/common/extensions/extension_manifest_constants.cc ('k') | chrome/common/extensions/file_browser_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698