it('should support an array of plugins and group them by type', function() { const playbackPlugin = PlaybackPlugin.extend({ name: 'playbackPlugin' }) const containerPlugin = ContainerPlugin.extend({ name: 'containerPlugin' }) const corePlugin = CorePlugin.extend({ name: 'corePlugin' }) const loader = new Loader() const nativePlaybackPluginsCount = loader.playbackPlugins.length const nativeContainerPluginsCount = loader.containerPlugins.length const nativeCorePluginsCount = loader.corePlugins.length loader.addExternalPlugins([playbackPlugin, containerPlugin, corePlugin]) expect(loader.playbackPlugins.length).to.be.equal(nativePlaybackPluginsCount + 1) expect(loader.containerPlugins.length).to.be.equal(nativeContainerPluginsCount + 1) expect(loader.corePlugins.length).to.be.equal(nativeCorePluginsCount + 1) })
it('should extend the plugins array with the external ones', function() { const playbackPlugin = PlaybackPlugin.extend({ name: 'playbackPlugin' }) playbackPlugin.canPlay = () => true const containerPlugin = ContainerPlugin.extend({ name: 'containerPlugin' }) const corePlugin = CorePlugin.extend({ name: 'corePlugin' }) const loader = new Loader() const nativePlaybackPluginsCount = loader.playbackPlugins.length const nativeContainerPluginsCount = loader.containerPlugins.length const nativeCorePluginsCount = loader.corePlugins.length loader.addExternalPlugins({ playback: [playbackPlugin] }) expect(loader.playbackPlugins.length).to.be.equal(nativePlaybackPluginsCount + 1) const selected = loader.playbackPlugins.filter((p) => p.canPlay('source'))[0] expect(selected.prototype.name).to.eq('playbackPlugin') loader.addExternalPlugins({ container: [containerPlugin] }) expect(loader.containerPlugins.length).to.be.equal(nativeContainerPluginsCount + 1) loader.addExternalPlugins({ core: [corePlugin] }) expect(loader.corePlugins.length).to.be.equal(nativeCorePluginsCount + 1) })