| OLD | NEW |
| 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 "base/strings/string_number_conversions.h" | 5 #include "base/strings/string_number_conversions.h" |
| 6 #include "chrome/browser/chromeos/extensions/file_browser_handler.h" | 6 #include "chrome/browser/chromeos/extensions/file_browser_handler.h" |
| 7 #include "chrome/common/extensions/extension_builder.h" | 7 #include "chrome/common/extensions/extension_builder.h" |
| 8 #include "chrome/common/extensions/extension_manifest_constants.h" | 8 #include "chrome/common/extensions/extension_manifest_constants.h" |
| 9 #include "chrome/common/extensions/manifest_handler.h" | 9 #include "chrome/common/extensions/manifest_handler.h" |
| 10 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h" | 10 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h" |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 EXPECT_EQ(action->id(), "ExtremelyCoolAction"); | 89 EXPECT_EQ(action->id(), "ExtremelyCoolAction"); |
| 90 EXPECT_EQ(action->title(), "Be Amazed"); | 90 EXPECT_EQ(action->title(), "Be Amazed"); |
| 91 EXPECT_EQ(action->icon_path(), "icon.png"); | 91 EXPECT_EQ(action->icon_path(), "icon.png"); |
| 92 const extensions::URLPatternSet& patterns = action->file_url_patterns(); | 92 const extensions::URLPatternSet& patterns = action->file_url_patterns(); |
| 93 ASSERT_EQ(patterns.patterns().size(), 1U); | 93 ASSERT_EQ(patterns.patterns().size(), 1U); |
| 94 EXPECT_TRUE(action->MatchesURL( | 94 EXPECT_TRUE(action->MatchesURL( |
| 95 GURL("filesystem:chrome-extension://foo/local/test.txt"))); | 95 GURL("filesystem:chrome-extension://foo/local/test.txt"))); |
| 96 EXPECT_FALSE(action->HasCreateAccessPermission()); | 96 EXPECT_FALSE(action->HasCreateAccessPermission()); |
| 97 EXPECT_TRUE(action->CanRead()); | 97 EXPECT_TRUE(action->CanRead()); |
| 98 EXPECT_TRUE(action->CanWrite()); | 98 EXPECT_TRUE(action->CanWrite()); |
| 99 EXPECT_FALSE(action->CanHandleMIMEType("plain/text")); | |
| 100 } | 99 } |
| 101 | 100 |
| 102 TEST_F(FileBrowserHandlerManifestTest, ValidFileBrowserHandlerMIMETypes) { | 101 TEST_F(FileBrowserHandlerManifestTest, ValidFileBrowserHandlerMIMETypes) { |
| 103 scoped_refptr<const Extension> extension = | 102 scoped_refptr<const Extension> extension = |
| 104 ExtensionBuilder() | 103 ExtensionBuilder() |
| 105 .SetID(extension_misc::kQuickOfficeExtensionId) | 104 .SetID(extension_misc::kQuickOfficeExtensionId) |
| 106 .SetManifest(DictionaryBuilder() | 105 .SetManifest(DictionaryBuilder() |
| 107 .Set("name", "file browser handler test") | 106 .Set("name", "file browser handler test") |
| 108 .Set("version", "1.0.0") | 107 .Set("version", "1.0.0") |
| 109 .Set("manifest_version", 2) | 108 .Set("manifest_version", 2) |
| 110 .Set("file_browser_handlers", ListBuilder() | 109 .Set("file_browser_handlers", ListBuilder() |
| 111 .Append(DictionaryBuilder() | 110 .Append(DictionaryBuilder() |
| 112 .Set("id", "ID") | 111 .Set("id", "ID") |
| 113 .Set("default_title", "Default title") | 112 .Set("default_title", "Default title") |
| 114 .Set("default_icon", "icon.png") | 113 .Set("default_icon", "icon.png") |
| 115 .Set("file_filters", ListBuilder() | 114 .Set("file_filters", ListBuilder() |
| 116 .Append("filesystem:*.txt")) | 115 .Append("filesystem:*.txt"))))) |
| 117 .Set("mime_types", ListBuilder() | |
| 118 .Append("plain/text"))))) | |
| 119 .Build(); | 116 .Build(); |
| 120 | 117 |
| 121 ASSERT_TRUE(extension.get()); | 118 ASSERT_TRUE(extension.get()); |
| 122 FileBrowserHandler::List* handlers = | 119 FileBrowserHandler::List* handlers = |
| 123 FileBrowserHandler::GetHandlers(extension); | 120 FileBrowserHandler::GetHandlers(extension); |
| 124 ASSERT_TRUE(handlers != NULL); | 121 ASSERT_TRUE(handlers != NULL); |
| 125 ASSERT_EQ(handlers->size(), 1U); | 122 ASSERT_EQ(handlers->size(), 1U); |
| 126 const FileBrowserHandler* action = handlers->at(0).get(); | 123 const FileBrowserHandler* action = handlers->at(0).get(); |
| 127 | 124 |
| 128 EXPECT_FALSE(action->CanHandleMIMEType("plain/html")); | |
| 129 EXPECT_TRUE(action->CanHandleMIMEType("plain/text")); | |
| 130 | |
| 131 const extensions::URLPatternSet& patterns = action->file_url_patterns(); | 125 const extensions::URLPatternSet& patterns = action->file_url_patterns(); |
| 132 ASSERT_EQ(patterns.patterns().size(), 1U); | 126 ASSERT_EQ(patterns.patterns().size(), 1U); |
| 133 EXPECT_TRUE(action->MatchesURL( | 127 EXPECT_TRUE(action->MatchesURL( |
| 134 GURL("filesystem:chrome-extension://foo/local/test.txt"))); | 128 GURL("filesystem:chrome-extension://foo/local/test.txt"))); |
| 135 } | 129 } |
| 136 | 130 |
| 137 TEST_F(FileBrowserHandlerManifestTest, | |
| 138 FileBrowserHandlerMIMETypesNotWhitelisted) { | |
| 139 scoped_ptr<DictionaryValue> manifest_value = | |
| 140 DictionaryBuilder() | |
| 141 .Set("name", "MIME types test") | |
| 142 .Set("version", "1.0.0") | |
| 143 .Set("manifest_version", 2) | |
| 144 .Set("file_browser_handlers", ListBuilder() | |
| 145 .Append(DictionaryBuilder() | |
| 146 .Set("id", "ID") | |
| 147 .Set("default_title", "Default title") | |
| 148 .Set("default_icon", "icon.png") | |
| 149 .Set("file_filters", ListBuilder() | |
| 150 .Append("filesystem:*.txt")) | |
| 151 .Set("mime_types", ListBuilder() | |
| 152 .Append("plain/text")))) | |
| 153 .Build(); | |
| 154 | |
| 155 LoadAndExpectError(Manifest(manifest_value.get(), "MIME types test"), | |
| 156 errors::kNoPermissionForFileBrowserHandlerMIMETypes); | |
| 157 } | |
| 158 | |
| 159 TEST_F(FileBrowserHandlerManifestTest, ValidFileBrowserHandlerWithCreate) { | 131 TEST_F(FileBrowserHandlerManifestTest, ValidFileBrowserHandlerWithCreate) { |
| 160 scoped_refptr<const Extension> extension = | 132 scoped_refptr<const Extension> extension = |
| 161 ExtensionBuilder() | 133 ExtensionBuilder() |
| 162 .SetManifest(DictionaryBuilder() | 134 .SetManifest(DictionaryBuilder() |
| 163 .Set("name", "file browser handler test create") | 135 .Set("name", "file browser handler test create") |
| 164 .Set("version", "1.0.0") | 136 .Set("version", "1.0.0") |
| 165 .Set("manifest_version", 2) | 137 .Set("manifest_version", 2) |
| 166 .Set("file_browser_handlers", ListBuilder() | 138 .Set("file_browser_handlers", ListBuilder() |
| 167 .Append(DictionaryBuilder() | 139 .Append(DictionaryBuilder() |
| 168 .Set("id", "ID") | 140 .Set("id", "ID") |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 207 LoadExtension(Manifest(manifest_value.get(), "override_files"), | 179 LoadExtension(Manifest(manifest_value.get(), "override_files"), |
| 208 &error, extensions::Manifest::COMPONENT, Extension::NO_FLAGS); | 180 &error, extensions::Manifest::COMPONENT, Extension::NO_FLAGS); |
| 209 #if defined(FILE_MANAGER_EXTENSION) | 181 #if defined(FILE_MANAGER_EXTENSION) |
| 210 EXPECT_EQ("", error); | 182 EXPECT_EQ("", error); |
| 211 #else | 183 #else |
| 212 EXPECT_EQ(std::string(errors::kInvalidChromeURLOverrides), error); | 184 EXPECT_EQ(std::string(errors::kInvalidChromeURLOverrides), error); |
| 213 #endif | 185 #endif |
| 214 } | 186 } |
| 215 | 187 |
| 216 } // namespace | 188 } // namespace |
| OLD | NEW |