Index: third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-keystatuses.html |
diff --git a/third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-keystatuses.html b/third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-keystatuses.html |
index 3654f8c273b373c8a186a655646ba69ce48d7a07..91922bbe08e32e4de75a9b2f1f6b5383214fbad8 100644 |
--- a/third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-keystatuses.html |
+++ b/third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-keystatuses.html |
@@ -14,6 +14,7 @@ |
var mediaKeySession; |
var initDataType; |
var initData; |
+ var closed = false; |
// Even though key ids are uint8, using printable values so that |
// they can be verified easily. |
@@ -39,7 +40,7 @@ |
}); |
} |
- function processKeyStatusesChange(event) |
+ function checkKeyStatusFor2Keys() |
{ |
// Two keys added, so both should show up in |keyStatuses|. |
assert_equals(mediaKeySession.keyStatuses.size, 2); |
@@ -124,8 +125,28 @@ |
invalid6.set(key1, 0); // Last element will be 0. |
assert_false(mediaKeySession.keyStatuses.has(invalid6)); |
assert_equals(mediaKeySession.keyStatuses.get(invalid6), undefined); |
+ } |
- test.done(); |
+ function processKeyStatusesChange(event) |
+ { |
+ if ( !closed ) |
+ { |
+ // The first keystatuseschange (caused by update()) |
+ // should include both keys. |
+ checkKeyStatusFor2Keys(); |
+ |
+ mediaKeySession.close().catch(function(error) { |
+ forceTestFailureFromPromise(test, error); |
+ }); |
+ closed = true; |
+ } |
+ else |
+ { |
+ // The second keystatuseschange (caused by close()) |
+ // should not have any keys. |
+ assert_equals(mediaKeySession.keyStatuses.size, 0); |
+ test.done(); |
+ } |
} |
getSupportedInitDataType().then(function(type) { |