diff options
Diffstat (limited to 'javascript/videojs/test/unit/control-bar/text-track-controls/text-track-menu-item.test.js')
| -rw-r--r-- | javascript/videojs/test/unit/control-bar/text-track-controls/text-track-menu-item.test.js | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/javascript/videojs/test/unit/control-bar/text-track-controls/text-track-menu-item.test.js b/javascript/videojs/test/unit/control-bar/text-track-controls/text-track-menu-item.test.js new file mode 100644 index 0000000..80fa1f8 --- /dev/null +++ b/javascript/videojs/test/unit/control-bar/text-track-controls/text-track-menu-item.test.js @@ -0,0 +1,104 @@ +/* eslint-env qunit */ +import TextTrackMenuItem from '../../../../src/js/control-bar/text-track-controls/text-track-menu-item.js'; +import OffTextTrackMenuItem from '../../../../src/js/control-bar/text-track-controls/off-text-track-menu-item.js'; +import CaptionSettingsMenuItem from '../../../../src/js/control-bar/text-track-controls/caption-settings-menu-item.js'; +import TestHelpers from '../../test-helpers.js'; +import videojs from '../../../../src/js/video.js'; + +QUnit.module('TextTrackMenuItem', { + beforeEach(assert) { + this.player = TestHelpers.makePlayer(); + }, + afterEach(assert) { + this.player.dispose(); + } +}); + +QUnit.test('clicking should enable the selected track', function(assert) { + assert.expect(2); + + const foo = this.player.addTextTrack('captions', 'foo', 'en'); + + const fooItem = new TextTrackMenuItem(this.player, { + track: foo + }); + + assert.strictEqual(foo.mode, 'disabled', 'track "foo" begins "disabled"'); + + fooItem.trigger('click'); + + assert.strictEqual(foo.mode, 'showing', 'clicking set track "foo" to "showing"'); + + fooItem.dispose(); +}); + +QUnit.test('clicking should disable non-selected tracks of the relevant kind(s)', function(assert) { + assert.expect(16); + + const foo = this.player.addTextTrack('captions', 'foo', 'en'); + const bar = this.player.addTextTrack('captions', 'bar', 'es'); + const bip = this.player.addTextTrack('subtitles', 'bip', 'fr'); + const bop = this.player.addTextTrack('metadata', 'bop'); + + bop.mode = 'hidden'; + + const fooItem = new TextTrackMenuItem(this.player, { + track: foo, + kinds: ['captions', 'subtitles'] + }); + + const barItem = new TextTrackMenuItem(this.player, { + track: bar, + kinds: ['captions', 'subtitles'] + }); + + const bipItem = new TextTrackMenuItem(this.player, { + track: bip, + kinds: ['captions', 'subtitles'] + }); + + assert.strictEqual(foo.mode, 'disabled', 'captions track "foo" begins "disabled"'); + assert.strictEqual(bar.mode, 'disabled', 'captions track "bar" begins "disabled"'); + assert.strictEqual(bip.mode, 'disabled', 'subtitles track "bip" begins "disabled"'); + assert.strictEqual(bop.mode, 'hidden', 'metadata track "bop" is "hidden"'); + + barItem.trigger('click'); + + assert.strictEqual(foo.mode, 'disabled', 'captions track "foo" is still "disabled"'); + assert.strictEqual(bar.mode, 'showing', 'captions track "bar" is now "showing"'); + assert.strictEqual(bip.mode, 'disabled', 'subtitles track "bip" is still "disabled"'); + assert.strictEqual(bop.mode, 'hidden', 'metadata track "bop" is still "hidden"'); + + fooItem.trigger('click'); + + assert.strictEqual(foo.mode, 'showing', 'captions track "foo" is now "showing"'); + assert.strictEqual(bar.mode, 'disabled', 'captions track "bar" is now "disabled"'); + assert.strictEqual(bip.mode, 'disabled', 'subtitles track "bip" is still "disabled"'); + assert.strictEqual(bop.mode, 'hidden', 'metadata track "bop" is still "hidden"'); + + bipItem.trigger('click'); + + assert.strictEqual(foo.mode, 'disabled', 'captions track "foo" is now "disabled"'); + assert.strictEqual(bar.mode, 'disabled', 'captions track "bar" is still "disabled"'); + assert.strictEqual(bip.mode, 'showing', 'subtitles track "bip" is now "showing"'); + assert.strictEqual(bop.mode, 'hidden', 'metadata track "bop" is still "hidden"'); + + fooItem.dispose(); + barItem.dispose(); + bipItem.dispose(); +}); + +QUnit.test('should localize meu items on languagechage', function(assert) { + const OffItem = new OffTextTrackMenuItem(this.player, {kind: 'subtitles'}); + const SettingsItem = new CaptionSettingsMenuItem(this.player, {kind: 'subtitles'}); + + videojs.addLanguage('test', { + 'subtitles off': 'SUBSOFF', + 'subtitles settings': 'SUBSSETTINGS' + }); + + this.player.language('test'); + + assert.equal(OffItem.$('.vjs-menu-item-text').textContent, 'SUBSOFF', 'subtitles settings text updates'); + assert.equal(SettingsItem.$('.vjs-menu-item-text').textContent, 'SUBSSETTINGS', 'subtitles settings text updates'); +}); |
