Index: webkit/glue/plugins/plugin_group_unittest.cc |
diff --git a/webkit/glue/plugins/plugin_group_unittest.cc b/webkit/glue/plugins/plugin_group_unittest.cc |
index 1868fb499aaf4d60cdbfbc557bcb154531ad572a..31dee1e0fa4a3288a2f18d7139e8790d513f4d7f 100644 |
--- a/webkit/glue/plugins/plugin_group_unittest.cc |
+++ b/webkit/glue/plugins/plugin_group_unittest.cc |
@@ -16,16 +16,34 @@ |
#include "webkit/glue/plugins/webplugininfo.h" |
#include "webkit/glue/plugins/plugin_list.h" |
+static const VersionRangeDefinition kPluginVersionRange[] = { |
+ { "", "", "3.0.44" } |
+}; |
+static const VersionRangeDefinition kPlugin3VersionRange[] = { |
+ { "0", "4", "3.0.44" } |
+}; |
+static const VersionRangeDefinition kPlugin4VersionRange[] = { |
+ { "4", "5", "4.0.44" } |
+}; |
+static const VersionRangeDefinition kPlugin34VersionRange[] = { |
+ { "0", "4", "3.0.44" }, |
+ { "4", "5", "4.0.44" } |
+}; |
+ |
static const PluginGroupDefinition kPluginDef = { |
- "myplugin", "MyPlugin", "MyPlugin", "", "", "3.0.44", "http://latest/" }; |
+ "myplugin", "MyPlugin", "MyPlugin", kPluginVersionRange, 1, |
+ "http://latest/" }; |
static const PluginGroupDefinition kPluginDef3 = { |
- "myplugin-3", "MyPlugin 3", "MyPlugin", "0", "4", "3.0.44", |
+ "myplugin-3", "MyPlugin 3", "MyPlugin", kPlugin3VersionRange, 1, |
"http://latest" }; |
static const PluginGroupDefinition kPluginDef4 = { |
- "myplugin-4", "MyPlugin 4", "MyPlugin", "4", "5", "4.0.44", |
+ "myplugin-4", "MyPlugin 4", "MyPlugin", kPlugin4VersionRange, 1, |
+ "http://latest" }; |
+static const PluginGroupDefinition kPluginDef34 = { |
+ "myplugin-34", "MyPlugin 3/4", "MyPlugin", kPlugin34VersionRange, 2, |
"http://latest" }; |
static const PluginGroupDefinition kPluginDefNotVulnerable = { |
- "myplugin-latest", "MyPlugin", "MyPlugin", "", "", "", "http://latest" }; |
+ "myplugin-latest", "MyPlugin", "MyPlugin", NULL, 0, "http://latest" }; |
// name, path, version, desc, mime_types, enabled. |
static WebPluginInfo kPlugin2043 = WebPluginInfo( |
@@ -78,55 +96,64 @@ TEST(PluginGroupTest, PluginGroupMatchCorrectVersion) { |
EXPECT_FALSE(group->Match(kPlugin2043)); |
EXPECT_FALSE(group->Match(kPlugin3043)); |
EXPECT_TRUE(group->Match(kPlugin4043)); |
+ |
+ group.reset(PluginGroupTest::CreatePluginGroup(kPluginDef34)); |
+ EXPECT_TRUE(group->Match(kPlugin2043)); |
+ EXPECT_TRUE(group->Match(kPlugin3043)); |
+ EXPECT_TRUE(group->Match(kPlugin4043)); |
} |
TEST(PluginGroupTest, PluginGroupDescription) { |
string16 desc3043(ASCIIToUTF16("MyPlugin version 3.0.43")); |
string16 desc3045(ASCIIToUTF16("MyPlugin version 3.0.45")); |
- WebPluginInfo plugin3043(kPlugin3043); |
- WebPluginInfo plugin3045(kPlugin3045); |
- |
- { |
- scoped_ptr<PluginGroup> group(PluginGroupTest::CreatePluginGroup( |
- kPluginDef3)); |
- EXPECT_TRUE(group->Match(plugin3043)); |
- group->AddPlugin(plugin3043, 0); |
- EXPECT_EQ(desc3043, group->description()); |
- EXPECT_TRUE(group->IsVulnerable()); |
- EXPECT_TRUE(group->Match(plugin3045)); |
- group->AddPlugin(plugin3045, 1); |
- EXPECT_EQ(desc3043, group->description()); |
- EXPECT_TRUE(group->IsVulnerable()); |
- } |
- { |
- // Disable the first plugin. |
- plugin3043.enabled = false; |
- scoped_ptr<PluginGroup> group(PluginGroupTest::CreatePluginGroup( |
- kPluginDef3)); |
- EXPECT_TRUE(group->Match(plugin3043)); |
- group->AddPlugin(plugin3043, 0); |
- EXPECT_EQ(desc3043, group->description()); |
- EXPECT_TRUE(group->IsVulnerable()); |
- EXPECT_TRUE(group->Match(plugin3045)); |
- group->AddPlugin(plugin3045, 1); |
- EXPECT_EQ(desc3045, group->description()); |
- EXPECT_FALSE(group->IsVulnerable()); |
- } |
- |
- { |
- // Disable the second plugin. |
- plugin3045.enabled = false; |
- scoped_ptr<PluginGroup> group(PluginGroupTest::CreatePluginGroup( |
- kPluginDef3)); |
- EXPECT_TRUE(group->Match(plugin3043)); |
- group->AddPlugin(plugin3043, 1); |
- EXPECT_EQ(desc3043, group->description()); |
- EXPECT_TRUE(group->IsVulnerable()); |
- EXPECT_TRUE(group->Match(plugin3045)); |
- group->AddPlugin(plugin3045, 0); |
- EXPECT_EQ(desc3043, group->description()); |
- EXPECT_TRUE(group->IsVulnerable()); |
+ PluginGroupDefinition plugindefs[] = { kPluginDef3, kPluginDef34 }; |
+ for (size_t i = 0; i < 2; ++i) { |
+ WebPluginInfo plugin3043(kPlugin3043); |
+ WebPluginInfo plugin3045(kPlugin3045); |
+ { |
+ scoped_ptr<PluginGroup> group(PluginGroupTest::CreatePluginGroup( |
+ plugindefs[i])); |
+ EXPECT_TRUE(group->Match(plugin3043)); |
+ group->AddPlugin(plugin3043, 0); |
+ EXPECT_EQ(desc3043, group->description()); |
+ EXPECT_TRUE(group->IsVulnerable()); |
+ EXPECT_TRUE(group->Match(plugin3045)); |
+ group->AddPlugin(plugin3045, 1); |
+ EXPECT_EQ(desc3043, group->description()); |
+ EXPECT_TRUE(group->IsVulnerable()); |
+ } |
+ |
+ { |
+ // Disable the first plugin. |
+ plugin3043.enabled = false; |
+ scoped_ptr<PluginGroup> group(PluginGroupTest::CreatePluginGroup( |
+ plugindefs[i])); |
+ EXPECT_TRUE(group->Match(plugin3043)); |
+ group->AddPlugin(plugin3043, 0); |
+ EXPECT_EQ(desc3043, group->description()); |
+ EXPECT_TRUE(group->IsVulnerable()); |
+ EXPECT_FALSE(group->Enabled()); |
+ EXPECT_TRUE(group->Match(plugin3045)); |
+ group->AddPlugin(plugin3045, 1); |
+ EXPECT_EQ(desc3045, group->description()); |
+ EXPECT_FALSE(group->IsVulnerable()); |
+ } |
+ |
+ { |
+ // Disable the second plugin. |
+ plugin3045.enabled = false; |
+ scoped_ptr<PluginGroup> group(PluginGroupTest::CreatePluginGroup( |
+ plugindefs[i])); |
+ EXPECT_TRUE(group->Match(plugin3043)); |
+ group->AddPlugin(plugin3043, 1); |
+ EXPECT_EQ(desc3043, group->description()); |
+ EXPECT_TRUE(group->IsVulnerable()); |
+ EXPECT_TRUE(group->Match(plugin3045)); |
+ group->AddPlugin(plugin3045, 0); |
+ EXPECT_EQ(desc3043, group->description()); |
+ EXPECT_TRUE(group->IsVulnerable()); |
+ } |
} |
} |
@@ -144,16 +171,19 @@ TEST(PluginGroupTest, PluginGroupDefinition) { |
} |
TEST(PluginGroupTest, DisableOutdated) { |
- scoped_ptr<PluginGroup> group(PluginGroupTest::CreatePluginGroup( |
- kPluginDef3)); |
- group->AddPlugin(kPlugin3043, 0); |
- group->AddPlugin(kPlugin3045, 1); |
- EXPECT_EQ(ASCIIToUTF16("MyPlugin version 3.0.43"), group->description()); |
- EXPECT_TRUE(group->IsVulnerable()); |
+ PluginGroupDefinition plugindefs[] = { kPluginDef3, kPluginDef34 }; |
+ for (size_t i = 0; i < 2; ++i) { |
+ scoped_ptr<PluginGroup> group(PluginGroupTest::CreatePluginGroup( |
+ plugindefs[i])); |
+ group->AddPlugin(kPlugin3043, 0); |
+ group->AddPlugin(kPlugin3045, 1); |
+ EXPECT_EQ(ASCIIToUTF16("MyPlugin version 3.0.43"), group->description()); |
+ EXPECT_TRUE(group->IsVulnerable()); |
- group->DisableOutdatedPlugins(); |
- EXPECT_EQ(ASCIIToUTF16("MyPlugin version 3.0.45"), group->description()); |
- EXPECT_FALSE(group->IsVulnerable()); |
+ group->DisableOutdatedPlugins(); |
+ EXPECT_EQ(ASCIIToUTF16("MyPlugin version 3.0.45"), group->description()); |
+ EXPECT_FALSE(group->IsVulnerable()); |
+ } |
} |
TEST(PluginGroupTest, VersionExtraction) { |