Chromium Code Reviews| 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..abb698674c137486e30b3ebb50c71a3df5889bae 100644 |
| --- a/chrome/renderer/plugins/plugin_uma_unittest.cc |
| +++ b/chrome/renderer/plugins/plugin_uma_unittest.cc |
| @@ -9,227 +9,134 @@ |
| using ::testing::_; |
| -class MockPluginUMASender : public MissingPluginReporter::UMASender { |
| +class MockPluginUMASender : public PluginUMAReporter::UMASender { |
| public: |
| - MOCK_METHOD1(SendPluginUMA, void(MissingPluginReporter::PluginType)); |
| + MOCK_METHOD2(SendPluginUMA, void(PluginUMAReporter::ReportType, |
| + PluginUMAReporter::PluginType)); |
| }; |
| -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")); |
| -} |
| +class PluginUMATest : public testing::Test { |
| + public: |
| + PluginUMATest() : sender_mock_(new MockPluginUMASender()) { |
| + PluginUMAReporter::GetInstance()->SetUMASender(sender_mock_); |
| + EXPECT_CALL(*sender_mock_, SendPluginUMA(_, _)) |
| + .Times(0); |
| + } |
| + |
| + void ExpectUMAReport(PluginUMAReporter::PluginType plugin_type, |
| + const std::string& plugin_mime_type, |
| + const GURL& plugin_src) { |
| + EXPECT_CALL(*sender_mock_, SendPluginUMA(PluginUMAReporter::MISSING_PLUGIN, |
| + plugin_type)) |
| + .Times(1) |
| + .RetiresOnSaturation(); |
| + PluginUMAReporter::GetInstance()->ReportPluginMissing( |
| + plugin_mime_type, plugin_src); |
| + |
| + EXPECT_CALL(*sender_mock_, SendPluginUMA(PluginUMAReporter::DISABLED_PLUGIN, |
|
xhwang
2013/04/03 18:50:45
DISABLED_PLUGIN is tested here!
|
| + plugin_type)) |
| + .Times(1) |
| + .RetiresOnSaturation(); |
| + PluginUMAReporter::GetInstance()->ReportPluginDisabled( |
| + plugin_mime_type, plugin_src); |
| + } |
| + |
| + private: |
| + MockPluginUMASender* sender_mock_; |
| +}; |
| -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, WindowsMediaPlayer) { |
| + ExpectUMAReport(PluginUMAReporter::WINDOWS_MEDIA_PLAYER, |
|
Bernhard Bauer
2013/04/03 19:08:42
Thanks for this cleanup! We could probably go a bi
xhwang
2013/04/04 17:28:38
Done.
|
| + "application/x-mplayer2", |
| + GURL("file://some_file.mov")); |
| + ExpectUMAReport(PluginUMAReporter::OTHER, |
| + "application/x-mplayer2-some_sufix", |
| + GURL("file://some_file.mov")); |
| + ExpectUMAReport(PluginUMAReporter::OTHER, |
| + "some-prefix-application/x-mplayer2", |
| + GURL("file://some_file.mov")); |
| } |
| -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, Silverlight) { |
| + ExpectUMAReport(PluginUMAReporter::SILVERLIGHT, |
| + "application/x-silverlight", |
| + GURL("aaaa")); |
| + ExpectUMAReport(PluginUMAReporter::SILVERLIGHT, |
| + "application/x-silverlight-some-sufix", |
| + GURL("aaaa")); |
| + ExpectUMAReport(PluginUMAReporter::OTHER, |
| + "some-prefix-application/x-silverlight", |
| + GURL("aaaa")); |
| } |
| -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, RealPlayer) { |
| + ExpectUMAReport(PluginUMAReporter::REALPLAYER, |
| + "audio/x-pn-realaudio", |
| + GURL("some url")); |
| + ExpectUMAReport(PluginUMAReporter::REALPLAYER, |
| + "audio/x-pn-realaudio-some-sufix", |
| + GURL("some url")); |
| + ExpectUMAReport(PluginUMAReporter::OTHER, |
| + "some-prefix-audio/x-pn-realaudio", |
| + 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, Java) { |
| + ExpectUMAReport(PluginUMAReporter::JAVA, |
| + "application/x-java-applet", |
| + GURL("some url")); |
| + ExpectUMAReport(PluginUMAReporter::JAVA, |
| + "application/x-java-applet-some-sufix", |
| + GURL("some url")); |
| + ExpectUMAReport(PluginUMAReporter::JAVA, |
| + "some-prefix-application/x-java-applet-sufix", |
| + GURL("some url")); |
| } |
| -TEST(PluginUMATest, BySrcExtension) { |
| - MockPluginUMASender* sender_mock = new MockPluginUMASender(); |
| - MissingPluginReporter::GetInstance()->SetUMASender(sender_mock); |
| - EXPECT_CALL(*sender_mock, SendPluginUMA(_)) |
| - .Times(0); |
| +TEST_F(PluginUMATest, QuickTime) { |
| + ExpectUMAReport(PluginUMAReporter::QUICKTIME, |
| + "video/quicktime", |
| + GURL("some url")); |
| + ExpectUMAReport(PluginUMAReporter::OTHER, |
| + "video/quicktime-sufix", |
| + GURL("some url")); |
| + ExpectUMAReport(PluginUMAReporter::OTHER, |
| + "prefix-video/quicktime", |
| + GURL("some url")); |
| +} |
| - EXPECT_CALL(*sender_mock, SendPluginUMA(MissingPluginReporter::QUICKTIME)) |
| - .Times(1) |
| - .RetiresOnSaturation(); |
| - MissingPluginReporter::GetInstance()->ReportPluginMissing( |
| - "", |
| - GURL("file://file.mov")); |
| +TEST_F(PluginUMATest, BySrcExtension) { |
| + ExpectUMAReport(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")); |
| + ExpectUMAReport(PluginUMAReporter::OTHER, |
| + "unknown-plugin", |
| + GURL("http://file.mov")); |
| + |
| + ExpectUMAReport(PluginUMAReporter::OTHER, |
| + "", |
| + GURL("http://file.unknown_extension")); |
| + ExpectUMAReport(PluginUMAReporter::QUICKTIME, |
| + "", |
| + GURL("http://aaa/file.mov?x=aaaa&y=b#c")); |
| + ExpectUMAReport(PluginUMAReporter::QUICKTIME, |
| + "", |
| + GURL("http://file.mov?x=aaaa&y=b#c")); |
| + ExpectUMAReport(PluginUMAReporter::OTHER, |
| + "", |
| + GURL("http://")); |
| + ExpectUMAReport(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) { |
| + ExpectUMAReport(PluginUMAReporter::QUICKTIME, |
| + "video/QUICKTIME", |
| + GURL("http://file.aaa")); |
| + ExpectUMAReport(PluginUMAReporter::QUICKTIME, |
| + "", |
| + GURL("http://file.MoV")); |
| } |
| - |