Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(270)

Side by Side Diff: content/browser/media/media_canplaytype_browsertest.cc

Issue 186973003: Add browser tests for canPlayType() results (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressing comments Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | content/content_tests.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2014 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 <string>
6
7 #include "content/browser/media/media_browsertest.h"
8 #include "content/public/test/browser_test_utils.h"
9 #include "content/shell/browser/shell.h"
10
11 const char* kProbablySupported = "probably";
12 const char* kMaybeSupported = "maybe";
13 const char* kNotSupported = "";
14 #if defined(USE_PROPRIETARY_CODECS)
ddorwin 2014/03/18 17:58:02 nit: Add an empty line to make this more readable.
amogh.bihani 2014/03/19 13:22:17 Done.
15 const char* kProprietaryProbablySupported = "probably";
16 const char* kProprietaryMaybeSupported = "maybe";
17 const char* kProprietaryProbablyElseMaybeSupported = "probably";
18 #else
19 const char* kProprietaryProbablySupported = "";
20 const char* kProprietaryMaybeSupported = "";
21 const char* kProprietaryProbablyElseMaybeSupported = "maybe";
22 #endif // USE_PROPRIETARY_CODECS
23 // TODO(amogh.bihani): Change the opus tests when opus is supported on
ddorwin 2014/03/18 17:58:02 nit: Add an empty line to make this more readable
amogh.bihani 2014/03/19 13:22:17 Done.
24 // Android. (http://crbug.com/318436).
25 #if !defined(OS_ANDROID)
26 const char* kTheoraProbablySupported = "probably";
27 const char* kOpusProbablySupported = "probably";
28 const char* kTheoraMaybeSupported = "maybe";
ddorwin 2014/03/18 17:58:02 keep the Theora's together.
amogh.bihani 2014/03/19 13:22:17 Done.
29 #if defined(USE_PROPRIETARY_CODECS)
30 const char* kTheoraAndProprietaryProbablyElseMaybeSupported = "probably";
31 const char* kTheoraAndProprietaryProbablySupported = "probably";
32 const char* kOpusAndProprietaryProbablySupported = "probably";
33 #else
34 const char* kTheoraAndProprietaryProbablySupported = "";
35 const char* kOpusAndProprietaryProbablySupported = "";
36 const char* kTheoraAndProprietaryProbablyElseMaybeSupported = "maybe";
ddorwin 2014/03/18 17:58:02 This is a different order than above.
amogh.bihani 2014/03/19 13:22:17 Done.
37 #endif // USE_PROPRIETARY_CODECS
38 #else
39 const char* kTheoraProbablySupported = "";
40 const char* kOpusProbablySupported = "";
41 const char* kTheoraMaybeSupported = "";
42 const char* kOpusAndProprietaryProbablySupported = "";
43 const char* kTheoraAndProprietaryProbablySupported = "";
44 const char* kTheoraAndProprietaryProbablyElseMaybeSupported = "";
ddorwin 2014/03/18 17:58:02 Order
amogh.bihani 2014/03/19 13:22:17 Done.
45 #endif // !OS_ANDROID
46
47 namespace content {
48
49 class MediaMimeCanPlayTypeTest : public MediaBrowserTest {
50 protected:
51 MediaMimeCanPlayTypeTest() { }
52 ~MediaMimeCanPlayTypeTest() { }
53
54 std::string CanPlayTypeTest(const std::string& commandString) {
55 std::string command("document.createElement('video').canPlayType(");
56 command.append(commandString);
57 command.append(")");
58
59 std::string result;
60 EXPECT_TRUE(ExecuteScriptAndExtractString(
61 test_shell_->web_contents(),
62 "window.domAutomationController.send(" + command + ");",
63 &result));
64 return result;
65 }
66
67 void SetUpShell() {
ddorwin 2014/03/18 17:58:02 No, if you use SetUp(), it will automatically be c
amogh.bihani 2014/03/19 13:22:17 Yes, I had tried that but that still gives runtime
ddorwin 2014/03/19 23:28:14 Somehow, a Shell must have already been created ([
68 test_shell_ = CreateBrowser();
69 }
70
71 void TearDownShell() {
72 test_shell_->Close();
73 }
74 private:
75 Shell* test_shell_;
76
77 DISALLOW_COPY_AND_ASSIGN(MediaMimeCanPlayTypeTest);
78 };
79
80 IN_PROC_BROWSER_TEST_F(MediaMimeCanPlayTypeTest, CodecSupportTest_wav) {
81 SetUpShell();
82 EXPECT_EQ(kMaybeSupported, CanPlayTypeTest("'audio/wav'"));
83 EXPECT_EQ(kProbablySupported, CanPlayTypeTest("'audio/wav; codecs=\"1\"'"));
84 EXPECT_EQ(kNotSupported, CanPlayTypeTest("'audio/wav; codecs=\"vorbis\"'"));
85 EXPECT_EQ(kNotSupported, CanPlayTypeTest("'audio/wav; codecs=\"theora\"'"));
86 EXPECT_EQ(kNotSupported, CanPlayTypeTest("'audio/wav; codecs=\"vp8\"'"));
87 EXPECT_EQ(kNotSupported, CanPlayTypeTest("'audio/wav; codecs=\"vp9\"'"));
88 EXPECT_EQ(kNotSupported, CanPlayTypeTest("'audio/wav; codecs=\"opus\"'"));
89 EXPECT_EQ(kNotSupported, CanPlayTypeTest("'audio/wav; codecs=\"avc3\"'"));
90 EXPECT_EQ(kNotSupported,
91 CanPlayTypeTest("'audio/wav; codecs=\"mp4a.40.5\"'"));
92 EXPECT_EQ(kNotSupported,
93 CanPlayTypeTest("'audio/wav; codecs=\"avc1.4D401E\"'"));
94 EXPECT_EQ(kNotSupported, CanPlayTypeTest("'audio/wav; codecs=\"garbage\"'"));
95 TearDownShell();
96 }
97
98 IN_PROC_BROWSER_TEST_F(MediaMimeCanPlayTypeTest, CodecSupportTest_webm) {
99 SetUpShell();
100 // video/webm
101 EXPECT_EQ(kMaybeSupported, CanPlayTypeTest("'video/webm'"));
102 EXPECT_EQ(kProbablySupported,
103 CanPlayTypeTest("'video/webm; codecs=\"vp8\"'"));
104 EXPECT_EQ(kProbablySupported,
105 CanPlayTypeTest("'video/webm; codecs=\"vp8, vorbis\"'"));
106 EXPECT_EQ(kOpusProbablySupported,
107 CanPlayTypeTest("'video/webm; codecs=\"vp8, opus\"'"));
108 EXPECT_EQ(kProbablySupported,
109 CanPlayTypeTest("'video/webm; codecs=\"vp9\"'"));
110 EXPECT_EQ(kProbablySupported,
111 CanPlayTypeTest("'video/webm; codecs=\"vp9, vorbis\"'"));
112 EXPECT_EQ(kOpusProbablySupported,
113 CanPlayTypeTest("'video/webm; codecs=\"vp9, opus\"'"));
114 EXPECT_EQ(kNotSupported, CanPlayTypeTest("'video/webm; codecs=\"vp9, 1\"'"));
115 EXPECT_EQ(kNotSupported,
116 CanPlayTypeTest("'video/webm; codecs=\"vp8, mp4a.40.2\"'"));
117 EXPECT_EQ(kNotSupported,
118 CanPlayTypeTest("'video/webm; codecs=\"theora\"'"));
119 EXPECT_EQ(kNotSupported, CanPlayTypeTest("'video/webm; codecs=\"1\"'"));
120 EXPECT_EQ(kNotSupported,
121 CanPlayTypeTest("'video/webm; codecs=\"avc1.4D401E\"'"));
122 EXPECT_EQ(kNotSupported,
123 CanPlayTypeTest("'video/webm; codecs=\"mp4a.40.2\"'"));
124 EXPECT_EQ(kNotSupported, CanPlayTypeTest("'video/webm; codecs=\"garbage\"'"));
125 // audio/webm
126 EXPECT_EQ(kMaybeSupported, CanPlayTypeTest("'audio/webm'"));
127 EXPECT_EQ(kProbablySupported,
128 CanPlayTypeTest("'audio/webm; codecs=\"vorbis\"'"));
129 EXPECT_EQ(kOpusProbablySupported,
130 CanPlayTypeTest("'audio/webm; codecs=\"opus\"'"));
131 EXPECT_EQ(kNotSupported, CanPlayTypeTest("'audio/webm; codecs=\"1\"'"));
132 EXPECT_EQ(kNotSupported, CanPlayTypeTest("'audio/webm; codecs=\"vp8\"'"));
133 EXPECT_EQ(kNotSupported, CanPlayTypeTest("'audio/webm; codecs=\"vp9\"'"));
134 EXPECT_EQ(kNotSupported,
135 CanPlayTypeTest("'audio/webm; codecs=\"vp9, opus\"'"));
136 EXPECT_EQ(kNotSupported,
137 CanPlayTypeTest("'audio/webm; codecs=\"vp9, vorbis\"'"));
138 EXPECT_EQ(kNotSupported,
139 CanPlayTypeTest("'audio/webm; codecs=\"avc1.4D401E\"'"));
140 EXPECT_EQ(kNotSupported,
141 CanPlayTypeTest("'audio/webm; codecs=\"mp4a.40.2\"'"));
142 EXPECT_EQ(kNotSupported, CanPlayTypeTest("'audio/webm; codecs=\"garbage\"'"));
143 TearDownShell();
144 }
145
146 IN_PROC_BROWSER_TEST_F(MediaMimeCanPlayTypeTest, CodecSupportTest_ogg) {
147 SetUpShell();
148 // video/ogg
149 EXPECT_EQ(kTheoraMaybeSupported, CanPlayTypeTest("'video/ogg'"));
150 EXPECT_EQ(kTheoraProbablySupported,
151 CanPlayTypeTest("'video/ogg; codecs=\"theora\"'"));
152 EXPECT_EQ(kTheoraProbablySupported,
153 CanPlayTypeTest("'video/ogg; codecs=\"theora, vorbis\"'"));
154 EXPECT_EQ(kTheoraProbablySupported,
155 CanPlayTypeTest("'video/ogg; codecs=\"theora, opus\"'"));
156 EXPECT_EQ(kTheoraProbablySupported,
157 CanPlayTypeTest("'video/ogg; codecs=\"vp8\"'"));
158 EXPECT_EQ(kTheoraAndProprietaryProbablyElseMaybeSupported,
159 CanPlayTypeTest("'video/ogg; codecs=\"avc1\"'"));
160 EXPECT_EQ(kTheoraAndProprietaryProbablyElseMaybeSupported,
161 CanPlayTypeTest("'video/ogg; codecs=\"avc3\"'"));
162 EXPECT_EQ(kTheoraAndProprietaryProbablyElseMaybeSupported,
163 CanPlayTypeTest("'video/ogg; codecs=\"mp4a\"'"));
164 EXPECT_EQ(kTheoraAndProprietaryProbablyElseMaybeSupported,
165 CanPlayTypeTest("'video/ogg; codecs=\"avc1, mp4a\"'"));
166 EXPECT_EQ(kTheoraMaybeSupported,
167 CanPlayTypeTest("'video/ogg; codecs=\"avc1.4D401E\"'"));
168 EXPECT_EQ(kTheoraMaybeSupported,
169 CanPlayTypeTest("'video/ogg; codecs=\"avc3.64001F\"'"));
170 EXPECT_EQ(kTheoraMaybeSupported,
171 CanPlayTypeTest("'video/ogg; codecs=\"mp4a.4.02\"'"));
172 EXPECT_EQ(kTheoraMaybeSupported,
173 CanPlayTypeTest("'video/ogg; codecs=\"avc3.64001F, mp4a.40.2\"'"));
174 EXPECT_EQ(kTheoraMaybeSupported,
175 CanPlayTypeTest("'video/ogg; codecs=\"garbage\"'"));
176 // audio/ogg
177 EXPECT_EQ(kMaybeSupported, CanPlayTypeTest("'audio/ogg'"));
178 EXPECT_EQ(kProbablySupported,
179 CanPlayTypeTest("'audio/ogg; codecs=\"vorbis\"'"));
180 EXPECT_EQ(kTheoraProbablySupported,
181 CanPlayTypeTest("'audio/ogg; codecs=\"theora\"'"));
182 EXPECT_EQ(kProbablySupported,
183 CanPlayTypeTest("'audio/ogg; codecs=\"vp8.0\"'"));
184 EXPECT_EQ(kProbablySupported,
185 CanPlayTypeTest("'audio/ogg; codecs=\"vp9.0\"'"));
186 EXPECT_EQ(kOpusProbablySupported,
187 CanPlayTypeTest("'audio/ogg; codecs=\"opus\"'"));
188 EXPECT_EQ(kProprietaryProbablyElseMaybeSupported,
ddorwin 2014/03/18 17:58:02 OOC, is this something that will be fixed in your
amogh.bihani 2014/03/19 13:22:17 Yes. :)
189 CanPlayTypeTest("'audio/ogg; codecs=\"mp4a\"'"));
190 EXPECT_EQ(kProprietaryProbablyElseMaybeSupported,
191 CanPlayTypeTest("'audio/ogg; codecs=\"avc1\"'"));
192 EXPECT_EQ(kProprietaryProbablyElseMaybeSupported,
193 CanPlayTypeTest("'audio/ogg; codecs=\"avc3\"'"));
194 EXPECT_EQ(kMaybeSupported,
195 CanPlayTypeTest("'audio/ogg; codecs=\"mp4a.40.2\"'"));
196 EXPECT_EQ(kMaybeSupported,
197 CanPlayTypeTest("'audio/ogg; codecs=\"avc1.4D401E\"'"));
198 EXPECT_EQ(kMaybeSupported,
199 CanPlayTypeTest("'audio/ogg; codecs=\"avc3.64001F\"'"));
200 EXPECT_EQ(kMaybeSupported,
201 CanPlayTypeTest("'audio/ogg; codecs=\"garbage\"'"));
202 TearDownShell();
203 }
204
205 IN_PROC_BROWSER_TEST_F(MediaMimeCanPlayTypeTest, CodecSupportTest_mpeg) {
206 SetUpShell();
207 EXPECT_EQ(kNotSupported, CanPlayTypeTest("'video/mp3'"));
208 // video/mp4
209 EXPECT_EQ(kProprietaryMaybeSupported, CanPlayTypeTest("'video/mp4'"));
210 EXPECT_EQ(kProprietaryProbablySupported,
211 CanPlayTypeTest("'video/mp4; codecs=\"avc1\"'"));
212 EXPECT_EQ(kProprietaryProbablySupported,
213 CanPlayTypeTest("'video/mp4; codecs=\"avc3\"'"));
214 EXPECT_EQ(kProprietaryProbablySupported,
215 CanPlayTypeTest("'video/mp4; codecs=\"avc1, mp4a\"'"));
216 EXPECT_EQ(kProprietaryProbablySupported,
217 CanPlayTypeTest("'video/mp4; codecs=\"avc3\"'"));
218 EXPECT_EQ(kProprietaryProbablySupported,
219 CanPlayTypeTest("'video/mp4; codecs=\"avc1, mp4a\"'"));
220 EXPECT_EQ(kProprietaryMaybeSupported,
221 CanPlayTypeTest("'video/mp4; codecs=\"avc1.4D401E\"'"));
222 EXPECT_EQ(kProprietaryMaybeSupported,
223 CanPlayTypeTest("'video/mp4; codecs=\"avc3.64001F\"'"));
224 EXPECT_EQ(kProprietaryMaybeSupported,
225 CanPlayTypeTest("'video/mp4; codecs=\"avc1.4D401E, mp4a.40.2\"'"));
226 EXPECT_EQ(kProprietaryMaybeSupported,
227 CanPlayTypeTest("'video/mp4; codecs=\"avc3.64001F, mp4a.40.5\"'"));
228 EXPECT_EQ(kProprietaryMaybeSupported,
229 CanPlayTypeTest("'video/mp4; codecs=\"garbage\"'"));
230 EXPECT_EQ(kProprietaryProbablySupported,
231 CanPlayTypeTest("'video/mp4; codecs=\"vp8\"'"));
232 EXPECT_EQ(kOpusAndProprietaryProbablySupported,
233 CanPlayTypeTest("'video/mp4; codecs=\"opus\"'"));
234 EXPECT_EQ(kProprietaryProbablySupported,
235 CanPlayTypeTest("'video/mp4; codecs=\"vorbis\"'"));
236 EXPECT_EQ(kTheoraAndProprietaryProbablySupported,
237 CanPlayTypeTest("'video/mp4; codecs=\"theora\"'"));
238 EXPECT_EQ(kOpusAndProprietaryProbablySupported,
239 CanPlayTypeTest("'video/mp4; codecs=\"vp9, opus\"'"));
240 EXPECT_EQ(kTheoraAndProprietaryProbablySupported,
241 CanPlayTypeTest("'video/mp4; codecs=\"theora, vorbis\"'"));
242 EXPECT_EQ(kTheoraAndProprietaryProbablySupported,
243 CanPlayTypeTest("'video/mp4; codecs=\"theora, mp4a\"'"));
244 EXPECT_EQ(kProprietaryProbablySupported,
245 CanPlayTypeTest("'video/mp4; codecs=\"avc1, vorbis\"'"));
246 // audio/mpeg
247 EXPECT_EQ(kProprietaryMaybeSupported, CanPlayTypeTest("'audio/mpeg'"));
248 EXPECT_EQ(kProprietaryProbablySupported,
249 CanPlayTypeTest("'audio/mpeg; codecs=\"mp4a\"'"));
250 EXPECT_EQ(kProprietaryProbablySupported,
251 CanPlayTypeTest("'audio/mpeg; codecs=\"avc1\"'"));
252 EXPECT_EQ(kOpusAndProprietaryProbablySupported,
253 CanPlayTypeTest("'audio/mpeg; codecs=\"opus\"'"));
254 EXPECT_EQ(kProprietaryProbablySupported,
255 CanPlayTypeTest("'audio/mpeg; codecs=\"vorbis\"'"));
256 EXPECT_EQ(kTheoraAndProprietaryProbablySupported,
257 CanPlayTypeTest("'audio/mpeg; codecs=\"theora\"'"));
258 EXPECT_EQ(kProprietaryProbablySupported,
259 CanPlayTypeTest("'audio/mpeg; codecs=\"vp8\"'"));
260 // audio/mp3
261 EXPECT_EQ(kProprietaryMaybeSupported, CanPlayTypeTest("'audio/mp3'"));
262 EXPECT_EQ(kProprietaryProbablySupported,
263 CanPlayTypeTest("'audio/mp3; codecs=\"mp4a\"'"));
264 EXPECT_EQ(kProprietaryProbablySupported,
265 CanPlayTypeTest("'audio/mp3; codecs=\"avc1\"'"));
266 EXPECT_EQ(kOpusAndProprietaryProbablySupported,
267 CanPlayTypeTest("'audio/mp3; codecs=\"opus\"'"));
268 EXPECT_EQ(kProprietaryProbablySupported,
269 CanPlayTypeTest("'audio/mp3; codecs=\"vorbis\"'"));
270 EXPECT_EQ(kTheoraAndProprietaryProbablySupported,
271 CanPlayTypeTest("'audio/mp3; codecs=\"theora\"'"));
272 EXPECT_EQ(kProprietaryProbablySupported,
273 CanPlayTypeTest("'audio/mp3; codecs=\"vp8\"'"));
274 // audio/mp4
275 EXPECT_EQ(kProprietaryMaybeSupported, CanPlayTypeTest("'audio/mp4'"));
276 EXPECT_EQ(kProprietaryProbablySupported,
277 CanPlayTypeTest("'audio/mp4; codecs=\"mp4a\"'"));
278 EXPECT_EQ(kProprietaryMaybeSupported,
279 CanPlayTypeTest("'audio/mp4; codecs=\"mp4a.40.2\"'"));
280 EXPECT_EQ(kProprietaryProbablySupported,
281 CanPlayTypeTest("'audio/mp4; codecs=\"avc1\"'"));
282 EXPECT_EQ(kProprietaryProbablySupported,
283 CanPlayTypeTest("'audio/mp4; codecs=\"avc3\"'"));
284 EXPECT_EQ(kProprietaryMaybeSupported,
285 CanPlayTypeTest("'audio/mp4; codecs=\"avc1.4D401E\"'"));
286 EXPECT_EQ(kOpusAndProprietaryProbablySupported,
287 CanPlayTypeTest("'audio/mp4; codecs=\"opus\"'"));
288 EXPECT_EQ(kProprietaryProbablySupported,
289 CanPlayTypeTest("'audio/mp4; codecs=\"vorbis\"'"));
290 EXPECT_EQ(kTheoraAndProprietaryProbablySupported,
291 CanPlayTypeTest("'audio/mp4; codecs=\"theora\"'"));
292 EXPECT_EQ(kProprietaryProbablySupported,
293 CanPlayTypeTest("'audio/mp4; codecs=\"vp8\"'"));
294 EXPECT_EQ(kOpusAndProprietaryProbablySupported,
295 CanPlayTypeTest("'audio/mp4; codecs=\"vp9, opus\"'"));
296 EXPECT_EQ(kTheoraAndProprietaryProbablySupported,
297 CanPlayTypeTest("'audio/mp4; codecs=\"theora, vorbis\"'"));
298 EXPECT_EQ(kTheoraAndProprietaryProbablySupported,
299 CanPlayTypeTest("'audio/mp4; codecs=\"theora, mp4a\"'"));
300 EXPECT_EQ(kProprietaryProbablySupported,
301 CanPlayTypeTest("'audio/mp4; codecs=\"avc1, vorbis\"'"));
302 TearDownShell();
303 }
304
305 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | content/content_tests.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698