| RUN(internals.initializeMockMediaSource()) |
| RUN(mock = internals.registerMockCDM()) |
| RUN(mock.supportedDataTypes = ["keyids"]) |
| RUN(capabilities.initDataTypes = ["keyids"]) |
| RUN(capabilities.videoCapabilities = [{ contentType: 'video/mock; codecs="mock"' }] ) |
| RUN(promise = navigator.requestMediaKeySystemAccess("org.webkit.mock", [capabilities])) |
| Promise resolved OK |
| |
| RUN(promise = mediaKeySystemAccess.createMediaKeys()) |
| Promise resolved OK |
| |
| Using a non-callable MediaKeySession should reject. |
| RUN(mediaKeySession = mediaKeys.createSession("temporary")) |
| EXPECTED (typeof mediaKeySession == 'object') OK |
| RUN(promise = mediaKeySession.update(encoder.encode("invalid-state"))) |
| Promise rejected correctly OK |
| |
| Using a zero-length response should reject. |
| RUN(kids = JSON.stringify({ kids: [ "MTIzNDU=" ] })) |
| RUN(mediaKeySession = mediaKeys.createSession("temporary")) |
| RUN(promise = mediaKeySession.generateRequest("keyids", encoder.encode(kids))) |
| Promise resolved OK |
| RUN(promise = mediaKeySession.update(new Uint8Array(0))) |
| Promise rejected correctly OK |
| |
| Using a non-sanitizable response should reject. |
| RUN(kids = JSON.stringify({ kids: [ "MTIzNDU=" ] })) |
| RUN(mediaKeySession = mediaKeys.createSession("temporary")) |
| RUN(promise = mediaKeySession.generateRequest("keyids", encoder.encode(kids))) |
| Promise resolved OK |
| RUN(promise = mediaKeySession.update(encoder.encode("invalid-response"))) |
| Promise rejected correctly OK |
| |
| Using a sanitizable response should resolve. |
| RUN(kids = JSON.stringify({ kids: [ "MTIzNDU=" ] })) |
| RUN(mediaKeySession = mediaKeys.createSession("temporary")) |
| RUN(promise = mediaKeySession.generateRequest("keyids", encoder.encode(kids))) |
| Promise resolved OK |
| RUN(promise = mediaKeySession.update(encoder.encode("valid-response"))) |
| Promise resolved OK |
| |
| Using a sanitizable response with invalid format should resolve. |
| RUN(kids = JSON.stringify({ kids: [ "MTIzNDU=" ] })) |
| RUN(mediaKeySession = mediaKeys.createSession("temporary")) |
| RUN(promise = mediaKeySession.generateRequest("keyids", encoder.encode(kids))) |
| Promise resolved OK |
| RUN(promise = mediaKeySession.update(encoder.encode("valid-response invalid-format"))) |
| Promise rejected correctly OK |
| |
| A valid MediaKeySession properly dispatches keystatuseschange event. |
| RUN(kids = JSON.stringify({ kids: [ "MTIzNDU=", "Njc4OTA=" ] })) |
| RUN(mediaKeySession = mediaKeys.createSession("temporary")) |
| RUN(promise = mediaKeySession.generateRequest("keyids", encoder.encode(kids))) |
| Promise resolved OK |
| RUN(promise = mediaKeySession.update(encoder.encode("valid-response keys-changed"))) |
| EXPECTED (mediaKeySession.keyStatuses.size == '2') OK |
| EXPECTED (mediaKeySession.keyStatuses.has(encoder.encode("12345")) == 'true') OK |
| EXPECTED (mediaKeySession.keyStatuses.get(encoder.encode("12345")) == 'usable') OK |
| EXPECTED (mediaKeySession.keyStatuses.has(encoder.encode("67890")) == 'true') OK |
| EXPECTED (mediaKeySession.keyStatuses.get(encoder.encode("67890")) == 'usable') OK |
| EXPECTED (mediaKeySession.keyStatuses.has(encoder.encode("invalid")) == 'false') OK |
| EXPECTED (mediaKeySession.keyStatuses.get(encoder.encode("invalid")) == 'undefined') OK |
| EXPECTED (iteratorArray.length == '2') OK |
| EXPECTED (iteratorArray[0][0].length == '5') OK |
| EXPECTED (iteratorArray[0][0][0] == '49') OK |
| EXPECTED (iteratorArray[0][0][1] == '50') OK |
| EXPECTED (iteratorArray[0][0][2] == '51') OK |
| EXPECTED (iteratorArray[0][0][3] == '52') OK |
| EXPECTED (iteratorArray[0][0][4] == '53') OK |
| EXPECTED (iteratorArray[0][1] == 'usable') OK |
| EXPECTED (iteratorArray[1][0].length == '5') OK |
| EXPECTED (iteratorArray[1][0][0] == '54') OK |
| EXPECTED (iteratorArray[1][0][1] == '55') OK |
| EXPECTED (iteratorArray[1][0][2] == '56') OK |
| EXPECTED (iteratorArray[1][0][3] == '57') OK |
| EXPECTED (iteratorArray[1][0][4] == '48') OK |
| EXPECTED (iteratorArray[1][1] == 'usable') OK |
| EXPECTED (iteratorArray.length == '2') OK |
| EXPECTED (iteratorArray[0].length == '5') OK |
| EXPECTED (iteratorArray[0][0] == '49') OK |
| EXPECTED (iteratorArray[0][1] == '50') OK |
| EXPECTED (iteratorArray[0][2] == '51') OK |
| EXPECTED (iteratorArray[0][3] == '52') OK |
| EXPECTED (iteratorArray[0][4] == '53') OK |
| EXPECTED (iteratorArray[1].length == '5') OK |
| EXPECTED (iteratorArray[1][0] == '54') OK |
| EXPECTED (iteratorArray[1][1] == '55') OK |
| EXPECTED (iteratorArray[1][2] == '56') OK |
| EXPECTED (iteratorArray[1][3] == '57') OK |
| EXPECTED (iteratorArray[1][4] == '48') OK |
| EXPECTED (iteratorArray.length == '2') OK |
| EXPECTED (iteratorArray[0] == 'usable') OK |
| EXPECTED (iteratorArray[1] == 'usable') OK |
| EXPECTED (iteratorArray.length == '2') OK |
| EXPECTED (iteratorArray[0].key.length == '5') OK |
| EXPECTED (iteratorArray[0].key[0] == '49') OK |
| EXPECTED (iteratorArray[0].key[1] == '50') OK |
| EXPECTED (iteratorArray[0].key[2] == '51') OK |
| EXPECTED (iteratorArray[0].key[3] == '52') OK |
| EXPECTED (iteratorArray[0].key[4] == '53') OK |
| EXPECTED (iteratorArray[0].value == 'usable') OK |
| EXPECTED (iteratorArray[1].key.length == '5') OK |
| EXPECTED (iteratorArray[1].key[0] == '54') OK |
| EXPECTED (iteratorArray[1].key[1] == '55') OK |
| EXPECTED (iteratorArray[1].key[2] == '56') OK |
| EXPECTED (iteratorArray[1].key[3] == '57') OK |
| EXPECTED (iteratorArray[1].key[4] == '48') OK |
| EXPECTED (iteratorArray[1].value == 'usable') OK |
| EXPECTED (iteratorArray.length == '2') OK |
| EXPECTED (iteratorArray[0].key.length == '5') OK |
| EXPECTED (iteratorArray[0].key[0] == '49') OK |
| EXPECTED (iteratorArray[0].key[1] == '50') OK |
| EXPECTED (iteratorArray[0].key[2] == '51') OK |
| EXPECTED (iteratorArray[0].key[3] == '52') OK |
| EXPECTED (iteratorArray[0].key[4] == '53') OK |
| EXPECTED (iteratorArray[0].value == 'usable') OK |
| EXPECTED (iteratorArray[1].key.length == '5') OK |
| EXPECTED (iteratorArray[1].key[0] == '54') OK |
| EXPECTED (iteratorArray[1].key[1] == '55') OK |
| EXPECTED (iteratorArray[1].key[2] == '56') OK |
| EXPECTED (iteratorArray[1].key[3] == '57') OK |
| EXPECTED (iteratorArray[1].key[4] == '48') OK |
| EXPECTED (iteratorArray[1].value == 'usable') OK |
| Promise resolved OK |
| END OF TEST |
| |