2013-02-09 01:27:04 +03:00
|
|
|
module('HTML5');
|
2013-03-02 01:11:20 +03:00
|
|
|
|
2014-03-18 03:47:47 +03:00
|
|
|
var oldAndroidVersion;
|
|
|
|
|
2013-03-02 01:11:20 +03:00
|
|
|
test('should detect whether the volume can be changed', function(){
|
2013-03-05 21:38:47 +03:00
|
|
|
var testVid, ConstVolumeVideo;
|
2013-03-06 02:07:35 +03:00
|
|
|
if (!{}['__defineSetter__']) {
|
|
|
|
ok(true, 'your browser does not support this test, skipping it');
|
|
|
|
return;
|
|
|
|
}
|
2013-03-05 21:38:47 +03:00
|
|
|
testVid = vjs.TEST_VID;
|
|
|
|
ConstVolumeVideo = function(){
|
|
|
|
this.volume = 1;
|
|
|
|
this.__defineSetter__('volume', function(){});
|
|
|
|
};
|
2013-03-02 01:11:20 +03:00
|
|
|
vjs.TEST_VID = new ConstVolumeVideo();
|
|
|
|
|
|
|
|
ok(!vjs.Html5.canControlVolume());
|
|
|
|
vjs.TEST_VID = testVid;
|
|
|
|
});
|
2013-03-08 04:57:52 +03:00
|
|
|
|
|
|
|
test('should re-link the player if the tech is moved', function(){
|
|
|
|
var player, tech, el;
|
|
|
|
el = document.createElement('div');
|
|
|
|
el.innerHTML = '<div />';
|
2013-08-10 00:29:22 +03:00
|
|
|
|
2013-03-08 04:57:52 +03:00
|
|
|
player = {
|
|
|
|
id: function(){ return 'id'; },
|
|
|
|
el: function(){ return el; },
|
|
|
|
options_: {},
|
2013-08-10 00:29:22 +03:00
|
|
|
options: function(){ return {}; },
|
|
|
|
controls: function(){ return false; },
|
|
|
|
usingNativeControls: function(){ return false; },
|
|
|
|
on: function(){ return this; },
|
2013-03-08 04:57:52 +03:00
|
|
|
ready: function(){}
|
|
|
|
};
|
|
|
|
tech = new vjs.Html5(player, {});
|
2013-04-09 23:18:55 +03:00
|
|
|
vjs.Html5.movingMediaElementInDOM = false;
|
2013-03-08 04:57:52 +03:00
|
|
|
tech.createEl();
|
|
|
|
|
2013-03-08 18:13:01 +03:00
|
|
|
strictEqual(player, tech.el()['player']);
|
2013-08-10 00:29:22 +03:00
|
|
|
});
|
2014-03-18 03:47:47 +03:00
|
|
|
|
|
|
|
test('patchCanPlayType patches canplaytype with our function, conditionally', function() {
|
|
|
|
var oldAV = vjs.ANDROID_VERSION,
|
|
|
|
video = document.createElement('video'),
|
|
|
|
canPlayType = HTMLVideoElement.prototype.canPlayType,
|
|
|
|
patchCanPlayType,
|
|
|
|
unpatchedCanPlayType;
|
|
|
|
|
2014-03-25 01:00:00 +03:00
|
|
|
vjs.ANDROID_VERSION = 4.0;
|
2014-03-18 03:47:47 +03:00
|
|
|
vjs.Html5.patchCanPlayType();
|
|
|
|
|
|
|
|
notStrictEqual(video.canPlayType, canPlayType, 'original canPlayType and patched canPlayType should not be equal');
|
|
|
|
|
|
|
|
patchCanPlayType = video.canPlayType;
|
|
|
|
unpatchedCanPlayType = vjs.Html5.unpatchCanPlayType();
|
|
|
|
|
|
|
|
strictEqual(video.canPlayType, HTMLVideoElement.prototype.canPlayType, 'original canPlayType and unpatched canPlayType should be equal');
|
|
|
|
|
|
|
|
vjs.ANDROID_VERSION = oldAV;
|
|
|
|
});
|
|
|
|
|
|
|
|
test('should return maybe for HLS urls on Android 4.0 or above', function() {
|
|
|
|
var oldAV = vjs.ANDROID_VERSION,
|
|
|
|
video = document.createElement('video');
|
|
|
|
|
2014-03-25 01:00:00 +03:00
|
|
|
vjs.ANDROID_VERSION = 4.0;
|
2014-03-18 03:47:47 +03:00
|
|
|
vjs.Html5.patchCanPlayType();
|
|
|
|
|
2014-03-25 01:00:00 +03:00
|
|
|
strictEqual(video.canPlayType('application/x-mpegurl'), 'maybe', 'android version 4.0 or above should be a maybe for x-mpegurl');
|
|
|
|
strictEqual(video.canPlayType('application/x-mpegURL'), 'maybe', 'android version 4.0 or above should be a maybe for x-mpegURL');
|
|
|
|
strictEqual(video.canPlayType('application/vnd.apple.mpegurl'), 'maybe', 'android version 4.0 or above should be a maybe for vnd.apple.mpegurl');
|
|
|
|
strictEqual(video.canPlayType('application/vnd.apple.mpegURL'), 'maybe', 'android version 4.0 or above should be a maybe for vnd.apple.mpegurl');
|
2014-03-18 03:47:47 +03:00
|
|
|
|
|
|
|
vjs.ANDROID_VERSION = oldAV;
|
|
|
|
});
|
|
|
|
|
|
|
|
test('should return a maybe for mp4 on OLD ANDROID', function() {
|
|
|
|
var isOldAndroid = vjs.IS_OLD_ANDROID,
|
|
|
|
video = document.createElement('video');
|
|
|
|
|
|
|
|
vjs.IS_OLD_ANDROID = true;
|
|
|
|
vjs.Html5.patchCanPlayType();
|
|
|
|
|
|
|
|
strictEqual(video.canPlayType('video/mp4'), 'maybe', 'old android should return a maybe for video/mp4');
|
|
|
|
|
|
|
|
vjs.IS_OLD_ANDROID = isOldAndroid;
|
|
|
|
});
|