| OLD | NEW |
| (Empty) |
| 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 | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include <gtest/gtest.h> | |
| 6 | |
| 7 #include "chrome/renderer/plugins/plugin_uma.h" | |
| 8 | |
| 9 class PluginUMATest : public testing::Test { | |
| 10 public: | |
| 11 static void ExpectPluginType( | |
| 12 PluginUMAReporter::PluginType expected_plugin_type, | |
| 13 const std::string& plugin_mime_type, | |
| 14 const GURL& plugin_src) { | |
| 15 EXPECT_EQ(expected_plugin_type, | |
| 16 PluginUMAReporter::GetInstance()->GetPluginType(plugin_mime_type, | |
| 17 plugin_src)); | |
| 18 } | |
| 19 }; | |
| 20 | |
| 21 TEST_F(PluginUMATest, WindowsMediaPlayer) { | |
| 22 ExpectPluginType(PluginUMAReporter::WINDOWS_MEDIA_PLAYER, | |
| 23 "application/x-mplayer2", | |
| 24 GURL("file://some_file.mov")); | |
| 25 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_MIMETYPE, | |
| 26 "application/x-mplayer2-some_sufix", | |
| 27 GURL("file://some_file.mov")); | |
| 28 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_MIMETYPE, | |
| 29 "some-prefix-application/x-mplayer2", | |
| 30 GURL("file://some_file.mov")); | |
| 31 } | |
| 32 | |
| 33 TEST_F(PluginUMATest, Silverlight) { | |
| 34 ExpectPluginType(PluginUMAReporter::SILVERLIGHT, | |
| 35 "application/x-silverlight", | |
| 36 GURL("aaaa")); | |
| 37 ExpectPluginType(PluginUMAReporter::SILVERLIGHT, | |
| 38 "application/x-silverlight-some-sufix", | |
| 39 GURL("aaaa")); | |
| 40 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_MIMETYPE, | |
| 41 "some-prefix-application/x-silverlight", | |
| 42 GURL("aaaa")); | |
| 43 } | |
| 44 | |
| 45 TEST_F(PluginUMATest, RealPlayer) { | |
| 46 ExpectPluginType(PluginUMAReporter::REALPLAYER, | |
| 47 "audio/x-pn-realaudio", | |
| 48 GURL("some url")); | |
| 49 ExpectPluginType(PluginUMAReporter::REALPLAYER, | |
| 50 "audio/x-pn-realaudio-some-sufix", | |
| 51 GURL("some url")); | |
| 52 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_MIMETYPE, | |
| 53 "some-prefix-audio/x-pn-realaudio", | |
| 54 GURL("some url")); | |
| 55 } | |
| 56 | |
| 57 TEST_F(PluginUMATest, Java) { | |
| 58 ExpectPluginType(PluginUMAReporter::JAVA, | |
| 59 "application/x-java-applet", | |
| 60 GURL("some url")); | |
| 61 ExpectPluginType(PluginUMAReporter::JAVA, | |
| 62 "application/x-java-applet-some-sufix", | |
| 63 GURL("some url")); | |
| 64 ExpectPluginType(PluginUMAReporter::JAVA, | |
| 65 "some-prefix-application/x-java-applet-sufix", | |
| 66 GURL("some url")); | |
| 67 } | |
| 68 | |
| 69 TEST_F(PluginUMATest, QuickTime) { | |
| 70 ExpectPluginType(PluginUMAReporter::QUICKTIME, | |
| 71 "video/quicktime", | |
| 72 GURL("some url")); | |
| 73 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_MIMETYPE, | |
| 74 "video/quicktime-sufix", | |
| 75 GURL("some url")); | |
| 76 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_MIMETYPE, | |
| 77 "prefix-video/quicktime", | |
| 78 GURL("some url")); | |
| 79 } | |
| 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 #if defined(ENABLE_PEPPER_CDMS) | |
| 110 ExpectPluginType(PluginUMAReporter::WIDEVINE_CDM, | |
| 111 #else | |
| 112 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_MIMETYPE, | |
| 113 #endif | |
| 114 "application/x-ppapi-widevine-cdm", | |
| 115 GURL("some url")); | |
| 116 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_MIMETYPE, | |
| 117 "application/x-ppapi-widevine-cdm-sufix", | |
| 118 GURL("some url")); | |
| 119 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_MIMETYPE, | |
| 120 "prefix-application/x-ppapi-widevine-cdm", | |
| 121 GURL("some url")); | |
| 122 } | |
| 123 | |
| 124 TEST_F(PluginUMATest, BySrcExtension) { | |
| 125 ExpectPluginType( | |
| 126 PluginUMAReporter::QUICKTIME, std::string(), GURL("file://file.mov")); | |
| 127 | |
| 128 // When plugin's mime type is given, we don't check extension. | |
| 129 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_MIMETYPE, | |
| 130 "unknown-plugin", | |
| 131 GURL("http://file.mov")); | |
| 132 | |
| 133 ExpectPluginType(PluginUMAReporter::WINDOWS_MEDIA_PLAYER, | |
| 134 std::string(), | |
| 135 GURL("file://file.asx")); | |
| 136 ExpectPluginType( | |
| 137 PluginUMAReporter::REALPLAYER, std::string(), GURL("file://file.rm")); | |
| 138 ExpectPluginType(PluginUMAReporter::QUICKTIME, | |
| 139 std::string(), | |
| 140 GURL("http://aaa/file.mov?x=aaaa&y=b#c")); | |
| 141 ExpectPluginType(PluginUMAReporter::QUICKTIME, | |
| 142 std::string(), | |
| 143 GURL("http://file.mov?x=aaaa&y=b#c")); | |
| 144 ExpectPluginType(PluginUMAReporter::SHOCKWAVE_FLASH, | |
| 145 std::string(), | |
| 146 GURL("http://file.swf?x=aaaa&y=b#c")); | |
| 147 ExpectPluginType(PluginUMAReporter::SHOCKWAVE_FLASH, | |
| 148 std::string(), | |
| 149 GURL("http://file.spl?x=aaaa&y=b#c")); | |
| 150 | |
| 151 ExpectPluginType(PluginUMAReporter::UNSUPPORTED_EXTENSION, | |
| 152 std::string(), | |
| 153 GURL("http://file.unknown_extension")); | |
| 154 ExpectPluginType( | |
| 155 PluginUMAReporter::UNSUPPORTED_EXTENSION, std::string(), GURL("http://")); | |
| 156 ExpectPluginType( | |
| 157 PluginUMAReporter::UNSUPPORTED_EXTENSION, std::string(), GURL("mov")); | |
| 158 } | |
| 159 | |
| 160 TEST_F(PluginUMATest, CaseSensitivity) { | |
| 161 ExpectPluginType(PluginUMAReporter::QUICKTIME, | |
| 162 "video/QUICKTIME", | |
| 163 GURL("http://file.aaa")); | |
| 164 ExpectPluginType( | |
| 165 PluginUMAReporter::QUICKTIME, std::string(), GURL("http://file.MoV")); | |
| 166 } | |
| OLD | NEW |