| Index: chrome/renderer/plugins/plugin_uma_unittest.cc
|
| diff --git a/chrome/renderer/plugins/plugin_uma_unittest.cc b/chrome/renderer/plugins/plugin_uma_unittest.cc
|
| index 46e8099841981de6d1bf47ae75eb03e84787dcba..df3cd458b5e4b9da287166cddfbab3f36196f3a9 100644
|
| --- a/chrome/renderer/plugins/plugin_uma_unittest.cc
|
| +++ b/chrome/renderer/plugins/plugin_uma_unittest.cc
|
| @@ -2,234 +2,114 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include <gmock/gmock.h>
|
| #include <gtest/gtest.h>
|
|
|
| #include "chrome/renderer/plugins/plugin_uma.h"
|
|
|
| -using ::testing::_;
|
| -
|
| -class MockPluginUMASender : public MissingPluginReporter::UMASender {
|
| +class PluginUMATest : public testing::Test {
|
| public:
|
| - MOCK_METHOD1(SendPluginUMA, void(MissingPluginReporter::PluginType));
|
| + static void ExpectPluginType(
|
| + PluginUMAReporter::PluginType expected_plugin_type,
|
| + const std::string& plugin_mime_type,
|
| + const GURL& plugin_src) {
|
| + EXPECT_EQ(expected_plugin_type,
|
| + PluginUMAReporter::GetInstance()->GetPluginType(plugin_mime_type,
|
| + plugin_src));
|
| + }
|
| };
|
|
|
| -TEST(PluginUMATest, WindowsMediaPlayer) {
|
| - MockPluginUMASender* sender_mock = new MockPluginUMASender();
|
| - MissingPluginReporter::GetInstance()->SetUMASender(sender_mock);
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(_))
|
| - .Times(0);
|
| -
|
| - EXPECT_CALL(*sender_mock,
|
| - SendPluginUMA(MissingPluginReporter::WINDOWS_MEDIA_PLAYER))
|
| - .Times(1)
|
| - .RetiresOnSaturation();
|
| - MissingPluginReporter::GetInstance()->ReportPluginMissing(
|
| - "application/x-mplayer2",
|
| - GURL("file://some_file.mov"));
|
| -
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(MissingPluginReporter::OTHER))
|
| - .Times(1)
|
| - .RetiresOnSaturation();
|
| - MissingPluginReporter::GetInstance()->ReportPluginMissing(
|
| - "application/x-mplayer2-some_sufix",
|
| - GURL("file://some_file.mov"));
|
| -
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(MissingPluginReporter::OTHER))
|
| - .Times(1)
|
| - .RetiresOnSaturation();
|
| - MissingPluginReporter::GetInstance()->ReportPluginMissing(
|
| - "some-prefix-application/x-mplayer2",
|
| - GURL("file://some_file.mov"));
|
| +TEST_F(PluginUMATest, WindowsMediaPlayer) {
|
| + ExpectPluginType(PluginUMAReporter::WINDOWS_MEDIA_PLAYER,
|
| + "application/x-mplayer2",
|
| + GURL("file://some_file.mov"));
|
| + ExpectPluginType(PluginUMAReporter::OTHER,
|
| + "application/x-mplayer2-some_sufix",
|
| + GURL("file://some_file.mov"));
|
| + ExpectPluginType(PluginUMAReporter::OTHER,
|
| + "some-prefix-application/x-mplayer2",
|
| + GURL("file://some_file.mov"));
|
| }
|
|
|
| -TEST(PluginUMATest, Silverlight) {
|
| - MockPluginUMASender* sender_mock = new MockPluginUMASender();
|
| - MissingPluginReporter::GetInstance()->SetUMASender(sender_mock);
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(_))
|
| - .Times(0);
|
| -
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(MissingPluginReporter::SILVERLIGHT))
|
| - .Times(1)
|
| - .RetiresOnSaturation();
|
| - MissingPluginReporter::GetInstance()->ReportPluginMissing(
|
| - "application/x-silverlight",
|
| - GURL("aaaa"));
|
| -
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(MissingPluginReporter::SILVERLIGHT))
|
| - .Times(1)
|
| - .RetiresOnSaturation();
|
| - MissingPluginReporter::GetInstance()->ReportPluginMissing(
|
| - "application/x-silverlight-some-sufix",
|
| - GURL("aaaa"));
|
| -
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(MissingPluginReporter::OTHER))
|
| - .Times(1)
|
| - .RetiresOnSaturation();
|
| - MissingPluginReporter::GetInstance()->ReportPluginMissing(
|
| - "some-prefix-application/x-silverlight",
|
| - GURL("aaaa"));
|
| +TEST_F(PluginUMATest, Silverlight) {
|
| + ExpectPluginType(PluginUMAReporter::SILVERLIGHT,
|
| + "application/x-silverlight",
|
| + GURL("aaaa"));
|
| + ExpectPluginType(PluginUMAReporter::SILVERLIGHT,
|
| + "application/x-silverlight-some-sufix",
|
| + GURL("aaaa"));
|
| + ExpectPluginType(PluginUMAReporter::OTHER,
|
| + "some-prefix-application/x-silverlight",
|
| + GURL("aaaa"));
|
| }
|
|
|
| -TEST(PluginUMATest, RealPlayer) {
|
| - MockPluginUMASender* sender_mock = new MockPluginUMASender();
|
| - MissingPluginReporter::GetInstance()->SetUMASender(sender_mock);
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(_))
|
| - .Times(0);
|
| -
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(MissingPluginReporter::REALPLAYER))
|
| - .Times(1)
|
| - .RetiresOnSaturation();
|
| - MissingPluginReporter::GetInstance()->ReportPluginMissing(
|
| - "audio/x-pn-realaudio",
|
| - GURL("some url"));
|
| -
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(MissingPluginReporter::REALPLAYER))
|
| - .Times(1)
|
| - .RetiresOnSaturation();
|
| - MissingPluginReporter::GetInstance()->ReportPluginMissing(
|
| - "audio/x-pn-realaudio-some-sufix",
|
| - GURL("some url"));
|
| -
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(MissingPluginReporter::OTHER))
|
| - .Times(1)
|
| - .RetiresOnSaturation();
|
| - MissingPluginReporter::GetInstance()->ReportPluginMissing(
|
| - "some-prefix-audio/x-pn-realaudio",
|
| - GURL("some url"));
|
| +TEST_F(PluginUMATest, RealPlayer) {
|
| + ExpectPluginType(PluginUMAReporter::REALPLAYER,
|
| + "audio/x-pn-realaudio",
|
| + GURL("some url"));
|
| + ExpectPluginType(PluginUMAReporter::REALPLAYER,
|
| + "audio/x-pn-realaudio-some-sufix",
|
| + GURL("some url"));
|
| + ExpectPluginType(PluginUMAReporter::OTHER,
|
| + "some-prefix-audio/x-pn-realaudio",
|
| + GURL("some url"));
|
| }
|
|
|
| -TEST(PluginUMATest, Java) {
|
| - MockPluginUMASender* sender_mock = new MockPluginUMASender();
|
| - MissingPluginReporter::GetInstance()->SetUMASender(sender_mock);
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(_))
|
| - .Times(0);
|
| -
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(MissingPluginReporter::JAVA))
|
| - .Times(1)
|
| - .RetiresOnSaturation();
|
| - MissingPluginReporter::GetInstance()->ReportPluginMissing(
|
| - "application/x-java-applet",
|
| - GURL("some url"));
|
| -
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(MissingPluginReporter::JAVA))
|
| - .Times(1)
|
| - .RetiresOnSaturation();
|
| - MissingPluginReporter::GetInstance()->ReportPluginMissing(
|
| - "application/x-java-applet-some-sufix",
|
| - GURL("some url"));
|
| -
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(MissingPluginReporter::JAVA))
|
| - .Times(1)
|
| - .RetiresOnSaturation();
|
| - MissingPluginReporter::GetInstance()->ReportPluginMissing(
|
| - "some-prefix-application/x-java-applet-sufix",
|
| - GURL("some url"));
|
| +TEST_F(PluginUMATest, Java) {
|
| + ExpectPluginType(PluginUMAReporter::JAVA,
|
| + "application/x-java-applet",
|
| + GURL("some url"));
|
| + ExpectPluginType(PluginUMAReporter::JAVA,
|
| + "application/x-java-applet-some-sufix",
|
| + GURL("some url"));
|
| + ExpectPluginType(PluginUMAReporter::JAVA,
|
| + "some-prefix-application/x-java-applet-sufix",
|
| + GURL("some url"));
|
| }
|
|
|
| -TEST(PluginUMATest, QuickTime) {
|
| - MockPluginUMASender* sender_mock = new MockPluginUMASender();
|
| - MissingPluginReporter::GetInstance()->SetUMASender(sender_mock);
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(_))
|
| - .Times(0);
|
| -
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(MissingPluginReporter::QUICKTIME))
|
| - .Times(1)
|
| - .RetiresOnSaturation();
|
| - MissingPluginReporter::GetInstance()->ReportPluginMissing(
|
| - "video/quicktime",
|
| - GURL("some url"));
|
| -
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(MissingPluginReporter::OTHER))
|
| - .Times(1)
|
| - .RetiresOnSaturation();
|
| - MissingPluginReporter::GetInstance()->ReportPluginMissing(
|
| - "video/quicktime-sufix",
|
| - GURL("some url"));
|
| -
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(MissingPluginReporter::OTHER))
|
| - .Times(1)
|
| - .RetiresOnSaturation();
|
| - MissingPluginReporter::GetInstance()->ReportPluginMissing(
|
| - "prefix-video/quicktime",
|
| - GURL("some url"));
|
| +TEST_F(PluginUMATest, QuickTime) {
|
| + ExpectPluginType(PluginUMAReporter::QUICKTIME,
|
| + "video/quicktime",
|
| + GURL("some url"));
|
| + ExpectPluginType(PluginUMAReporter::OTHER,
|
| + "video/quicktime-sufix",
|
| + GURL("some url"));
|
| + ExpectPluginType(PluginUMAReporter::OTHER,
|
| + "prefix-video/quicktime",
|
| + GURL("some url"));
|
| }
|
|
|
| -TEST(PluginUMATest, BySrcExtension) {
|
| - MockPluginUMASender* sender_mock = new MockPluginUMASender();
|
| - MissingPluginReporter::GetInstance()->SetUMASender(sender_mock);
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(_))
|
| - .Times(0);
|
| -
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(MissingPluginReporter::QUICKTIME))
|
| - .Times(1)
|
| - .RetiresOnSaturation();
|
| - MissingPluginReporter::GetInstance()->ReportPluginMissing(
|
| - "",
|
| - GURL("file://file.mov"));
|
| +TEST_F(PluginUMATest, BySrcExtension) {
|
| + ExpectPluginType(PluginUMAReporter::QUICKTIME,
|
| + "",
|
| + GURL("file://file.mov"));
|
|
|
| // When plugin's mime type is given, we don't check extension.
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(MissingPluginReporter::OTHER))
|
| - .Times(1)
|
| - .RetiresOnSaturation();
|
| - MissingPluginReporter::GetInstance()->ReportPluginMissing(
|
| - "unknown-plugin",
|
| - GURL("http://file.mov"));
|
| -
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(MissingPluginReporter::OTHER))
|
| - .Times(1)
|
| - .RetiresOnSaturation();
|
| - MissingPluginReporter::GetInstance()->ReportPluginMissing(
|
| - "",
|
| - GURL("http://file.unknown_extension"));
|
| -
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(MissingPluginReporter::QUICKTIME))
|
| - .Times(1)
|
| - .RetiresOnSaturation();
|
| - MissingPluginReporter::GetInstance()->ReportPluginMissing(
|
| - "",
|
| - GURL("http://aaa/file.mov?x=aaaa&y=b#c"));
|
| -
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(MissingPluginReporter::QUICKTIME))
|
| - .Times(1)
|
| - .RetiresOnSaturation();
|
| - MissingPluginReporter::GetInstance()->ReportPluginMissing(
|
| - "",
|
| - GURL("http://file.mov?x=aaaa&y=b#c"));
|
| -
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(MissingPluginReporter::OTHER))
|
| - .Times(1)
|
| - .RetiresOnSaturation();
|
| - MissingPluginReporter::GetInstance()->ReportPluginMissing(
|
| - "",
|
| - GURL("http://"));
|
| -
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(MissingPluginReporter::OTHER))
|
| - .Times(1)
|
| - .RetiresOnSaturation();
|
| - MissingPluginReporter::GetInstance()->ReportPluginMissing(
|
| - "",
|
| - GURL("mov"));
|
| + ExpectPluginType(PluginUMAReporter::OTHER,
|
| + "unknown-plugin",
|
| + GURL("http://file.mov"));
|
| +
|
| + ExpectPluginType(PluginUMAReporter::OTHER,
|
| + "",
|
| + GURL("http://file.unknown_extension"));
|
| + ExpectPluginType(PluginUMAReporter::QUICKTIME,
|
| + "",
|
| + GURL("http://aaa/file.mov?x=aaaa&y=b#c"));
|
| + ExpectPluginType(PluginUMAReporter::QUICKTIME,
|
| + "",
|
| + GURL("http://file.mov?x=aaaa&y=b#c"));
|
| + ExpectPluginType(PluginUMAReporter::OTHER,
|
| + "",
|
| + GURL("http://"));
|
| + ExpectPluginType(PluginUMAReporter::OTHER,
|
| + "",
|
| + GURL("mov"));
|
| }
|
|
|
| -TEST(PluginUMATest, CaseSensitivity) {
|
| - MockPluginUMASender* sender_mock = new MockPluginUMASender();
|
| - MissingPluginReporter::GetInstance()->SetUMASender(sender_mock);
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(_))
|
| - .Times(0);
|
| -
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(MissingPluginReporter::QUICKTIME))
|
| - .Times(1)
|
| - .RetiresOnSaturation();
|
| - MissingPluginReporter::GetInstance()->ReportPluginMissing(
|
| - "video/QUICKTIME",
|
| - GURL("http://file.aaa"));
|
| -
|
| - EXPECT_CALL(*sender_mock, SendPluginUMA(MissingPluginReporter::QUICKTIME))
|
| - .Times(1)
|
| - .RetiresOnSaturation();
|
| - MissingPluginReporter::GetInstance()->ReportPluginMissing(
|
| - "",
|
| - GURL("http://file.MoV"));
|
| +TEST_F(PluginUMATest, CaseSensitivity) {
|
| + ExpectPluginType(PluginUMAReporter::QUICKTIME,
|
| + "video/QUICKTIME",
|
| + GURL("http://file.aaa"));
|
| + ExpectPluginType(PluginUMAReporter::QUICKTIME,
|
| + "",
|
| + GURL("http://file.MoV"));
|
| }
|
| -
|
|
|