Index: third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-utils.js |
diff --git a/third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-utils.js b/third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-utils.js |
index 7da412966c110ad85e2eddf65b67ef795f8e3a90..38d1c9912ce5398e3dab4f02d95fa27cf3436b0a 100644 |
--- a/third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-utils.js |
+++ b/third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-utils.js |
@@ -182,28 +182,28 @@ function dumpKeyStatuses(keyStatuses) |
} |
// Verify that |keyStatuses| contains just the keys in |keys.expected| |
-// and none of the keys in |keys.unexpected|. All keys should have status |
-// 'usable'. Example call: verifyKeyStatuses(mediaKeySession.keyStatuses, |
-// { expected: [key1], unexpected: [key2] }); |
-function verifyKeyStatuses(keyStatuses, keys) |
-{ |
- var expected = keys.expected || []; |
- var unexpected = keys.unexpected || []; |
- |
- // |keyStatuses| should have same size as number of |keys.expected|. |
- assert_equals(keyStatuses.size, expected.length); |
- |
- // All |keys.expected| should be found. |
- expected.map(function(key) { |
- assert_true(keyStatuses.has(key)); |
- assert_equals(keyStatuses.get(key), 'usable'); |
- }); |
- |
- // All |keys.unexpected| should not be found. |
- unexpected.map(function(key) { |
- assert_false(keyStatuses.has(key)); |
- assert_equals(keyStatuses.get(key), undefined); |
- }); |
+// and none of the keys in |keys.unexpected|. All expected keys should have |
+// status |status|. Example call: verifyKeyStatuses(mediaKeySession.keyStatuses, |
+// { expected: [key1], unexpected: [key2] }, 'usable'); |
+function verifyKeyStatuses(keyStatuses, keys, status) { |
+ var expected = keys.expected || []; |
+ var unexpected = keys.unexpected || []; |
+ status = status || 'usable'; |
+ |
+ // |keyStatuses| should have same size as number of |keys.expected|. |
+ assert_equals(keyStatuses.size, expected.length); |
+ |
+ // All |keys.expected| should be found. |
+ expected.map(function(key) { |
+ assert_true(keyStatuses.has(key)); |
+ assert_equals(keyStatuses.get(key), status); |
+ }); |
+ |
+ // All |keys.unexpected| should not be found. |
+ unexpected.map(function(key) { |
+ assert_false(keyStatuses.has(key)); |
+ assert_equals(keyStatuses.get(key), undefined); |
+ }); |
} |
// Encodes |data| into base64url string. There is no '=' padding, and the |
@@ -314,6 +314,18 @@ function createClearKeyMediaKeysAndInitializeWithOneKey(keyId, key) |
}); |
} |
+// Convert an event into a promise. When |event| is fired on |object|, |
+// call |func| to handle the event and either resolve or reject the promise. |
+// The event is only fired once. |
+function waitForSingleEvent(object, event, func) { |
+ return new Promise(function(resolve, reject) { |
+ object.addEventListener(event, function listener(e) { |
+ object.removeEventListener(event, listener); |
+ func(e, resolve, reject); |
+ }); |
+ }); |
+}; |
+ |
// Play the specified |content| on |video|. Returns a promise that is resolved |
// after the video plays for |duration| seconds. |
function playVideoAndWaitForTimeupdate(video, content, duration) |