summaryrefslogtreecommitdiff
path: root/javascript/videojs/test/unit/tracks/text-track-settings.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'javascript/videojs/test/unit/tracks/text-track-settings.test.js')
-rw-r--r--javascript/videojs/test/unit/tracks/text-track-settings.test.js416
1 files changed, 0 insertions, 416 deletions
diff --git a/javascript/videojs/test/unit/tracks/text-track-settings.test.js b/javascript/videojs/test/unit/tracks/text-track-settings.test.js
deleted file mode 100644
index 1eec3e6..0000000
--- a/javascript/videojs/test/unit/tracks/text-track-settings.test.js
+++ /dev/null
@@ -1,416 +0,0 @@
-/* eslint-env qunit */
-import TextTrackSettings from '../../../src/js/tracks/text-track-settings.js';
-import TestHelpers from '../test-helpers.js';
-import * as Events from '../../../src/js/utils/events.js';
-import sinon from 'sinon';
-import window from 'global/window';
-import Component from '../../../src/js/component.js';
-import videojs from '../../../src/js/video.js';
-
-const tracks = [{
- kind: 'captions',
- label: 'test'
-}];
-
-const defaultSettings = {
- backgroundColor: '#000',
- backgroundOpacity: '1',
- color: '#FFF',
- fontFamily: 'proportionalSansSerif',
- textOpacity: '1',
- windowColor: '#000',
- windowOpacity: '0'
-};
-
-QUnit.module('Text Track Settings', {
- beforeEach() {
- window.localStorage.clear();
- this.oldComponentFocus = Component.prototype.focus;
- this.oldComponentBlur = Component.prototype.blur;
- Component.prototype.focus = function() {};
- Component.prototype.blur = function() {};
- },
- afterEach() {
- Component.prototype.focus = this.oldComponentFocus;
- Component.prototype.blur = this.oldComponentBlur;
- }
-});
-
-QUnit.test('should update settings', function(assert) {
- const player = TestHelpers.makePlayer({
- tracks,
- persistTextTrackSettings: true
- });
-
- const newSettings = {
- backgroundOpacity: '0.5',
- textOpacity: '0.5',
- windowOpacity: '0.5',
- edgeStyle: 'raised',
- fontFamily: 'monospaceSerif',
- color: '#F00',
- backgroundColor: '#FFF',
- windowColor: '#FFF',
- fontPercent: 1.25
- };
-
- player.textTrackSettings.setValues(newSettings);
-
- assert.deepEqual(
- player.textTrackSettings.getValues(),
- newSettings,
- 'values are updated'
- );
-
- assert.equal(
- player.$('.vjs-text-color > select').selectedIndex,
- 2,
- 'text-color is set to new value'
- );
-
- assert.equal(
- player.$('.vjs-bg-color > select').selectedIndex,
- 1,
- 'bg-color is set to new value'
- );
-
- assert.equal(
- player.$('.vjs-window-color > select').selectedIndex,
- 1,
- 'window-color is set to new value'
- );
-
- assert.equal(
- player.$('.vjs-text-opacity > select').selectedIndex,
- 1,
- 'text-opacity is set to new value'
- );
-
- assert.equal(
- player.$('.vjs-bg-opacity > select').selectedIndex,
- 1,
- 'bg-opacity is set to new value'
- );
-
- assert.equal(
- player.$('.vjs-window-opacity > select').selectedIndex,
- 1,
- 'window-opacity is set to new value'
- );
-
- assert.equal(
- player.$('.vjs-edge-style select').selectedIndex,
- 1,
- 'edge-style is set to new value'
- );
-
- assert.equal(
- player.$('.vjs-font-family select').selectedIndex,
- 3,
- 'font-family is set to new value'
- );
-
- assert.equal(
- player.$('.vjs-font-percent select').selectedIndex,
- 3,
- 'font-percent is set to new value'
- );
-
- Events.trigger(player.$('.vjs-done-button'), 'click');
-
- assert.deepEqual(
- JSON.parse(window.localStorage.getItem('vjs-text-track-settings')),
- newSettings,
- 'values are saved'
- );
-
- player.dispose();
-});
-
-QUnit.test('should restore default settings', function(assert) {
- const player = TestHelpers.makePlayer({
- tracks,
- persistTextTrackSettings: true
- });
-
- player.$('.vjs-text-color > select').selectedIndex = 1;
- player.$('.vjs-bg-color > select').selectedIndex = 1;
- player.$('.vjs-window-color > select').selectedIndex = 1;
- player.$('.vjs-text-opacity > select').selectedIndex = 1;
- player.$('.vjs-bg-opacity > select').selectedIndex = 1;
- player.$('.vjs-window-opacity > select').selectedIndex = 1;
- player.$('.vjs-edge-style select').selectedIndex = 1;
- player.$('.vjs-font-family select').selectedIndex = 1;
- player.$('.vjs-font-percent select').selectedIndex = 3;
-
- Events.trigger(player.$('.vjs-done-button'), 'click');
- Events.trigger(player.$('.vjs-default-button'), 'click');
- Events.trigger(player.$('.vjs-done-button'), 'click');
-
- assert.deepEqual(
- player.textTrackSettings.getValues(),
- defaultSettings,
- 'values are defaulted'
- );
- // TODO:
- // MikeA: need to figure out how to modify saveSettings
- // to factor in defaults are no longer null
- // assert.deepEqual(window.localStorage.getItem('vjs-text-track-settings'),
- // defaultSettings,
- // 'values are saved');
-
- assert.equal(
- player.$('.vjs-text-color > select').selectedIndex,
- 0,
- 'text-color is set to default value'
- );
-
- assert.equal(
- player.$('.vjs-bg-color > select').selectedIndex,
- 0,
- 'bg-color is set to default value'
- );
-
- assert.equal(
- player.$('.vjs-window-color > select').selectedIndex,
- 0,
- 'window-color is set to default value'
- );
-
- assert.equal(
- player.$('.vjs-text-opacity > select').selectedIndex,
- 0,
- 'text-opacity is set to default value'
- );
-
- assert.equal(
- player.$('.vjs-bg-opacity > select').selectedIndex,
- 0,
- 'bg-opacity is set to default value'
- );
-
- assert.equal(
- player.$('.vjs-window-opacity > select').selectedIndex,
- 0,
- 'window-opacity is set to default value'
- );
-
- assert.equal(
- player.$('.vjs-edge-style select').selectedIndex,
- 0,
- 'edge-style is set to default value'
- );
-
- assert.equal(
- player.$('.vjs-font-family select').selectedIndex,
- 0,
- 'font-family is set to default value'
- );
-
- assert.equal(
- player.$('.vjs-font-percent select').selectedIndex,
- 2,
- 'font-percent is set to default value'
- );
-
- player.dispose();
-});
-
-QUnit.test('should open on click', function(assert) {
- const clock = sinon.useFakeTimers();
- const player = TestHelpers.makePlayer({
- tracks
- });
-
- clock.tick(1);
-
- Events.trigger(player.$('.vjs-texttrack-settings'), 'click');
- assert.ok(!player.textTrackSettings.hasClass('vjs-hidden'), 'settings open');
-
- player.dispose();
- clock.restore();
-});
-
-QUnit.test('should close on done click', function(assert) {
- const clock = sinon.useFakeTimers();
- const player = TestHelpers.makePlayer({
- tracks
- });
-
- clock.tick(1);
-
- Events.trigger(player.$('.vjs-texttrack-settings'), 'click');
- Events.trigger(player.$('.vjs-done-button'), 'click');
- assert.ok(player.textTrackSettings.hasClass('vjs-hidden'), 'settings closed');
-
- player.dispose();
- clock.restore();
-});
-
-QUnit.test('if persist option is set, restore settings on init', function(assert) {
- const oldRestoreSettings = TextTrackSettings.prototype.restoreSettings;
- let restore = 0;
-
- TextTrackSettings.prototype.restoreSettings = function() {
- restore++;
- };
-
- const player = TestHelpers.makePlayer({
- tracks,
- persistTextTrackSettings: true
- });
-
- assert.equal(restore, 1, 'restore was called');
-
- TextTrackSettings.prototype.restoreSettings = oldRestoreSettings;
-
- player.dispose();
-});
-
-QUnit.test('if persist option is set, save settings when "done"', function(assert) {
- const player = TestHelpers.makePlayer({
- tracks,
- persistTextTrackSettings: true
- });
-
- const oldSaveSettings = TextTrackSettings.prototype.saveSettings;
- let save = 0;
-
- TextTrackSettings.prototype.saveSettings = function() {
- save++;
- };
-
- Events.trigger(player.$('.vjs-done-button'), 'click');
-
- assert.equal(save, 1, 'save was called');
-
- TextTrackSettings.prototype.saveSettings = oldSaveSettings;
-
- player.dispose();
-});
-
-QUnit.test('do not try to restore or save settings if persist option is not set', function(assert) {
- const oldRestoreSettings = TextTrackSettings.prototype.restoreSettings;
- const oldSaveSettings = TextTrackSettings.prototype.saveSettings;
- let save = 0;
- let restore = 0;
-
- TextTrackSettings.prototype.restoreSettings = function() {
- restore++;
- };
- TextTrackSettings.prototype.saveSettings = function() {
- save++;
- };
-
- const player = TestHelpers.makePlayer({
- tracks,
- persistTextTrackSettings: false
- });
-
- assert.equal(restore, 0, 'restore was not called');
-
- Events.trigger(player.$('.vjs-done-button'), 'click');
-
- // saveSettings is called but does nothing
- assert.equal(save, 1, 'save was not called');
-
- TextTrackSettings.prototype.saveSettings = oldSaveSettings;
- TextTrackSettings.prototype.restoreSettings = oldRestoreSettings;
-
- player.dispose();
-});
-
-QUnit.test('should restore saved settings', function(assert) {
- const newSettings = {
- backgroundOpacity: '0.5',
- textOpacity: '0.5',
- windowOpacity: '0.5',
- edgeStyle: 'raised',
- fontFamily: 'monospaceSerif',
- color: '#F00',
- backgroundColor: '#FFF',
- windowColor: '#FFF',
- fontPercent: 1.25
- };
-
- window.localStorage.setItem('vjs-text-track-settings', JSON.stringify(newSettings));
-
- const player = TestHelpers.makePlayer({
- tracks,
- persistTextTrackSettings: true
- });
-
- assert.deepEqual(player.textTrackSettings.getValues(), newSettings);
-
- player.dispose();
-});
-
-QUnit.test('should not restore saved settings', function(assert) {
- const newSettings = {
- backgroundOpacity: '0.5',
- textOpacity: '0.5',
- windowOpacity: '0.5',
- edgeStyle: 'raised',
- fontFamily: 'monospaceSerif',
- color: '#F00',
- backgroundColor: '#FFF',
- windowColor: '#FFF',
- fontPercent: 1.25
- };
-
- window.localStorage.setItem('vjs-text-track-settings', JSON.stringify(newSettings));
-
- const player = TestHelpers.makePlayer({
- tracks,
- persistTextTrackSettings: false
- });
-
- assert.deepEqual(player.textTrackSettings.getValues(), defaultSettings);
-
- player.dispose();
-});
-
-QUnit.test('should update on languagechange', function(assert) {
- const player = TestHelpers.makePlayer({
- tracks
- });
-
- videojs.addLanguage('test', {
- 'Font Size': 'FONTSIZE',
- 'Color': 'COLOR',
- 'White': 'WHITE'
- });
- player.language('test');
-
- assert.equal(player.$('.vjs-font-percent legend').textContent, 'FONTSIZE', 'settings dialog updates on languagechange');
- assert.equal(player.$('.vjs-text-color label').textContent, 'COLOR', 'settings dialog label updates on languagechange');
- assert.equal(player.$('.vjs-text-color select option').textContent, 'WHITE', 'settings dialog select updates on languagechange');
-
- player.dispose();
-});
-
-QUnit.test('should associate <label>s with <select>s', function(assert) {
- const player = TestHelpers.makePlayer({
- tracks
- });
-
- const firstLabelFor = player.textTrackSettings.el_.querySelector('label').getAttribute('for');
-
- assert.ok(
- videojs.dom.isEl(player.textTrackSettings.el_.querySelector(`#${firstLabelFor}`)),
- 'label has a `for` attribute matching an `id`'
- );
-
-});
-
-QUnit.test('should not duplicate ids', function(assert) {
- const player = TestHelpers.makePlayer({
- tracks
- });
-
- const elements = [...player.el().querySelectorAll('[id]')];
- const ids = elements.map(el => el.id);
- const duplicates = elements.filter(el => ids.filter(id => id === el.id).length > 1);
-
- assert.strictEqual(duplicates.length, 0, 'there should be no duplicate ids');
-});