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

Unified Diff: LayoutTests/media/encrypted-media/encrypted-media-v2-syntax.html

Issue 665213002: Implement navigator.requestMediaKeySystemAccess() (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: updates Created 6 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 side-by-side diff with in-line comments
Download patch
Index: LayoutTests/media/encrypted-media/encrypted-media-v2-syntax.html
diff --git a/LayoutTests/media/encrypted-media/encrypted-media-v2-syntax.html b/LayoutTests/media/encrypted-media/encrypted-media-v2-syntax.html
index f81932cc308ebb08d1a8c7dd1df20d4b638b7ddb..90a99969788e2b3bd890e2cae6cca74a3d666f1f 100644
--- a/LayoutTests/media/encrypted-media/encrypted-media-v2-syntax.html
+++ b/LayoutTests/media/encrypted-media/encrypted-media-v2-syntax.html
@@ -9,6 +9,12 @@
<body>
<div id="log"></div>
<script>
+ // Since promises catch any exception and convert it into a
+ // rejected Promise, there is no current way to have the W3C
+ // test framework report a failed test. For now, simply force
+ // a timeout to indicate failure.
+ // FIXME: Once W3C test framework handles Promises, fix this.
+
// This function checks that calling |testCase.func| returns a
// rejected Promise with the error.name equal to
// |testCase.exception|.
@@ -41,79 +47,96 @@
}
}
- var kCreateMediaKeysExceptionsTestCases = [
+ var kRequestMediaKeySystemAccessExceptionsTestCases = [
// Too few parameters.
{
exception: 'TypeError',
- func: function() { return MediaKeys.create(); }
+ func: function() { return navigator.requestMediaKeySystemAccess(); }
},
// Invalid parameters.
{
exception: 'InvalidAccessError',
- func: function() { return MediaKeys.create(''); }
+ func: function() { return navigator.requestMediaKeySystemAccess(''); }
},
- // Invalid key systems.
+ // Invalid key systems. Note that JavaScript converts all these
+ // values into strings by calling toString(), so they fail due
+ // to the key system not being supported, not due to the type.
{
exception: 'NotSupportedError',
- func: function() { return MediaKeys.create(null); }
+ func: function() { return navigator.requestMediaKeySystemAccess(null); }
},
{
exception: 'NotSupportedError',
- func: function() { return MediaKeys.create(undefined); }
+ func: function() { return navigator.requestMediaKeySystemAccess(undefined); }
},
{
exception: 'NotSupportedError',
- func: function() { return MediaKeys.create(1); }
+ func: function() { return navigator.requestMediaKeySystemAccess(1); }
},
{
exception: 'NotSupportedError',
- func: function() { return MediaKeys.create(new Uint8Array(0)); }
+ func: function() { return navigator.requestMediaKeySystemAccess(new Uint8Array(0)); }
},
{
exception: 'NotSupportedError',
- func: function() { return MediaKeys.create('unsupported'); }
+ func: function() { return navigator.requestMediaKeySystemAccess('unsupported'); }
},
// Non-ASCII names.
{
exception: 'NotSupportedError',
- func: function() { return MediaKeys.create('org.w3\u263A.clearkey'); }
+ func: function() { return navigator.requestMediaKeySystemAccess('org.w3\u263A.clearkey'); }
}
];
async_test(function(test)
{
- // Since promises catch any exception and convert it into a
- // rejected Promise, there is no current way to have the W3C
- // test framework report a failed test. For now, simply force
- // a timeout to indicate failure.
- // FIXME: Once W3C test framework handles Promises, fix this.
-
- var createPromises = kCreateMediaKeysExceptionsTestCases.map(function(testCase) {
+ var createPromises = kRequestMediaKeySystemAccessExceptionsTestCases.map(function(testCase) {
return test_exception(testCase);
});
Promise.all(createPromises).then(function(result) {
test.done();
}).catch(function(error) {
- forceTestFailureFromPromise(test, error, 'create() tests failed');
+ forceTestFailureFromPromise(test, error, 'requestMediaKeySystemAccess() tests failed');
});
- }, 'Test MediaKeys create() exceptions.');
+ }, 'Test Navigator.requestMediaKeySystemAccess() exceptions.');
async_test(function(test)
{
- assert_equals(typeof window.MediaKeys, 'function');
- MediaKeys.create('org.w3.clearkey').then(function(mediaKeys) {
+ assert_equals(typeof navigator.requestMediaKeySystemAccess, 'function');
+ navigator.requestMediaKeySystemAccess('org.w3.clearkey').then(function(access) {
+ assert_not_equals(access, null);
+ assert_equals(typeof access, 'object');
+ assert_equals(access.keySystem, 'org.w3.clearkey');
+ assert_equals(typeof access.createMediaKeys, 'function');
+ test.done();
+ }).catch(function(error) {
+ forceTestFailureFromPromise(test, error, 'requestMediaKeySystemAccess() tests failed');
+ });
+ }, 'Test Navigator.requestMediaKeySystemAccess().');
+
+ async_test(function(test)
+ {
+ var access;
+
+ navigator.requestMediaKeySystemAccess('org.w3.clearkey').then(function(result) {
+ access = result;
+ assert_equals(access.keySystem, 'org.w3.clearkey');
+ return access.createMediaKeys();
+ }).then(function(mediaKeys) {
assert_not_equals(mediaKeys, null);
+ assert_equals(typeof mediaKeys, 'object');
+ assert_equals(typeof mediaKeys.createSession, 'function');
+ assert_equals(typeof mediaKeys.setServerCertificate, 'function');
// Test creation of a second MediaKeys.
// The extra parameter is ignored.
- return MediaKeys.create('org.w3.clearkey', 'extra');
+ return access.createMediaKeys('extra');
}).then(function(mediaKeys) {
assert_not_equals(mediaKeys, null);
assert_equals(typeof mediaKeys, 'object');
- assert_equals(mediaKeys.keySystem, 'org.w3.clearkey');
assert_equals(typeof mediaKeys.createSession, 'function');
- assert_equals(typeof mediaKeys.addEventListener, 'undefined');
+ assert_equals(typeof mediaKeys.setServerCertificate, 'function');
test.done();
}).catch(function(error) {
forceTestFailureFromPromise(test, error, 'create() tests failed');
@@ -159,7 +182,9 @@
async_test(function(test)
{
- MediaKeys.create('org.w3.clearkey').then(function(mediaKeys) {
+ navigator.requestMediaKeySystemAccess('org.w3.clearkey').then(function(access) {
+ return access.createMediaKeys();
+ }).then(function(mediaKeys) {
var sessionPromises = kCreateSessionExceptionsTestCases.map(function(testCase) {
return test_exception(testCase, mediaKeys);
});
@@ -289,7 +314,9 @@
async_test(function(test)
{
- MediaKeys.create('org.w3.clearkey').then(function(mediaKeys) {
+ navigator.requestMediaKeySystemAccess('org.w3.clearkey').then(function(access) {
+ return access.createMediaKeys();
+ }).then(function(mediaKeys) {
// FIXME: Remove "video/" from the calls to isTypeSupported() once it is updated.
// http://crbug.com/405731.
var initData = stringToUint8Array('init data');
@@ -401,7 +428,9 @@
async_test(function(test)
{
- MediaKeys.create('org.w3.clearkey').then(function(mediaKeys) {
+ navigator.requestMediaKeySystemAccess('org.w3.clearkey').then(function(access) {
+ return access.createMediaKeys();
+ }).then(function(mediaKeys) {
// FIXME: Remove "video/" from the calls to isTypeSupported() once it is updated.
// http://crbug.com/405731.
var initData = stringToUint8Array('init data');
@@ -486,7 +515,9 @@
async_test(function(test)
{
- MediaKeys.create('org.w3.clearkey').then(function(mediaKeys) {
+ navigator.requestMediaKeySystemAccess('org.w3.clearkey').then(function(access) {
+ return access.createMediaKeys();
+ }).then(function(mediaKeys) {
kCreateSessionTestCases.map(function(testCase) {
test_createSession(testCase, mediaKeys);
});
@@ -515,7 +546,9 @@
async_test(function(test)
{
- MediaKeys.create('org.w3.clearkey').then(function(mediaKeys) {
+ navigator.requestMediaKeySystemAccess('org.w3.clearkey').then(function(access) {
+ return access.createMediaKeys();
+ }).then(function(mediaKeys) {
var sessionPromises = [];
// Test that WebM sessions generate the expected error, if
@@ -580,7 +613,9 @@
async_test(function(test)
{
- MediaKeys.create('org.w3.clearkey').then(function(mediaKeys) {
+ navigator.requestMediaKeySystemAccess('org.w3.clearkey').then(function(access) {
+ return access.createMediaKeys();
+ }).then(function(mediaKeys) {
var promises = [];
if (MediaKeys.isTypeSupported('org.w3.clearkey', 'video/webm')) {
@@ -629,7 +664,9 @@
async_test(function(test)
{
- MediaKeys.create('org.w3.clearkey').then(function(mediaKeys) {
+ navigator.requestMediaKeySystemAccess('org.w3.clearkey').then(function(access) {
+ return access.createMediaKeys();
+ }).then(function(mediaKeys) {
var promises = [];
if (MediaKeys.isTypeSupported('org.w3.clearkey', 'video/webm')) {
@@ -663,7 +700,9 @@
async_test(function(test)
{
- MediaKeys.create('org.w3.clearkey').then(function(mediaKeys) {
+ navigator.requestMediaKeySystemAccess('org.w3.clearkey').then(function(access) {
+ return access.createMediaKeys();
+ }).then(function(mediaKeys) {
var promises = [];
if (MediaKeys.isTypeSupported('org.w3.clearkey', 'video/webm')) {
@@ -699,7 +738,9 @@
async_test(function(test)
{
- MediaKeys.create('org.w3.clearkey').then(function(mediaKeys) {
+ navigator.requestMediaKeySystemAccess('org.w3.clearkey').then(function(access) {
+ return access.createMediaKeys();
+ }).then(function(mediaKeys) {
var promises = [];
if (MediaKeys.isTypeSupported('org.w3.clearkey', 'video/webm')) {
@@ -756,7 +797,9 @@
async_test(function(test)
{
- MediaKeys.create('org.w3.clearkey').then(function(mediaKeys) {
+ navigator.requestMediaKeySystemAccess('org.w3.clearkey').then(function(access) {
+ return access.createMediaKeys();
+ }).then(function(mediaKeys) {
var promises = [];
if (MediaKeys.isTypeSupported('org.w3.clearkey', 'video/webm')) {
@@ -794,7 +837,9 @@
async_test(function(test)
{
- MediaKeys.create('org.w3.clearkey').then(function(mediaKeys) {
+ navigator.requestMediaKeySystemAccess('org.w3.clearkey').then(function(access) {
+ return access.createMediaKeys();
+ }).then(function(mediaKeys) {
var promises = [];
if (MediaKeys.isTypeSupported('org.w3.clearkey', 'video/webm')) {
@@ -856,7 +901,9 @@
async_test(function(test)
{
- MediaKeys.create('org.w3.clearkey').then(function(mediaKeys) {
+ navigator.requestMediaKeySystemAccess('org.w3.clearkey').then(function(access) {
+ return access.createMediaKeys();
+ }).then(function(mediaKeys) {
var promises = kSetServerCertificateExceptionsTestCases.map(function(testCase) {
return test_exception(testCase, mediaKeys);
});

Powered by Google App Engine
This is Rietveld 408576698