Merge pull request #1512 from edx/anton/video-disallow-to-use-http-protocol
Video Player: Disallow users to enter video url's in http.
This commit is contained in:
@@ -145,7 +145,8 @@ define(["jquery", "underscore", "jquery.ajaxQueue"], function($, _) {
|
||||
}
|
||||
|
||||
var link = document.createElement('a'),
|
||||
match;
|
||||
allowedProtocols = ['https'],
|
||||
match, protocol;
|
||||
|
||||
link.href = url;
|
||||
match = link.pathname
|
||||
@@ -153,7 +154,8 @@ define(["jquery", "underscore", "jquery.ajaxQueue"], function($, _) {
|
||||
.pop()
|
||||
.match(/(.+)\.(mp4|webm)$/);
|
||||
|
||||
if (match) {
|
||||
protocol = link.protocol.slice(0, -1);
|
||||
if (match && $.inArray(protocol, allowedProtocols) !== -1) {
|
||||
cache[url] = {
|
||||
video: match[1],
|
||||
type: match[2]
|
||||
|
||||
@@ -18,8 +18,8 @@ function ($, Backbone, _, Utils, Editor, MetadataView, MetadataModel, MetadataCo
|
||||
type: MetadataModel.VIDEO_LIST_TYPE,
|
||||
value: [
|
||||
'http://youtu.be/12345678901',
|
||||
'video.mp4',
|
||||
'video.webm'
|
||||
'https://domain.com/video.mp4',
|
||||
'https://domain.com/video.webm'
|
||||
]
|
||||
},
|
||||
DisplayNameEntry = {
|
||||
@@ -116,7 +116,10 @@ function ($, Backbone, _, Utils, Editor, MetadataView, MetadataModel, MetadataCo
|
||||
help: 'A list of html5 sources.',
|
||||
options: [],
|
||||
type: MetadataModel.LIST_TYPE,
|
||||
value: ['default.mp4', 'default.webm']
|
||||
value: [
|
||||
'https://domain.com/default.mp4',
|
||||
'https://domain.com/default.webm'
|
||||
]
|
||||
},
|
||||
|
||||
youtubeEntry = {
|
||||
@@ -169,17 +172,14 @@ function ($, Backbone, _, Utils, Editor, MetadataView, MetadataModel, MetadataCo
|
||||
}, "Defaults never loaded", 1000);
|
||||
|
||||
runs(function() {
|
||||
|
||||
var displayNameValue = collection[0].getValue();
|
||||
var videoUrlValue = collection[1].getValue();
|
||||
|
||||
var displayNameValue = collection[0].getValue(),
|
||||
videoUrlValue = collection[1].getValue();
|
||||
expect(displayNameValue).toBe('default');
|
||||
expect(videoUrlValue).toEqual([
|
||||
'http://youtu.be/OEoXaMPEzfM',
|
||||
'default.mp4',
|
||||
'default.webm'
|
||||
'https://domain.com/default.mp4',
|
||||
'https://domain.com/default.webm'
|
||||
]);
|
||||
});
|
||||
});
|
||||
|
||||
it('If metadataCollection is not defined', function () {
|
||||
@@ -190,8 +190,8 @@ function ($, Backbone, _, Utils, Editor, MetadataView, MetadataModel, MetadataCo
|
||||
|
||||
expect(videoUrlValue).toEqual([
|
||||
'http://youtu.be/12345678901',
|
||||
'video.mp4',
|
||||
'video.webm'
|
||||
'https://domain.com/video.mp4',
|
||||
'https://domain.com/video.webm'
|
||||
]);
|
||||
});
|
||||
|
||||
@@ -202,8 +202,8 @@ function ($, Backbone, _, Utils, Editor, MetadataView, MetadataModel, MetadataCo
|
||||
|
||||
model.setValue([
|
||||
'12345678',
|
||||
'default.mp4',
|
||||
'default.webm'
|
||||
'https://domain.com/default.mp4',
|
||||
'https://domain.com/default.webm'
|
||||
]);
|
||||
|
||||
transcripts.syncBasicTab(metadataCollection, metadataView);
|
||||
@@ -213,8 +213,8 @@ function ($, Backbone, _, Utils, Editor, MetadataView, MetadataModel, MetadataCo
|
||||
|
||||
expect(videoUrlValue).toEqual([
|
||||
'',
|
||||
'default.mp4',
|
||||
'default.webm'
|
||||
'https://domain.com/default.mp4',
|
||||
'https://domain.com/default.webm'
|
||||
]);
|
||||
});
|
||||
});
|
||||
@@ -232,16 +232,16 @@ function ($, Backbone, _, Utils, Editor, MetadataView, MetadataModel, MetadataCo
|
||||
|
||||
runs(function() {
|
||||
|
||||
var displayNameValue = collection[0].getValue();
|
||||
var subValue = collection[1].getValue();
|
||||
var html5SourcesValue = collection[2].getValue();
|
||||
var youtubeValue = collection[3].getValue();
|
||||
var displayNameValue = collection[0].getValue(),
|
||||
subValue = collection[1].getValue(),
|
||||
html5SourcesValue = collection[2].getValue(),
|
||||
youtubeValue = collection[3].getValue();
|
||||
|
||||
expect(displayNameValue).toBe('display value');
|
||||
expect(subValue).toBe('default');
|
||||
expect(html5SourcesValue).toEqual([
|
||||
'video.mp4',
|
||||
'video.webm'
|
||||
'https://domain.com/video.mp4',
|
||||
'https://domain.com/video.webm'
|
||||
]);
|
||||
expect(youtubeValue).toBe('12345678901');
|
||||
});
|
||||
@@ -259,8 +259,8 @@ function ($, Backbone, _, Utils, Editor, MetadataView, MetadataModel, MetadataCo
|
||||
expect(displayNameValue).toBe('default');
|
||||
expect(subValue).toBe('default');
|
||||
expect(html5SourcesValue).toEqual([
|
||||
'default.mp4',
|
||||
'default.webm'
|
||||
'https://domain.com/default.mp4',
|
||||
'https://domain.com/default.webm'
|
||||
]);
|
||||
expect(youtubeValue).toBe('OEoXaMPEzfM');
|
||||
});
|
||||
@@ -269,8 +269,8 @@ function ($, Backbone, _, Utils, Editor, MetadataView, MetadataModel, MetadataCo
|
||||
var model = transcripts.collection.models[1];
|
||||
|
||||
model.setValue([
|
||||
'video.mp4',
|
||||
'video.webm'
|
||||
'https://domain.com/video.mp4',
|
||||
'https://domain.com/video.webm'
|
||||
]);
|
||||
|
||||
transcripts.syncAdvancedTab(metadataCollection);
|
||||
@@ -280,8 +280,8 @@ function ($, Backbone, _, Utils, Editor, MetadataView, MetadataModel, MetadataCo
|
||||
youtubeValue = collection[3].getValue();
|
||||
|
||||
expect(html5SourcesValue).toEqual([
|
||||
'video.mp4',
|
||||
'video.webm'
|
||||
'https://domain.com/video.mp4',
|
||||
'https://domain.com/video.webm'
|
||||
]);
|
||||
expect(youtubeValue).toBe('');
|
||||
});
|
||||
|
||||
@@ -24,17 +24,13 @@ function ($, _, Utils, _str) {
|
||||
|
||||
} (videoId)),
|
||||
html5FileName = 'file_name',
|
||||
html5LinksList = (function (videoName) {
|
||||
html5LinksList = (function (videoName) {
|
||||
var videoTypes = ['mp4', 'webm'],
|
||||
links = [
|
||||
'http://somelink.com/%s.%s?param=1¶m=2#hash',
|
||||
'http://somelink.com/%s.%s#hash',
|
||||
'http://somelink.com/%s.%s?param=1¶m=2',
|
||||
'http://somelink.com/%s.%s',
|
||||
'ftp://somelink.com/%s.%s',
|
||||
'https://somelink.com/%s.%s',
|
||||
'somelink.com/%s.%s',
|
||||
'%s.%s'
|
||||
'https://somelink.com/%s.%s?param=1¶m=2#hash',
|
||||
'https://somelink.com/%s.%s#hash',
|
||||
'https://somelink.com/%s.%s?param=1¶m=2',
|
||||
'https://somelink.com/%s.%s'
|
||||
],
|
||||
data = {};
|
||||
|
||||
@@ -190,7 +186,12 @@ function ($, _, Utils, _str) {
|
||||
'http://google.com/somevideo_mp4',
|
||||
'http://google.com/somevideo:mp4',
|
||||
'http://google.com/somevideo',
|
||||
'http://google.com/somevideo.webm_'
|
||||
'http://google.com/somevideo.webm_',
|
||||
'http://somelink.com/video_name.mp4?param=1¶m=2#hash',
|
||||
'http://somelink.com/video_name.webm',
|
||||
'ftp://somelink.com/video_name.mp4',
|
||||
'somelink.com/video_name.webm',
|
||||
'video_name.mp4'
|
||||
];
|
||||
|
||||
$.each(html5WrongUrls, function (index, link) {
|
||||
|
||||
@@ -41,9 +41,9 @@ function ($, _, Utils, VideoList, MessageManager, MetadataView, MetadataModel, A
|
||||
options: [],
|
||||
type: MetadataModel.VIDEO_LIST_TYPE,
|
||||
value: [
|
||||
'http://youtu.be/12345678901',
|
||||
'video.mp4',
|
||||
'video.webm'
|
||||
'https://youtu.be/12345678901',
|
||||
'https://domain.com/video.mp4',
|
||||
'https://domain.com/video.webm'
|
||||
]
|
||||
},
|
||||
response = JSON.stringify({
|
||||
@@ -408,8 +408,8 @@ function ($, _, Utils, VideoList, MessageManager, MetadataView, MetadataModel, A
|
||||
|
||||
view.setValueInEditor([
|
||||
'http://youtu.be/12345678901',
|
||||
'video.mp4',
|
||||
'video'
|
||||
'https://domain.com/video.mp4',
|
||||
'https://domain.com/video'
|
||||
]);
|
||||
expect(view).assertIsCorrectVideoList(value);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user