1
0
mirror of https://github.com/videojs/video.js.git synced 2024-12-23 02:04:34 +02:00
video.js/test/unit/tech/tech-faker.js
Gary Katsevman 5bde16a1bc test(ie8): only run mute toggle tests in html5 env (#4003)
IE8 can't run the html5 tech and the mute toggle tests rely on a working
volume and mute functionality which tech faker does not have. Instead of
implementing it in tech faker, skip it on non-html5 environments.
2017-01-31 17:15:56 -05:00

97 lines
1.6 KiB
JavaScript

// Fake a media playback tech controller so that player tests
// can run without HTML5 or Flash, of which PhantomJS supports neither.
import Tech from '../../../src/js/tech/tech.js';
/**
* @constructor
*/
class TechFaker extends Tech {
constructor(options, handleReady) {
super(options, handleReady);
this.triggerReady();
}
createEl() {
const el = super.createEl('div', {
className: 'vjs-tech'
});
return el;
}
// fake a poster attribute to mimic the video element
poster() {
return this.el().poster;
}
setPoster(val) {
this.el().poster = val;
}
setControls(val) {}
setVolume(newVolume) {}
setMuted() {}
currentTime() {
return 0;
}
seeking() {
return false;
}
src() {
return 'movie.mp4';
}
currentSrc() {
return 'movie.mp4';
}
volume() {
return 0;
}
muted() {
return false;
}
pause() {
return false;
}
paused() {
return true;
}
play() {
this.trigger('play');
}
supportsFullScreen() {
return false;
}
buffered() {
return {};
}
duration() {
return {};
}
networkState() {
return 0;
}
readyState() {
return 0;
}
controls() {
return false;
}
// Support everything except for "video/unsupported-format"
static isSupported() {
return true;
}
static canPlayType(type) {
return (type !== 'video/unsupported-format' ? 'maybe' : '');
}
static canPlaySource(srcObj) {
return srcObj.type !== 'video/unsupported-format';
}
}
Tech.registerTech('TechFaker', TechFaker);
export default TechFaker;