Re-land: add support for blocking out-of-date plug-ins on Linux.

BUG=NONE
TEST=plugin_group_unittest.cc,plugin_lib_unittest.cc 
[email protected]

Review URL: http://codereview.chromium.org/6205004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71024 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/webkit/plugins/npapi/plugin_group_unittest.cc b/webkit/plugins/npapi/plugin_group_unittest.cc
index 3bda17c4..6fc3db2 100644
--- a/webkit/plugins/npapi/plugin_group_unittest.cc
+++ b/webkit/plugins/npapi/plugin_group_unittest.cc
@@ -49,6 +49,9 @@
     "myplugin-latest", "MyPlugin", "MyPlugin", NULL, 0, "http://latest" };
 
 // name, path, version, desc.
+static WebPluginInfo kPluginNoVersion = WebPluginInfo(
+    ASCIIToUTF16("MyPlugin"), FilePath(FILE_PATH_LITERAL("myplugin.so.2.0.43")),
+    ASCIIToUTF16(""), ASCIIToUTF16("MyPlugin version 2.0.43"));
 static WebPluginInfo kPlugin2043 = WebPluginInfo(
     ASCIIToUTF16("MyPlugin"), FilePath(FILE_PATH_LITERAL("myplugin.so.2.0.43")),
     ASCIIToUTF16("2.0.43"), ASCIIToUTF16("MyPlugin version 2.0.43"));
@@ -61,6 +64,9 @@
 static WebPluginInfo kPlugin3045 = WebPluginInfo(
     ASCIIToUTF16("MyPlugin"), FilePath(FILE_PATH_LITERAL("myplugin.so.3.0.45")),
      ASCIIToUTF16("3.0.45"), ASCIIToUTF16("MyPlugin version 3.0.45"));
+static WebPluginInfo kPlugin3045r = WebPluginInfo(
+    ASCIIToUTF16("MyPlugin"), FilePath(FILE_PATH_LITERAL("myplugin.so.3.0.45")),
+     ASCIIToUTF16("3.0r45"), ASCIIToUTF16("MyPlugin version 3.0r45"));
 static WebPluginInfo kPlugin4043 = WebPluginInfo(
     ASCIIToUTF16("MyPlugin"), FilePath(FILE_PATH_LITERAL("myplugin.so.4.0.43")),
      ASCIIToUTF16("4.0.43"), ASCIIToUTF16("MyPlugin version 4.0.43"));
@@ -84,8 +90,13 @@
   scoped_ptr<PluginGroup> group(PluginGroupTest::CreatePluginGroup(
       kPluginDef3));
   EXPECT_TRUE(group->Match(kPlugin3045));
+  EXPECT_TRUE(group->Match(kPlugin3045r));
+  EXPECT_FALSE(group->Match(kPluginNoVersion));
   group->AddPlugin(kPlugin3045, 0);
   EXPECT_FALSE(group->IsVulnerable());
+
+  group.reset(PluginGroupTest::CreatePluginGroup(kPluginDef));
+  EXPECT_FALSE(group->Match(kPluginNoVersion));
 }
 
 TEST(PluginGroupTest, PluginGroupMatchCorrectVersion) {
@@ -196,7 +207,9 @@
     { "3, 0, 0, 0", "3.0.0.0" },       // Picasa
     { "1, 0, 0, 1", "1.0.0.1" },       // Earth
     { "10,0,45,2", "10.0.45.2" },      // Flash
-    { "11.5.7r609", "11.5.7.609"}     // Shockwave
+    { "11.5.7r609", "11.5.7.609"},     // Shockwave
+    { "10.1 r102", "10.1.102"},        // Flash
+    { "1.6.0_22", "1.6.0.22"},         // Java
   };
 
   for (size_t i = 0; i < arraysize(versions); i++) {