Chromium Code Reviews| Index: webkit/plugins/npapi/plugin_list_unittest.cc |
| diff --git a/webkit/plugins/npapi/plugin_list_unittest.cc b/webkit/plugins/npapi/plugin_list_unittest.cc |
| index 135be62d0a7a819765ffec2c3895740f525af6a8..f86af86e70729dd9c555de5bb7189df632b66e9d 100644 |
| --- a/webkit/plugins/npapi/plugin_list_unittest.cc |
| +++ b/webkit/plugins/npapi/plugin_list_unittest.cc |
| @@ -7,6 +7,7 @@ |
| #include "base/strings/string16.h" |
| #include "base/strings/utf_string_conversions.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| +#include "url/gurl.h" |
| namespace webkit { |
| namespace npapi { |
| @@ -38,6 +39,8 @@ bool Contains(const std::vector<WebPluginInfo>& list, |
| base::FilePath::CharType kFooPath[] = FILE_PATH_LITERAL("/plugins/foo.plugin"); |
| base::FilePath::CharType kBarPath[] = FILE_PATH_LITERAL("/plugins/bar.plugin"); |
| const char* kFooName = "Foo Plugin"; |
| +const char* kFooMimeType = "application/x-foo-mime-type"; |
| +const char* kFooFileType = "foo"; |
| class PluginListTest : public testing::Test { |
| public: |
| @@ -55,6 +58,8 @@ class PluginListTest : public testing::Test { |
| virtual void SetUp() { |
| plugin_list_.DisablePluginsDiscovery(); |
| plugin_list_.RegisterInternalPlugin(bar_plugin_, false); |
| + foo_plugin_.mime_types.push_back( |
| + WebPluginMimeType(kFooMimeType, kFooFileType, "")); |
|
Bernhard Bauer
2013/07/18 21:17:10
Nit: Using an empty constructor is slightly more e
asanka
2013/07/18 21:23:52
Done.
|
| plugin_list_.RegisterInternalPlugin(foo_plugin_, false); |
| } |
| @@ -85,6 +90,53 @@ TEST_F(PluginListTest, BadPluginDescription) { |
| ASSERT_TRUE(Contains(plugins, plugin_3043)); |
| } |
| +TEST_F(PluginListTest, GetPluginInfoArray) { |
| + const char kTargetUrl[] = "http://example.com/test.foo"; |
| + GURL target_url(kTargetUrl); |
| + std::vector<WebPluginInfo> plugins; |
| + std::vector<std::string> actual_mime_types; |
| + |
| + // The file type of the URL is supported by foo_plugin_. However, |
| + // GetPluginInfoArray should not match foo_plugin_ because the MIME type is |
| + // application/octet-stream. |
| + plugin_list_.GetPluginInfoArray(target_url, |
| + "application/octet-stream", |
| + false, // allow_wildcard |
| + NULL, // use_stale |
| + &plugins, |
| + &actual_mime_types); |
| + EXPECT_EQ(0u, plugins.size()); |
| + EXPECT_EQ(0u, actual_mime_types.size()); |
| + |
| + // foo_plugin_ matches due to the MIME type. |
| + plugins.clear(); |
| + actual_mime_types.clear(); |
| + plugin_list_.GetPluginInfoArray(target_url, |
| + kFooMimeType, |
| + false, // allow_wildcard |
| + NULL, // use_stale |
| + &plugins, |
| + &actual_mime_types); |
| + EXPECT_EQ(1u, plugins.size()); |
| + EXPECT_TRUE(Contains(plugins, foo_plugin_)); |
| + ASSERT_EQ(1u, actual_mime_types.size()); |
| + EXPECT_EQ(kFooMimeType, actual_mime_types.front()); |
| + |
| + // foo_plugin_ matches due to the file type and empty MIME type. |
| + plugins.clear(); |
| + actual_mime_types.clear(); |
| + plugin_list_.GetPluginInfoArray(target_url, |
| + "", |
| + false, // allow_wildcard |
| + NULL, // use_stale |
| + &plugins, |
| + &actual_mime_types); |
| + EXPECT_EQ(1u, plugins.size()); |
| + EXPECT_TRUE(Contains(plugins, foo_plugin_)); |
| + ASSERT_EQ(1u, actual_mime_types.size()); |
| + EXPECT_EQ(kFooMimeType, actual_mime_types.front()); |
| +} |
| + |
| #endif |
| #if defined(OS_POSIX) && !defined(OS_MACOSX) |