1
0
mirror of https://github.com/videojs/video.js.git synced 2024-12-14 11:23:30 +02:00
video.js/test/unit/reset-ui.test.js
Evan Farina e248286fb6 fix: ensure that durationDisplay and remainingTimeDisplay exist before calling their 'updateContent' method during reset() (#5839)
The resetProgressBar_ method was calling 'updateContent' on the durationDisplay and remainingTimeDisplay controls without checking to make sure they exist

Fixes #5838
2019-03-18 14:54:14 -04:00

78 lines
2.2 KiB
JavaScript

/* eslint-env qunit */
import TestHelpers from './test-helpers.js';
QUnit.module('player reset-ui');
QUnit.test('Calling resetProgressBar player method should place progress bar at 0% width', function(assert) {
const player = TestHelpers.makePlayer();
player.currentTime(20);
player.trigger('timeupdate');
player.resetProgressBar_();
assert.equal(
player.controlBar.progressControl.seekBar.playProgressBar.el().offsetWidth, 0,
'progress bar is reset to width 0%'
);
assert.equal(
player.currentTime(), 0,
'player current time is 0'
);
player.dispose();
});
QUnit.test('Calling resetProgressBar_ player method when no durationDisplay or remainingTimeDisplay controls exist', function(assert) {
const player = TestHelpers.makePlayer({
children: {
controlBar: {}
},
controlBar: {
children: {
playToggle: {}
}
}
});
player.currentTime(20);
player.resetProgressBar_();
assert.equal(
player.currentTime(), 0,
'player current time is 0'
);
player.dispose();
});
QUnit.test('Calling resetPlaybackRate player method should place play rate at 1x', function(assert) {
const player = TestHelpers.makePlayer({techOrder: ['html5']});
player.playbackRate(2);
player.handleTechRateChange_();
player.resetPlaybackRate_();
const defaultRate = player.defaultPlaybackRate();
assert.equal(
player.controlBar.playbackRateMenuButton.labelEl_.textContent, defaultRate + 'x',
'Playback rate is the default one on the UI'
);
assert.equal(
player.playbackRate(), defaultRate,
'Playback rate is the default one on the player object'
);
player.dispose();
});
QUnit.test('Calling resetVolumeBar player method should reset volume bar', function(assert) {
const player = TestHelpers.makePlayer({ techOrder: ['html5'] });
player.volume(0.5);
player.trigger('volumechange');
assert.equal(player.controlBar.volumePanel.volumeControl.volumeBar.el_.getAttribute('aria-valuenow'), 50, 'UI value of VolumeBar is 50');
player.resetVolumeBar_();
assert.equal(player.controlBar.volumePanel.volumeControl.volumeBar.el_.getAttribute('aria-valuenow'), 100, 'UI value of VolumeBar is 100');
player.dispose();
});