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