Index: webkit/plugins/npapi/plugin_group_unittest.cc |
diff --git a/webkit/plugins/npapi/plugin_group_unittest.cc b/webkit/plugins/npapi/plugin_group_unittest.cc |
index 8f9bf505b67eba6d1b05c8d27fcf2eafca5a174f..a9e1c1cac26570e564e363ab2124e307a72f6a81 100644 |
--- a/webkit/plugins/npapi/plugin_group_unittest.cc |
+++ b/webkit/plugins/npapi/plugin_group_unittest.cc |
@@ -87,12 +87,6 @@ class PluginGroupTest : public testing::Test { |
static PluginGroup* CreatePluginGroup(const WebPluginInfo& wpi) { |
return PluginGroup::FromWebPluginInfo(wpi); |
} |
- protected: |
- virtual void TearDown() { |
- PluginGroup::SetPolicyEnforcedPluginPatterns(std::set<string16>(), |
- std::set<string16>(), |
- std::set<string16>()); |
- } |
}; |
TEST_F(PluginGroupTest, PluginGroupMatch) { |
@@ -102,7 +96,7 @@ TEST_F(PluginGroupTest, PluginGroupMatch) { |
EXPECT_TRUE(group->Match(kPlugin3045r)); |
EXPECT_FALSE(group->Match(kPluginNoVersion)); |
group->AddPlugin(kPlugin3045); |
- EXPECT_FALSE(group->IsVulnerable()); |
+ EXPECT_FALSE(group->IsVulnerable(kPlugin3045)); |
group.reset(PluginGroupTest::CreatePluginGroup(kPluginDef)); |
EXPECT_FALSE(group->Match(kPluginNoVersion)); |
@@ -126,45 +120,6 @@ TEST_F(PluginGroupTest, PluginGroupMatchCorrectVersion) { |
EXPECT_TRUE(group->Match(kPlugin4043)); |
} |
-TEST_F(PluginGroupTest, PluginGroupDescription) { |
- string16 desc3043(ASCIIToUTF16("MyPlugin version 3.0.43")); |
- string16 desc3045(ASCIIToUTF16("MyPlugin version 3.0.45")); |
- |
- PluginGroupDefinition plugindefs[] = |
- { kPluginDef, kPluginDef3, kPluginDef34 }; |
- for (size_t i = 0; i < arraysize(plugindefs); ++i) { |
- WebPluginInfo plugin3043(kPlugin3043); |
- WebPluginInfo plugin3045(kPlugin3045); |
- { |
- scoped_ptr<PluginGroup> group(PluginGroupTest::CreatePluginGroup( |
- plugindefs[i])); |
- EXPECT_TRUE(group->Match(plugin3043)); |
- group->AddPlugin(plugin3043); |
- EXPECT_EQ(desc3043, group->description()); |
- EXPECT_TRUE(group->IsVulnerable()); |
- EXPECT_TRUE(group->Match(plugin3045)); |
- group->AddPlugin(plugin3045); |
- EXPECT_EQ(desc3043, group->description()); |
- EXPECT_TRUE(group->IsVulnerable()); |
- } |
- { |
- // Disable the second plugin. |
- plugin3045.enabled = |
- webkit::WebPluginInfo::USER_DISABLED_POLICY_UNMANAGED; |
- scoped_ptr<PluginGroup> group(PluginGroupTest::CreatePluginGroup( |
- plugindefs[i])); |
- EXPECT_TRUE(group->Match(plugin3043)); |
- group->AddPlugin(plugin3043); |
- EXPECT_EQ(desc3043, group->description()); |
- EXPECT_TRUE(group->IsVulnerable()); |
- EXPECT_TRUE(group->Match(plugin3045)); |
- group->AddPlugin(plugin3045); |
- EXPECT_EQ(desc3043, group->description()); |
- EXPECT_TRUE(group->IsVulnerable()); |
- } |
- } |
-} |
- |
TEST_F(PluginGroupTest, PluginGroupDefinition) { |
for (size_t i = 0; i < arraysize(kPluginDefinitions); ++i) { |
scoped_ptr<PluginGroup> def_group( |
@@ -188,117 +143,12 @@ TEST_F(PluginGroupTest, VersionExtraction) { |
}; |
for (size_t i = 0; i < arraysize(versions); i++) { |
- const WebPluginInfo plugin = WebPluginInfo( |
- ASCIIToUTF16("Blah Plugin"), FilePath(FILE_PATH_LITERAL("blahfile")), |
- ASCIIToUTF16(versions[i][0]), string16()); |
- scoped_ptr<PluginGroup> group(PluginGroupTest::CreatePluginGroup(plugin)); |
- EXPECT_TRUE(group->Match(plugin)); |
- group->AddPlugin(plugin); |
- scoped_ptr<DictionaryValue> data(group->GetDataForUI()); |
- std::string version; |
- data->GetString("version", &version); |
- EXPECT_EQ(versions[i][1], version); |
+ scoped_ptr<Version> version(PluginGroup::CreateVersionFromString( |
+ ASCIIToUTF16(versions[i][0]))); |
+ EXPECT_STREQ(versions[i][1], version->GetString().c_str()); |
} |
} |
-TEST_F(PluginGroupTest, DisabledByPolicy) { |
- std::set<string16> disabled_plugins; |
- disabled_plugins.insert(ASCIIToUTF16("Disable this!")); |
- disabled_plugins.insert(ASCIIToUTF16("*Google*")); |
- PluginGroup::SetPolicyEnforcedPluginPatterns(disabled_plugins, |
- std::set<string16>(), |
- std::set<string16>()); |
- |
- EXPECT_FALSE(PluginGroup::IsPluginNameDisabledByPolicy(ASCIIToUTF16("42"))); |
- EXPECT_TRUE(PluginGroup::IsPluginNameDisabledByPolicy( |
- ASCIIToUTF16("Disable this!"))); |
- EXPECT_TRUE(PluginGroup::IsPluginNameDisabledByPolicy( |
- ASCIIToUTF16("Google Earth"))); |
-} |
- |
-TEST_F(PluginGroupTest, EnabledByPolicy) { |
- std::set<string16> enabled_plugins; |
- enabled_plugins.insert(ASCIIToUTF16("Enable that!")); |
- enabled_plugins.insert(ASCIIToUTF16("PDF*")); |
- PluginGroup::SetPolicyEnforcedPluginPatterns(std::set<string16>(), |
- std::set<string16>(), |
- enabled_plugins); |
- |
- EXPECT_FALSE(PluginGroup::IsPluginNameEnabledByPolicy(ASCIIToUTF16("42"))); |
- EXPECT_TRUE(PluginGroup::IsPluginNameEnabledByPolicy( |
- ASCIIToUTF16("Enable that!"))); |
- EXPECT_TRUE(PluginGroup::IsPluginNameEnabledByPolicy( |
- ASCIIToUTF16("PDF Reader"))); |
-} |
- |
-TEST_F(PluginGroupTest, EnabledAndDisabledByPolicy) { |
- const string16 k42(ASCIIToUTF16("42")); |
- const string16 kEnabled(ASCIIToUTF16("Enabled")); |
- const string16 kEnabled2(ASCIIToUTF16("Enabled 2")); |
- const string16 kEnabled3(ASCIIToUTF16("Enabled 3")); |
- const string16 kException(ASCIIToUTF16("Exception")); |
- const string16 kException2(ASCIIToUTF16("Exception 2")); |
- const string16 kGoogleMars(ASCIIToUTF16("Google Mars")); |
- const string16 kGoogleEarth(ASCIIToUTF16("Google Earth")); |
- |
- std::set<string16> disabled_plugins; |
- std::set<string16> disabled_plugins_exceptions; |
- std::set<string16> enabled_plugins; |
- |
- disabled_plugins.insert(kEnabled); |
- disabled_plugins_exceptions.insert(kEnabled); |
- enabled_plugins.insert(kEnabled); |
- |
- disabled_plugins_exceptions.insert(kException); |
- |
- disabled_plugins.insert(kEnabled2); |
- enabled_plugins.insert(kEnabled2); |
- |
- disabled_plugins.insert(kException2); |
- disabled_plugins_exceptions.insert(kException2); |
- |
- disabled_plugins_exceptions.insert(kEnabled3); |
- enabled_plugins.insert(kEnabled3); |
- |
- PluginGroup::SetPolicyEnforcedPluginPatterns(disabled_plugins, |
- disabled_plugins_exceptions, |
- enabled_plugins); |
- |
- EXPECT_FALSE(PluginGroup::IsPluginNameEnabledByPolicy(k42)); |
- EXPECT_FALSE(PluginGroup::IsPluginNameDisabledByPolicy(k42)); |
- |
- EXPECT_TRUE(PluginGroup::IsPluginNameEnabledByPolicy(kEnabled)); |
- EXPECT_FALSE(PluginGroup::IsPluginNameDisabledByPolicy(kEnabled)); |
- EXPECT_TRUE(PluginGroup::IsPluginNameEnabledByPolicy(kEnabled2)); |
- EXPECT_FALSE(PluginGroup::IsPluginNameDisabledByPolicy(kEnabled2)); |
- EXPECT_TRUE(PluginGroup::IsPluginNameEnabledByPolicy(kEnabled3)); |
- EXPECT_FALSE(PluginGroup::IsPluginNameDisabledByPolicy(kEnabled3)); |
- |
- EXPECT_FALSE(PluginGroup::IsPluginNameEnabledByPolicy(kException)); |
- EXPECT_FALSE(PluginGroup::IsPluginNameDisabledByPolicy(kException)); |
- EXPECT_FALSE(PluginGroup::IsPluginNameEnabledByPolicy(kException2)); |
- EXPECT_FALSE(PluginGroup::IsPluginNameDisabledByPolicy(kException2)); |
- |
- disabled_plugins.clear(); |
- disabled_plugins_exceptions.clear(); |
- enabled_plugins.clear(); |
- |
- disabled_plugins.insert(ASCIIToUTF16("*")); |
- disabled_plugins_exceptions.insert(ASCIIToUTF16("*Google*")); |
- enabled_plugins.insert(kGoogleEarth); |
- |
- PluginGroup::SetPolicyEnforcedPluginPatterns(disabled_plugins, |
- disabled_plugins_exceptions, |
- enabled_plugins); |
- |
- EXPECT_TRUE(PluginGroup::IsPluginNameEnabledByPolicy(kGoogleEarth)); |
- EXPECT_FALSE(PluginGroup::IsPluginNameDisabledByPolicy(kGoogleEarth)); |
- EXPECT_FALSE(PluginGroup::IsPluginNameEnabledByPolicy(kGoogleMars)); |
- EXPECT_FALSE(PluginGroup::IsPluginNameDisabledByPolicy(kGoogleMars)); |
- EXPECT_FALSE(PluginGroup::IsPluginNameEnabledByPolicy(k42)); |
- EXPECT_TRUE(PluginGroup::IsPluginNameDisabledByPolicy(k42)); |
-} |
- |
TEST_F(PluginGroupTest, IsVulnerable) { |
// Adobe Reader 10 |
VersionRangeDefinition adobe_reader_version_range[] = { |
@@ -318,8 +168,8 @@ TEST_F(PluginGroupTest, IsVulnerable) { |
adobe_reader_plugin_def)); |
group->AddPlugin(adobe_reader_plugin); |
PluginGroup group_copy(*group); // Exercise the copy constructor. |
- EXPECT_FALSE(group_copy.IsVulnerable()); |
- EXPECT_FALSE(group_copy.RequiresAuthorization()); |
+ EXPECT_FALSE(group_copy.IsVulnerable(adobe_reader_plugin)); |
+ EXPECT_FALSE(group_copy.RequiresAuthorization(adobe_reader_plugin)); |
// Silverlight 4 |
VersionRangeDefinition silverlight_version_range[] = { |
@@ -336,62 +186,8 @@ TEST_F(PluginGroupTest, IsVulnerable) { |
ASCIIToUTF16("silverlight 4")); |
group.reset(PluginGroupTest::CreatePluginGroup(silverlight_plugin_def)); |
group->AddPlugin(silverlight_plugin); |
- EXPECT_FALSE(PluginGroup(*group).IsVulnerable()); |
- EXPECT_TRUE(PluginGroup(*group).RequiresAuthorization()); |
-} |
- |
-TEST_F(PluginGroupTest, WhitelistedIsNotVulnerable) { |
- VersionRangeDefinition version_range[] = { |
- { "0", "6", "5.0", true } |
- }; |
- PluginGroupDefinition plugin_def = { |
- "nativehtml5", "NativeHTML5", "NativeHTML5", version_range, |
- arraysize(version_range), |
- "http://bugzilla.mozilla.org/show_bug.cgi?id=649408" }; |
- WebPluginInfo plugin(ASCIIToUTF16("NativeHTML5"), |
- FilePath(FILE_PATH_LITERAL("/native.so")), |
- ASCIIToUTF16("4.0"), |
- ASCIIToUTF16("NativeHTML5")); |
- scoped_ptr<PluginGroup> group(PluginGroupTest::CreatePluginGroup(plugin_def)); |
- group->AddPlugin(plugin); |
- |
- EXPECT_TRUE(group->IsVulnerable()); |
- EXPECT_TRUE(group->RequiresAuthorization()); |
- |
- std::set<string16> enabled_plugins; |
- enabled_plugins.insert(ASCIIToUTF16("NativeHTML5")); |
- PluginGroup::SetPolicyEnforcedPluginPatterns(std::set<string16>(), |
- std::set<string16>(), |
- enabled_plugins); |
- group->EnforceGroupPolicy(); |
- |
- EXPECT_FALSE(group->IsVulnerable()); |
- EXPECT_FALSE(group->RequiresAuthorization()); |
-} |
- |
-TEST_F(PluginGroupTest, MultipleVersions) { |
- scoped_ptr<PluginGroup> group( |
- PluginGroupTest::CreatePluginGroup(kPluginDef3)); |
- group->AddPlugin(kPlugin3044); |
- group->AddPlugin(kPlugin3043); |
- EXPECT_EQ(kPlugin3044.desc, group->description()); |
- EXPECT_FALSE(group->IsVulnerable()); |
- |
- group->DisablePlugin(kPlugin3044.path); |
- EXPECT_EQ(kPlugin3043.desc, group->description()); |
- EXPECT_TRUE(group->IsVulnerable()); |
- |
- EXPECT_TRUE(group->EnableGroup(false)); |
- EXPECT_EQ(kPlugin3044.desc, group->description()); |
- EXPECT_FALSE(group->IsVulnerable()); |
- |
- EXPECT_TRUE(group->RemovePlugin(kPlugin3044.path)); |
- EXPECT_EQ(kPlugin3043.desc, group->description()); |
- EXPECT_TRUE(group->IsVulnerable()); |
- |
- EXPECT_TRUE(group->RemovePlugin(kPlugin3043.path)); |
- EXPECT_TRUE(group->IsEmpty()); |
- EXPECT_EQ(string16(), group->description()); |
+ EXPECT_FALSE(PluginGroup(*group).IsVulnerable(silverlight_plugin)); |
+ EXPECT_TRUE(PluginGroup(*group).RequiresAuthorization(silverlight_plugin)); |
} |
} // namespace npapi |