| Index: webkit/plugins/npapi/plugin_list_unittest.cc
|
| ===================================================================
|
| --- webkit/plugins/npapi/plugin_list_unittest.cc (revision 101271)
|
| +++ webkit/plugins/npapi/plugin_list_unittest.cc (working copy)
|
| @@ -13,18 +13,21 @@
|
|
|
| namespace {
|
|
|
| -bool Equals(const WebPluginInfo& a, const WebPluginInfo& b) {
|
| +bool Equals(const WebPluginInfo& a, const WebPluginInfo& b,
|
| + bool care_about_enabled_status) {
|
| return (a.name == b.name &&
|
| a.path == b.path &&
|
| a.version == b.version &&
|
| - a.desc == b.desc);
|
| + a.desc == b.desc &&
|
| + (!care_about_enabled_status || a.enabled == b.enabled));
|
| }
|
|
|
| bool Contains(const std::vector<WebPluginInfo>& list,
|
| - const WebPluginInfo& plugin) {
|
| + const WebPluginInfo& plugin,
|
| + bool care_about_enabled_status) {
|
| for (std::vector<WebPluginInfo>::const_iterator it = list.begin();
|
| it != list.end(); ++it) {
|
| - if (Equals(*it, plugin))
|
| + if (Equals(*it, plugin, care_about_enabled_status))
|
| return true;
|
| }
|
| return false;
|
| @@ -57,6 +60,8 @@
|
| }
|
|
|
| virtual void SetUp() {
|
| + bar_plugin_.enabled = WebPluginInfo::USER_DISABLED_POLICY_UNMANAGED;
|
| + plugin_list_.DisablePlugin(bar_plugin_.path);
|
| plugin_list_.AddPluginToLoad(foo_plugin_);
|
| plugin_list_.AddPluginToLoad(bar_plugin_);
|
| }
|
| @@ -71,20 +76,26 @@
|
| std::vector<WebPluginInfo> plugins;
|
| plugin_list_.GetPlugins(&plugins);
|
| EXPECT_EQ(2u, plugins.size());
|
| - EXPECT_TRUE(Contains(plugins, foo_plugin_));
|
| - EXPECT_TRUE(Contains(plugins, bar_plugin_));
|
| + EXPECT_TRUE(Contains(plugins, foo_plugin_, true));
|
| + EXPECT_TRUE(Contains(plugins, bar_plugin_, true));
|
| }
|
|
|
| TEST_F(PluginListTest, GetPluginGroup) {
|
| const PluginGroup* foo_group = plugin_list_.GetPluginGroup(foo_plugin_);
|
| EXPECT_EQ(ASCIIToUTF16(kFooGroupName), foo_group->GetGroupName());
|
| + EXPECT_TRUE(foo_group->Enabled());
|
| + // The second request should return a pointer to the same instance.
|
| + const PluginGroup* foo_group2 = plugin_list_.GetPluginGroup(foo_plugin_);
|
| + EXPECT_EQ(foo_group, foo_group2);
|
| + const PluginGroup* bar_group = plugin_list_.GetPluginGroup(bar_plugin_);
|
| + EXPECT_FALSE(bar_group->Enabled());
|
| }
|
|
|
| TEST_F(PluginListTest, EmptyGroup) {
|
| std::vector<PluginGroup> groups;
|
| plugin_list_.GetPluginGroups(false, &groups);
|
| for (size_t i = 0; i < groups.size(); ++i)
|
| - EXPECT_GE(1U, groups[i].web_plugin_infos().size());
|
| + EXPECT_GE(1U, groups[i].web_plugins_info().size());
|
| }
|
|
|
| TEST_F(PluginListTest, BadPluginDescription) {
|
| @@ -99,20 +110,61 @@
|
| plugin_list_.RefreshPlugins();
|
| std::vector<WebPluginInfo> plugins;
|
| plugin_list_.GetPlugins(&plugins);
|
| - ASSERT_TRUE(Contains(plugins, plugin_3043));
|
| + ASSERT_TRUE(Contains(plugins, plugin_3043, true));
|
| }
|
|
|
| +TEST_F(PluginListTest, DisableAndEnableBeforeLoad) {
|
| + WebPluginInfo plugin_3043(ASCIIToUTF16("MyPlugin"),
|
| + FilePath(FILE_PATH_LITERAL("/myplugin.3.0.43")),
|
| + ASCIIToUTF16("3.0.43"),
|
| + ASCIIToUTF16("MyPlugin version 3.0.43"));
|
| + WebPluginInfo plugin_3045(ASCIIToUTF16("MyPlugin"),
|
| + FilePath(FILE_PATH_LITERAL("/myplugin.3.0.45")),
|
| + ASCIIToUTF16("3.0.45"),
|
| + ASCIIToUTF16("MyPlugin version 3.0.45"));
|
| + // Disable the first one and disable and then enable the second one.
|
| + EXPECT_TRUE(plugin_list_.DisablePlugin(plugin_3043.path));
|
| + EXPECT_TRUE(plugin_list_.DisablePlugin(plugin_3045.path));
|
| + EXPECT_TRUE(plugin_list_.EnablePlugin(plugin_3045.path));
|
| + // Simulate loading of the plugins.
|
| + plugin_list_.ClearPluginsToLoad();
|
| + plugin_list_.AddPluginToLoad(plugin_3043);
|
| + plugin_list_.AddPluginToLoad(plugin_3045);
|
| + // Now we should have them in the state we specified above.
|
| + plugin_list_.RefreshPlugins();
|
| + std::vector<WebPluginInfo> plugins;
|
| + plugin_list_.GetPlugins(&plugins);
|
| + plugin_3043.enabled = WebPluginInfo::USER_DISABLED_POLICY_UNMANAGED;
|
| + ASSERT_TRUE(Contains(plugins, plugin_3043, true));
|
| + ASSERT_TRUE(Contains(plugins, plugin_3045, true));
|
| +}
|
| +
|
| TEST_F(PluginListTest, HardcodedGroups) {
|
| std::vector<PluginGroup> groups;
|
| plugin_list_.GetPluginGroups(true, &groups);
|
| ASSERT_EQ(2u, groups.size());
|
| - EXPECT_EQ(1u, groups[0].web_plugin_infos().size());
|
| + EXPECT_TRUE(groups[0].Enabled());
|
| + EXPECT_EQ(1u, groups[0].web_plugins_info().size());
|
| EXPECT_TRUE(groups[0].ContainsPlugin(FilePath(kFooPath)));
|
| EXPECT_EQ(kFooIdentifier, groups[0].identifier());
|
| - EXPECT_EQ(1u, groups[1].web_plugin_infos().size());
|
| + EXPECT_FALSE(groups[1].Enabled());
|
| + EXPECT_EQ(1u, groups[1].web_plugins_info().size());
|
| EXPECT_TRUE(groups[1].ContainsPlugin(FilePath(kBarPath)));
|
| EXPECT_EQ("bar.plugin", groups[1].identifier());
|
| }
|
|
|
| +TEST_F(PluginListTest, DisableBeforeLoad) {
|
| + // Test that a plugin group that was disabled before plugins are loaded stays
|
| + // disabled afterwards.
|
| +
|
| + EXPECT_TRUE(plugin_list_.EnableGroup(false, ASCIIToUTF16(kFooGroupName)));
|
| +
|
| + plugin_list_.RefreshPlugins();
|
| + std::vector<WebPluginInfo> plugins;
|
| + plugin_list_.GetPlugins(&plugins);
|
| + ASSERT_EQ(2u, plugins.size());
|
| + ASSERT_EQ(WebPluginInfo::USER_DISABLED_POLICY_UNMANAGED, plugins[0].enabled);
|
| +}
|
| +
|
| } // namespace npapi
|
| } // namespace webkit
|
|
|
| Property changes on: webkit/plugins/npapi/plugin_list_unittest.cc
|
| ___________________________________________________________________
|
| Added: svn:mergeinfo
|
| Merged /branches/chrome_webkit_merge_branch/src/webkit/plugins/npapi/plugin_list_unittest.cc:r3734-4217,4606-5108,5177-5263
|
|
|
|
|