| 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; |
| |
| return 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); |
| }).then(function () { |
| assert_unreached('Error: update() should fail because of an invalid license.'); |
| }).catch(function (error) { |
| if(messageEventFired) { |
| assert_equals(error.name, 'TypeError'); |
| } else { |
| assert_unreached('Error: ' + error.name); |
| } |
| }); |
| }, 'Update with invalid Clear Key license'); |
| } |