зеркало из https://github.com/mozilla/popcorn-js.git
1. Assimilated youtube regex's
2. Added youtube regex tests
This commit is contained in:
Родитель
d44927ab3a
Коммит
3c61e384ac
|
@ -45,8 +45,7 @@ var onYouTubePlayerReady;
|
|||
YOUTUBE_STATE_BUFFERING = 3,
|
||||
YOUTUBE_STATE_CUED = 5;
|
||||
|
||||
var uriRegex = /^[^v]+v.(.{11}).*/,
|
||||
urlRegex = /^[^d]+d.(.{11}).*/;
|
||||
var urlRegex = /(\/e\/|be\/|\/embed\/|\/watch\?v=)([a-zA-Z0-9_]{11})/;
|
||||
|
||||
// Collection of all Youtube players
|
||||
var registry = {},
|
||||
|
@ -65,7 +64,7 @@ var onYouTubePlayerReady;
|
|||
var matches = urlRegex.exec( url );
|
||||
|
||||
// Return id, which comes after first equals sign
|
||||
return matches ? matches[1] : "";
|
||||
return matches ? matches[2] : "";
|
||||
}
|
||||
|
||||
// Extract the id from a player url
|
||||
|
@ -74,10 +73,10 @@ var onYouTubePlayerReady;
|
|||
return;
|
||||
}
|
||||
|
||||
var matches = uriRegex.exec( url );
|
||||
var matches = urlRegex.exec( url );
|
||||
|
||||
// Return id, which comes after first equals sign
|
||||
return matches ? matches[1] : "";
|
||||
return matches ? matches[2] : "";
|
||||
}
|
||||
|
||||
function getPlayerAddress( vidId, playerId ) {
|
||||
|
@ -196,7 +195,7 @@ var onYouTubePlayerReady;
|
|||
this.duration = 0;
|
||||
|
||||
this.vidId = extractIdFromUrl( url ) || extractIdFromUri( url );
|
||||
|
||||
|
||||
if ( !this.vidId ) {
|
||||
throw "Could not find video id";
|
||||
}
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
</p>
|
||||
<div id="video" style="width: 360px; height: 300px" ></div>
|
||||
<div id="video2" style="width: 360px; height: 300px" ></div>
|
||||
<div id="video3" style="width: 360px; height: 300px" ></div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -185,3 +185,42 @@ test( "Popcorn YouTube Plugin Url and Duration Tests", function() {
|
|||
|
||||
popcorn.play();
|
||||
});
|
||||
|
||||
test( "Popcorn YouTube Plugin Url Regex Test", function() {
|
||||
|
||||
QUnit.reset();
|
||||
|
||||
var urlTests = [
|
||||
{ name: 'standard',
|
||||
url: 'http://www.youtube.com/watch?v=9oar9glUCL0',
|
||||
},
|
||||
{ name: 'share url',
|
||||
url: 'http://youtu.be/9oar9glUCL0',
|
||||
},
|
||||
{ name: 'long embed',
|
||||
url: 'http://www.youtube.com/embed/9oar9glUCL0',
|
||||
},
|
||||
{ name: 'short embed',
|
||||
url: 'http://www.youtube.com/e/9oar9glUCL0',
|
||||
},
|
||||
];
|
||||
|
||||
expect( urlTests.length );
|
||||
stop( 10000 );
|
||||
|
||||
for ( var t in urlTests ) {
|
||||
|
||||
var urlTest = urlTests[t],
|
||||
popcorn = Popcorn( Popcorn.youtube( 'video3', urlTest.url ) );
|
||||
|
||||
equals( popcorn.video.vidId, '9oar9glUCL0', 'Video id is correct for ' + urlTest.name );
|
||||
popcorn.pause();
|
||||
|
||||
// Get rid of the youtube object inside the video3, to keep things simple
|
||||
var div = document.getElementById('video3');
|
||||
div.removeChild(div.firstChild);
|
||||
}
|
||||
|
||||
start();
|
||||
});
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче