| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <gtest/gtest.h> | 5 #include <gtest/gtest.h> |
| 6 | 6 |
| 7 #include "chrome/renderer/plugins/plugin_uma.h" | 7 #include "chrome/renderer/plugins/plugin_uma.h" |
| 8 | 8 |
| 9 class PluginUMATest : public testing::Test { | 9 class PluginUMATest : public testing::Test { |
| 10 public: | 10 public: |
| 11 static void ExpectPluginType( | 11 static void ExpectPluginType( |
| 12 PluginUMAReporter::PluginType expected_plugin_type, | 12 PluginUMAReporter::PluginType expected_plugin_type, |
| 13 const std::string& plugin_mime_type, | 13 const std::string& plugin_mime_type, |
| 14 const GURL& plugin_src) { | 14 const GURL& plugin_src) { |
| 15 EXPECT_EQ(expected_plugin_type, | 15 EXPECT_EQ(expected_plugin_type, |
| 16 PluginUMAReporter::GetInstance()->GetPluginType(plugin_mime_type, | 16 PluginUMAReporter::GetInstance()->GetPluginType(plugin_mime_type, |
| 17 plugin_src)); | 17 plugin_src)); |
| 18 } | 18 } |
| 19 }; | 19 }; |
| 20 | 20 |
| 21 TEST_F(PluginUMATest, WindowsMediaPlayer) { | 21 TEST_F(PluginUMATest, WindowsMediaPlayer) { |
| 22 ExpectPluginType(PluginUMAReporter::WINDOWS_MEDIA_PLAYER, | 22 ExpectPluginType(PluginUMAReporter::WINDOWS_MEDIA_PLAYER, |
| 23 "application/x-mplayer2", | 23 "application/x-mplayer2", |
| 24 GURL("file://some_file.mov")); | 24 GURL("file://some_file.mov")); |
| 25 ExpectPluginType(PluginUMAReporter::OTHER, | 25 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_MIMETYPE, |
| 26 "application/x-mplayer2-some_sufix", | 26 "application/x-mplayer2-some_sufix", |
| 27 GURL("file://some_file.mov")); | 27 GURL("file://some_file.mov")); |
| 28 ExpectPluginType(PluginUMAReporter::OTHER, | 28 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_MIMETYPE, |
| 29 "some-prefix-application/x-mplayer2", | 29 "some-prefix-application/x-mplayer2", |
| 30 GURL("file://some_file.mov")); | 30 GURL("file://some_file.mov")); |
| 31 } | 31 } |
| 32 | 32 |
| 33 TEST_F(PluginUMATest, Silverlight) { | 33 TEST_F(PluginUMATest, Silverlight) { |
| 34 ExpectPluginType(PluginUMAReporter::SILVERLIGHT, | 34 ExpectPluginType(PluginUMAReporter::SILVERLIGHT, |
| 35 "application/x-silverlight", | 35 "application/x-silverlight", |
| 36 GURL("aaaa")); | 36 GURL("aaaa")); |
| 37 ExpectPluginType(PluginUMAReporter::SILVERLIGHT, | 37 ExpectPluginType(PluginUMAReporter::SILVERLIGHT, |
| 38 "application/x-silverlight-some-sufix", | 38 "application/x-silverlight-some-sufix", |
| 39 GURL("aaaa")); | 39 GURL("aaaa")); |
| 40 ExpectPluginType(PluginUMAReporter::OTHER, | 40 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_MIMETYPE, |
| 41 "some-prefix-application/x-silverlight", | 41 "some-prefix-application/x-silverlight", |
| 42 GURL("aaaa")); | 42 GURL("aaaa")); |
| 43 } | 43 } |
| 44 | 44 |
| 45 TEST_F(PluginUMATest, RealPlayer) { | 45 TEST_F(PluginUMATest, RealPlayer) { |
| 46 ExpectPluginType(PluginUMAReporter::REALPLAYER, | 46 ExpectPluginType(PluginUMAReporter::REALPLAYER, |
| 47 "audio/x-pn-realaudio", | 47 "audio/x-pn-realaudio", |
| 48 GURL("some url")); | 48 GURL("some url")); |
| 49 ExpectPluginType(PluginUMAReporter::REALPLAYER, | 49 ExpectPluginType(PluginUMAReporter::REALPLAYER, |
| 50 "audio/x-pn-realaudio-some-sufix", | 50 "audio/x-pn-realaudio-some-sufix", |
| 51 GURL("some url")); | 51 GURL("some url")); |
| 52 ExpectPluginType(PluginUMAReporter::OTHER, | 52 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_MIMETYPE, |
| 53 "some-prefix-audio/x-pn-realaudio", | 53 "some-prefix-audio/x-pn-realaudio", |
| 54 GURL("some url")); | 54 GURL("some url")); |
| 55 } | 55 } |
| 56 | 56 |
| 57 TEST_F(PluginUMATest, Java) { | 57 TEST_F(PluginUMATest, Java) { |
| 58 ExpectPluginType(PluginUMAReporter::JAVA, | 58 ExpectPluginType(PluginUMAReporter::JAVA, |
| 59 "application/x-java-applet", | 59 "application/x-java-applet", |
| 60 GURL("some url")); | 60 GURL("some url")); |
| 61 ExpectPluginType(PluginUMAReporter::JAVA, | 61 ExpectPluginType(PluginUMAReporter::JAVA, |
| 62 "application/x-java-applet-some-sufix", | 62 "application/x-java-applet-some-sufix", |
| 63 GURL("some url")); | 63 GURL("some url")); |
| 64 ExpectPluginType(PluginUMAReporter::JAVA, | 64 ExpectPluginType(PluginUMAReporter::JAVA, |
| 65 "some-prefix-application/x-java-applet-sufix", | 65 "some-prefix-application/x-java-applet-sufix", |
| 66 GURL("some url")); | 66 GURL("some url")); |
| 67 } | 67 } |
| 68 | 68 |
| 69 TEST_F(PluginUMATest, QuickTime) { | 69 TEST_F(PluginUMATest, QuickTime) { |
| 70 ExpectPluginType(PluginUMAReporter::QUICKTIME, | 70 ExpectPluginType(PluginUMAReporter::QUICKTIME, |
| 71 "video/quicktime", | 71 "video/quicktime", |
| 72 GURL("some url")); | 72 GURL("some url")); |
| 73 ExpectPluginType(PluginUMAReporter::OTHER, | 73 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_MIMETYPE, |
| 74 "video/quicktime-sufix", | 74 "video/quicktime-sufix", |
| 75 GURL("some url")); | 75 GURL("some url")); |
| 76 ExpectPluginType(PluginUMAReporter::OTHER, | 76 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_MIMETYPE, |
| 77 "prefix-video/quicktime", | 77 "prefix-video/quicktime", |
| 78 GURL("some url")); | 78 GURL("some url")); |
| 79 } | 79 } |
| 80 | 80 |
| 81 TEST_F(PluginUMATest, BrowserPlugin) { |
| 82 ExpectPluginType(PluginUMAReporter::BROWSER_PLUGIN, |
| 83 "application/browser-plugin", |
| 84 GURL("some url")); |
| 85 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_MIMETYPE, |
| 86 "application/browser-plugin-sufix", |
| 87 GURL("some url")); |
| 88 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_MIMETYPE, |
| 89 "prefix-application/browser-plugin", |
| 90 GURL("some url")); |
| 91 } |
| 92 |
| 93 TEST_F(PluginUMATest, ShockwaveFlash) { |
| 94 ExpectPluginType(PluginUMAReporter::SHOCKWAVE_FLASH, |
| 95 "application/x-shockwave-flash", |
| 96 GURL("some url")); |
| 97 ExpectPluginType(PluginUMAReporter::SHOCKWAVE_FLASH, |
| 98 "application/futuresplash", |
| 99 GURL("some url")); |
| 100 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_MIMETYPE, |
| 101 "application/x-futuresplash", |
| 102 GURL("some url")); |
| 103 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_MIMETYPE, |
| 104 "application/shockwave-flash", |
| 105 GURL("some url")); |
| 106 } |
| 107 |
| 108 TEST_F(PluginUMATest, WidevineCdm) { |
| 109 ExpectPluginType(PluginUMAReporter::WIDEVINE_CDM, |
| 110 "application/x-ppapi-widevine-cdm", |
| 111 GURL("some url")); |
| 112 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_MIMETYPE, |
| 113 "application/x-ppapi-widevine-cdm-sufix", |
| 114 GURL("some url")); |
| 115 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_MIMETYPE, |
| 116 "prefix-application/x-ppapi-widevine-cdm", |
| 117 GURL("some url")); |
| 118 } |
| 119 |
| 81 TEST_F(PluginUMATest, BySrcExtension) { | 120 TEST_F(PluginUMATest, BySrcExtension) { |
| 82 ExpectPluginType(PluginUMAReporter::QUICKTIME, | 121 ExpectPluginType(PluginUMAReporter::QUICKTIME, |
| 83 "", | 122 "", |
| 84 GURL("file://file.mov")); | 123 GURL("file://file.mov")); |
| 85 | 124 |
| 86 // When plugin's mime type is given, we don't check extension. | 125 // When plugin's mime type is given, we don't check extension. |
| 87 ExpectPluginType(PluginUMAReporter::OTHER, | 126 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_MIMETYPE, |
| 88 "unknown-plugin", | 127 "unknown-plugin", |
| 89 GURL("http://file.mov")); | 128 GURL("http://file.mov")); |
| 90 | 129 |
| 91 ExpectPluginType(PluginUMAReporter::OTHER, | 130 ExpectPluginType(PluginUMAReporter::WINDOWS_MEDIA_PLAYER, |
| 92 "", | 131 "", |
| 93 GURL("http://file.unknown_extension")); | 132 GURL("file://file.asx")); |
| 133 ExpectPluginType(PluginUMAReporter::REALPLAYER, |
| 134 "", |
| 135 GURL("file://file.rm")); |
| 94 ExpectPluginType(PluginUMAReporter::QUICKTIME, | 136 ExpectPluginType(PluginUMAReporter::QUICKTIME, |
| 95 "", | 137 "", |
| 96 GURL("http://aaa/file.mov?x=aaaa&y=b#c")); | 138 GURL("http://aaa/file.mov?x=aaaa&y=b#c")); |
| 97 ExpectPluginType(PluginUMAReporter::QUICKTIME, | 139 ExpectPluginType(PluginUMAReporter::QUICKTIME, |
| 98 "", | 140 "", |
| 99 GURL("http://file.mov?x=aaaa&y=b#c")); | 141 GURL("http://file.mov?x=aaaa&y=b#c")); |
| 100 ExpectPluginType(PluginUMAReporter::OTHER, | 142 ExpectPluginType(PluginUMAReporter::SHOCKWAVE_FLASH, |
| 143 "", |
| 144 GURL("http://file.swf?x=aaaa&y=b#c")); |
| 145 ExpectPluginType(PluginUMAReporter::SHOCKWAVE_FLASH, |
| 146 "", |
| 147 GURL("http://file.spl?x=aaaa&y=b#c")); |
| 148 |
| 149 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_EXTENSION, |
| 150 "", |
| 151 GURL("http://file.unknown_extension")); |
| 152 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_EXTENSION, |
| 101 "", | 153 "", |
| 102 GURL("http://")); | 154 GURL("http://")); |
| 103 ExpectPluginType(PluginUMAReporter::OTHER, | 155 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_EXTENSION, |
| 104 "", | 156 "", |
| 105 GURL("mov")); | 157 GURL("mov")); |
| 106 } | 158 } |
| 107 | 159 |
| 108 TEST_F(PluginUMATest, CaseSensitivity) { | 160 TEST_F(PluginUMATest, CaseSensitivity) { |
| 109 ExpectPluginType(PluginUMAReporter::QUICKTIME, | 161 ExpectPluginType(PluginUMAReporter::QUICKTIME, |
| 110 "video/QUICKTIME", | 162 "video/QUICKTIME", |
| 111 GURL("http://file.aaa")); | 163 GURL("http://file.aaa")); |
| 112 ExpectPluginType(PluginUMAReporter::QUICKTIME, | 164 ExpectPluginType(PluginUMAReporter::QUICKTIME, |
| 113 "", | 165 "", |
| 114 GURL("http://file.MoV")); | 166 GURL("http://file.MoV")); |
| 115 } | 167 } |
| OLD | NEW |