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 |