| function runTest(config) |
| { |
| promise_test(function (test) { |
| var initDataType; |
| var initData; |
| var keySystem = config.keysystem; |
| var invalidLicense = new Uint8Array([0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77]); |
| var messageEventFired = false; |
| |
| var p = navigator.requestMediaKeySystemAccess(keySystem, getSimpleConfiguration()).then(function (access) { |
| initDataType = access.getConfiguration().initDataTypes[0]; |
| initData = getInitData(initDataType); |
| return access.createMediaKeys(); |
| }).then(function (mediaKeys) { |
| var keySession = mediaKeys.createSession(); |
| var eventWatcher = new EventWatcher(test, keySession, ['message']); |
| var promise = eventWatcher.wait_for('message'); |
| keySession.generateRequest(initDataType, initData); |
| return promise; |
| }).then(function (messageEvent) { |
| messageEventFired = true; |
| return messageEvent.target.update(invalidLicense); |
| }).catch(function (error) { |
| // Ensure we reached the update() call we are trying to test. |
| if (!messageEventFired) { |
| assert_unreached( |
| `Failed to reach the update() call. Error: '${error.name}' '${error.message}'`); |
| } |
| |
| // Propagate the error on through. |
| throw error; |
| }); |
| |
| return promise_rejects_js( |
| test, TypeError, p, |
| 'update() should fail because of an invalid license.'); |
| }, 'Update with invalid Clear Key license'); |
| } |