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

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

Issue 27230004: Do not run MSE related tests when MSE is not available. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 2 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "base/command_line.h" 5 #include "base/command_line.h"
6 #include "base/path_service.h" 6 #include "base/path_service.h"
7 #include "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "base/win/windows_version.h" 8 #include "base/win/windows_version.h"
9 #include "content/browser/media/media_browsertest.h" 9 #include "content/browser/media/media_browsertest.h"
10 #include "content/public/common/content_switches.h" 10 #include "content/public/common/content_switches.h"
11 #include "content/public/test/browser_test_utils.h" 11 #include "content/public/test/browser_test_utils.h"
12 #include "content/shell/browser/shell.h" 12 #include "content/shell/browser/shell.h"
13 #include "third_party/WebKit/public/web/WebRuntimeFeatures.h"
13 14
14 // Available key systems. 15 // Available key systems.
15 static const char kClearKeyKeySystem[] = "webkit-org.w3.clearkey"; 16 static const char kClearKeyKeySystem[] = "webkit-org.w3.clearkey";
16 17
17 // Supported media types. 18 // Supported media types.
18 static const char kWebMAudioOnly[] = "audio/webm; codecs=\"vorbis\""; 19 static const char kWebMAudioOnly[] = "audio/webm; codecs=\"vorbis\"";
19 static const char kWebMVideoOnly[] = "video/webm; codecs=\"vp8\""; 20 static const char kWebMVideoOnly[] = "video/webm; codecs=\"vp8\"";
20 static const char kWebMAudioVideo[] = "video/webm; codecs=\"vorbis, vp8\""; 21 static const char kWebMAudioVideo[] = "video/webm; codecs=\"vorbis, vp8\"";
21 22
22 // EME-specific test results and errors. 23 // EME-specific test results and errors.
(...skipping 29 matching lines...) Expand all
52 encrypted_media, media_type, CurrentKeySystem(), CurrentSourceType()); 53 encrypted_media, media_type, CurrentKeySystem(), CurrentSourceType());
53 } 54 }
54 55
55 void TestFrameSizeChange() { 56 void TestFrameSizeChange() {
56 RunEncryptedMediaTest("encrypted_frame_size_change.html", 57 RunEncryptedMediaTest("encrypted_frame_size_change.html",
57 "frame_size_change-av-enc-v.webm", kWebMAudioVideo, 58 "frame_size_change-av-enc-v.webm", kWebMAudioVideo,
58 CurrentKeySystem(), CurrentSourceType(), kEnded); 59 CurrentKeySystem(), CurrentSourceType(), kEnded);
59 } 60 }
60 61
61 void TestConfigChange() { 62 void TestConfigChange() {
63 if (CurrentSourceType() != MSE) {
64 LOG(INFO) << "Skipping test - config change only applies to MSE.";
65 return;
66 }
67
68 // TODO(xhwang): Update this to check for unprefixed MSE API when
69 // http://crbug.com/307107 is fixed.
70 if (!WebKit::WebRuntimeFeatures::isWebKitMediaSourceEnabled()) {
71 LOG(INFO) << "Could not run test - prefixed MSE not supported.";
72 return;
73 }
74
62 std::vector<StringPair> query_params; 75 std::vector<StringPair> query_params;
63 query_params.push_back(std::make_pair("keysystem", CurrentKeySystem())); 76 query_params.push_back(std::make_pair("keysystem", CurrentKeySystem()));
64 query_params.push_back(std::make_pair("runencrypted", "1")); 77 query_params.push_back(std::make_pair("runencrypted", "1"));
65 RunMediaTestPage("mse_config_change.html", &query_params, kEnded, true); 78 RunMediaTestPage("mse_config_change.html", &query_params, kEnded, true);
66 } 79 }
67 80
68 void RunEncryptedMediaTest(const char* html_page, 81 void RunEncryptedMediaTest(const char* html_page,
69 const char* media_file, 82 const char* media_file,
70 const char* media_type, 83 const char* media_type,
71 const char* key_system, 84 const char* key_system,
72 SrcType src_type, 85 SrcType src_type,
73 const char* expectation) { 86 const char* expectation) {
87 // TODO(xhwang): Update this to check for unprefixed MSE API when
88 // http://crbug.com/307107 is fixed.
89 if (src_type == MSE &&
90 !WebKit::WebRuntimeFeatures::isWebKitMediaSourceEnabled()) {
91 LOG(INFO) << "Could not run test - prefixed MSE not supported.";
92 return;
93 }
94
74 std::vector<StringPair> query_params; 95 std::vector<StringPair> query_params;
75 query_params.push_back(std::make_pair("mediafile", media_file)); 96 query_params.push_back(std::make_pair("mediafile", media_file));
76 query_params.push_back(std::make_pair("mediatype", media_type)); 97 query_params.push_back(std::make_pair("mediatype", media_type));
77 query_params.push_back(std::make_pair("keysystem", key_system)); 98 query_params.push_back(std::make_pair("keysystem", key_system));
78 if (src_type == MSE) 99 if (src_type == MSE)
79 query_params.push_back(std::make_pair("usemse", "1")); 100 query_params.push_back(std::make_pair("usemse", "1"));
80 RunMediaTestPage(html_page, &query_params, expectation, true); 101 RunMediaTestPage(html_page, &query_params, expectation, true);
81 } 102 }
82 103
83 void RunSimpleEncryptedMediaTest(const char* media_file, 104 void RunSimpleEncryptedMediaTest(const char* media_file,
(...skipping 20 matching lines...) Expand all
104 #endif 125 #endif
105 }; 126 };
106 127
107 using ::testing::Combine; 128 using ::testing::Combine;
108 using ::testing::Values; 129 using ::testing::Values;
109 130
110 #if !defined(OS_ANDROID) 131 #if !defined(OS_ANDROID)
111 // Encrypted media playback with SRC is not supported on Android. 132 // Encrypted media playback with SRC is not supported on Android.
112 INSTANTIATE_TEST_CASE_P(SRC_ClearKey, EncryptedMediaTest, 133 INSTANTIATE_TEST_CASE_P(SRC_ClearKey, EncryptedMediaTest,
113 Combine(Values(kClearKeyKeySystem), Values(SRC))); 134 Combine(Values(kClearKeyKeySystem), Values(SRC)));
114 #endif // defined(OS_ANDROID) 135 #endif // !defined(OS_ANDROID)
115 136
116 INSTANTIATE_TEST_CASE_P(MSE_ClearKey, EncryptedMediaTest, 137 INSTANTIATE_TEST_CASE_P(MSE_ClearKey, EncryptedMediaTest,
117 Combine(Values(kClearKeyKeySystem), Values(MSE))); 138 Combine(Values(kClearKeyKeySystem), Values(MSE)));
118 139
119 IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_AudioOnly_WebM) { 140 IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_AudioOnly_WebM) {
120 TestSimplePlayback("bear-a-enc_a.webm", kWebMAudioOnly); 141 TestSimplePlayback("bear-a-enc_a.webm", kWebMAudioOnly);
121 } 142 }
122 143
123 IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_AudioClearVideo_WebM) { 144 IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_AudioClearVideo_WebM) {
124 TestSimplePlayback("bear-320x240-av-enc_a.webm", kWebMAudioVideo); 145 TestSimplePlayback("bear-320x240-av-enc_a.webm", kWebMAudioVideo);
(...skipping 24 matching lines...) Expand all
149 TestFrameSizeChange(); 170 TestFrameSizeChange();
150 } 171 }
151 172
152 IN_PROC_BROWSER_TEST_F(EncryptedMediaTest, UnknownKeySystemThrowsException) { 173 IN_PROC_BROWSER_TEST_F(EncryptedMediaTest, UnknownKeySystemThrowsException) {
153 RunEncryptedMediaTest("encrypted_media_player.html", "bear-a-enc_a.webm", 174 RunEncryptedMediaTest("encrypted_media_player.html", "bear-a-enc_a.webm",
154 kWebMAudioOnly, "com.example.foo", MSE, 175 kWebMAudioOnly, "com.example.foo", MSE,
155 kEmeGkrException); 176 kEmeGkrException);
156 } 177 }
157 178
158 } // namespace content 179 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698