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 |