Skip to content
Browse files

More build and testing cleanup. Also some reorganization.

  • Loading branch information...
1 parent 0c9d533 commit 6e5fc8d687b43ca60082b06ae2f5eb02b59c17f6 @heff heff committed with mmcc
View
1 .gitignore
@@ -1,6 +1,7 @@
.DS_Store
dist/*
build/files/*
+build/temp/*
docs/api/*
dev.html
projects
View
309 Gruntfile.js
@@ -1,53 +1,22 @@
module.exports = function(grunt) {
- var pkg, version, verParts, license, licenseNoVtt;
-
- pkg = grunt.file.readJSON('package.json');
-
- verParts = pkg.version.split('.');
- version = {
+ var pkg = grunt.file.readJSON('package.json');
+ var license = grunt.file.read('build/license-header.txt');
+ var verParts = pkg.version.split('.');
+ var version = {
full: pkg.version,
major: verParts[0],
minor: verParts[1],
patch: verParts[2]
};
+
version.majorMinor = version.major + '.' + version.minor;
grunt.vjsVersion = version;
- licenseNoVtt = '/**\n'+
- ' * @license\n'+
- ' * Video.js '+version.full+' <http://videojs.com/>\n'+
- ' * <%= pkg.copyright %>\n'+
- ' * Available under Apache License Version 2.0\n'+
- ' * <https://github.com/videojs/video.js/blob/master/LICENSE>\n'+
- ' */\n';
-
- license = licenseNoVtt.slice(0, -4) +
- ' * \n'+
- ' * Includes vtt.js <https://github.com/mozilla/vtt.js>\n'+
- ' * Available under Apache License Version 2.0\n'+
- ' * <https://github.com/mozilla/vtt.js/blob/master/LICENSE>\n'+
- ' */\n';
-
- // loading predefined source order from source-loader.js
- // trust me, this is the easist way to do it so far
- /*jshint undef:false, evil:true */
- var blockSourceLoading = true;
- var sourceFiles; // Needed to satisfy jshint
- eval(grunt.file.read('./build/source-loader.js'));
-
- grunt.sourceFiles = sourceFiles;
-
// Project configuration.
grunt.initConfig({
pkg: pkg,
- build: {
- src: 'src/js/dependencies.js',
- options: {
- baseDir: 'src/js/'
- }
- },
clean: {
- build: ['build/files/*'],
+ build: ['build/temp/*'],
dist: ['dist/*']
},
jshint: {
@@ -61,6 +30,8 @@ module.exports = function(grunt) {
uglify: {
options: {
sourceMap: true,
+ sourceMapIn: 'build/temp/video.js.map',
+ sourceMapRoot: '../../src/js',
preserveComments: 'some',
mangle: true,
compress: {
@@ -74,25 +45,13 @@ module.exports = function(grunt) {
drop_console: true
}
},
- source: {
+ build: {
files: {
- 'build/files/minified.video.js': 'build/files/combined.video.js',
- 'build/files/minified.video.novtt.js': 'build/files/combined.video.novtt.js'
- }
- },
- tests: {
- files: {
- 'build/files/test.minified.video.js': ['build/files/combined.video.js', 'test/unit/*.js']
+ 'build/temp/video.min.js': 'build/temp/video.js'
}
}
},
dist: {},
- qunit: {
- source: ['test/index.html'],
- minified: ['test/minified.html'],
- minified_api: ['test/minified-api.html'],
- es6: ['test/es6.html']
- },
watch: {
files: [ 'src/**/*', 'test/unit/**/*.js', 'Gruntfile.js' ],
tasks: 'dev'
@@ -108,14 +67,20 @@ module.exports = function(grunt) {
copy: {
minor: {
files: [
- {expand: true, cwd: 'build/files/', src: ['*'], dest: 'dist/'+version.majorMinor+'/', filter: 'isFile'} // includes files in path
+ {expand: true, cwd: 'build/temp/', src: ['*'], dest: 'dist/'+version.majorMinor+'/', filter: 'isFile'} // includes files in path
]
},
patch: {
files: [
- {expand: true, cwd: 'build/files/', src: ['*'], dest: 'dist/'+version.full+'/', filter: 'isFile'} // includes files in path
+ {expand: true, cwd: 'build/temp/', src: ['*'], dest: 'dist/'+version.full+'/', filter: 'isFile'} // includes files in path
]
- }
+ },
+ fonts: { expand: true, cwd: 'src/css/font/', src: ['*'], dest: 'build/temp/font/', filter: 'isFile' },
+ swf: { src: './node_modules/videojs-swf/dist/video-js.swf', dest: './build/temp/video-js.swf' },
+ novtt: { src: './build/temp/video.js', dest: './build/temp/alt/video.novtt.js' },
+ dist: { expand: true, cwd: 'build/temp/', src: ['**/**'], dest: 'dist/', filter: 'isFile' },
+ examples: { expand: true, cwd: 'build/examples/', src: ['**/**'], dest: 'dist/examples/', filter: 'isFile' },
+ cdn: { expand: true, cwd: 'dist/', src: ['**/**'], dest: 'dist/cdn/', filter: 'isFile' },
},
aws_s3: {
options: {
@@ -172,16 +137,16 @@ module.exports = function(grunt) {
cssmin: {
minify: {
expand: true,
- cwd: 'build/files/',
+ cwd: 'build/temp/',
src: ['video-js.css'],
- dest: 'build/files/',
+ dest: 'build/temp/',
ext: '.min.css'
}
},
less: {
dev: {
files: {
- 'build/files/video-js.css': 'src/css/video-js.less'
+ 'build/temp/video-js.css': 'src/css/video-js.less'
}
}
},
@@ -191,115 +156,30 @@ module.exports = function(grunt) {
configFile: 'test/karma.conf.js'
},
- // this only runs on PRs from the mainrepo on saucelabs
- saucelabs: {
- browsers: ['chrome_sl']
- },
- chrome_sl: {
- browsers: ['chrome_sl']
- },
- firefox_sl: {
- browsers: ['firefox_sl']
- },
- safari_sl: {
- browsers: ['safari_sl']
- },
- ipad_sl: {
- browsers: ['ipad_sl']
- },
- android_sl: {
- browsers: ['android_sl']
- },
- ie_sl: {
- browsers: ['ie_sl']
- },
-
// these are run locally on local browsers
dev: {
browsers: ['Chrome', 'Firefox', 'Safari']
},
- chromecanary: {
- browsers: ['ChromeCanary']
- },
- chrome: {
- browsers: ['Chrome']
- },
- firefox: {
- browsers: ['Firefox']
- },
- safari: {
- browsers: ['Safari']
- },
- ie: {
- browsers: ['IE']
- },
- phantomjs: {
- browsers: ['PhantomJS']
- },
-
- // This is all the minified tests run locally on local browsers
- minified_dev: {
- browsers: ['Chrome', 'Firefox', 'Safari'],
- configFile: 'test/karma.minified.conf.js'
- },
- minified_chromecanary: {
- browsers: ['ChromeCanary'],
- configFile: 'test/karma.minified.conf.js'
- },
- minified_chrome: {
- browsers: ['Chrome'],
- configFile: 'test/karma.minified.conf.js'
- },
- minified_firefox: {
- browsers: ['Firefox'],
- configFile: 'test/karma.minified.conf.js'
- },
- minified_safari: {
- browsers: ['Safari'],
- configFile: 'test/karma.minified.conf.js'
- },
- minified_ie: {
- browsers: ['IE'],
- configFile: 'test/karma.minified.conf.js'
- },
- minified_phantomjs: {
- browsers: ['PhantomJS'],
- configFile: 'test/karma.minified.conf.js'
- },
+ chromecanary: { browsers: ['ChromeCanary'] },
+ chrome: { browsers: ['Chrome'] },
+ firefox: { browsers: ['Firefox'] },
+ safari: { browsers: ['Safari'] },
+ ie: { browsers: ['IE'] },
+ phantomjs: { browsers: ['PhantomJS'] },
- // This is all the minified api tests run locally on local browsers
- minified_api_dev: {
- browsers: ['Chrome', 'Firefox', 'Safari'],
- configFile: 'test/karma.minified.api.conf.js'
- },
- minified_api_chromecanary: {
- browsers: ['ChromeCanary'],
- configFile: 'test/karma.minified.api.conf.js'
- },
- minified_api_chrome: {
- browsers: ['Chrome'],
- configFile: 'test/karma.minified.api.conf.js'
- },
- minified_api_firefox: {
- browsers: ['Firefox'],
- configFile: 'test/karma.minified.api.conf.js'
- },
- minified_api_safari: {
- browsers: ['Safari'],
- configFile: 'test/karma.minified.api.conf.js'
- },
- minified_api_ie: {
- browsers: ['IE'],
- configFile: 'test/karma.minified.api.conf.js'
- },
- minified_api_phantomjs: {
- browsers: ['PhantomJS'],
- configFile: 'test/karma.minified.api.conf.js'
- }
+ // this only runs on PRs from the mainrepo on saucelabs
+ saucelabs: { browsers: ['chrome_sl'] },
+ chrome_sl: { browsers: ['chrome_sl'] },
+ firefox_sl: { browsers: ['firefox_sl'] },
+ safari_sl: { browsers: ['safari_sl'] },
+ ipad_sl: { browsers: ['ipad_sl'] },
+ android_sl: { browsers: ['android_sl'] },
+ ie_sl: { browsers: ['ie_sl'] }
},
vjsdocs: {
all: {
- src: sourceFiles,
+ // TODO: Update vjsdocs to support new build, or switch to jsdoc
+ src: '',
dest: 'docs/api',
options: {
baseURL: 'https://github.com/videojs/video.js/blob/master/'
@@ -309,7 +189,7 @@ module.exports = function(grunt) {
vjslanguages: {
defaults: {
files: {
- 'build/files/lang': ['lang/*.json']
+ 'build/temp/lang': ['lang/*.json']
}
}
},
@@ -320,33 +200,10 @@ module.exports = function(grunt) {
return path.relative('dist', filepath);
},
// compression: 'DEFLATE',
- src: ['dist/video-js/**/*'],
+ src: ['dist/**/*'],
dest: 'dist/video-js-' + version.full + '.zip'
}
},
- usebanner: {
- options: {
- position: 'top',
- banner: license,
- linebreak: true
- },
- dist: {
- options: {
- banner: license
- },
- files: {
- src: [ 'build/files/combined.video.js']
- }
- },
- novtt: {
- options: {
- banner: licenseNoVtt
- },
- files: {
- src: [ 'build/files/combined.video.novtt.js']
- }
- }
- },
version: {
options: {
pkg: 'package.json'
@@ -368,6 +225,12 @@ module.exports = function(grunt) {
release: 'patch'
},
src: ['package.json', 'bower.json', 'component.json']
+ },
+ css: {
+ options: {
+ prefix: '@version\\s*'
+ },
+ src: 'build/temp/video-js.css'
}
},
'github-release': {
@@ -388,40 +251,64 @@ module.exports = function(grunt) {
}
},
browserify: {
- dist: {
+ build: {
files: {
- 'build/files/video-es6.js': ['src/js/video.js']
+ 'build/temp/video.js': ['src/js/video.js']
},
options: {
browserifyOptions: {
debug: true,
standalone: 'videojs'
},
+ banner: license,
transform: [
require('babelify').configure({
sourceMapRelative: './src/js'
- })
+ }),
+ ['browserify-versionify', {
+ placeholder: '__VERSION__',
+ version: pkg.version
+ }],
+ ['browserify-versionify', {
+ placeholder: '__VERSION_NO_PATCH__',
+ version: version.majorMinor
+ }]
]
}
}
},
+ exorcise: {
+ build: {
+ options: {},
+ files: {
+ 'build/temp/video.js.map': ['build/temp/video.js'],
+ }
+ }
+ },
coveralls: {
all: {
src: 'test/coverage/lcov.info'
}
+ },
+ concat: {
+ vtt: {
+ options: {
+ separator: '\n',
+ },
+ src: ['build/temp/video.js', 'node_modules/vtt.js/dist/vtt.js'],
+ dest: 'build/temp/video.js',
+ },
}
});
grunt.loadNpmTasks('grunt-videojs-languages');
grunt.loadNpmTasks('grunt-contrib-connect');
grunt.loadNpmTasks('grunt-contrib-jshint');
- grunt.loadNpmTasks('grunt-contrib-qunit');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-contrib-less');
- grunt.loadNpmTasks('contribflow');
grunt.loadNpmTasks('grunt-karma');
grunt.loadNpmTasks('videojs-doc-generator');
grunt.loadNpmTasks('grunt-zip');
@@ -434,15 +321,49 @@ module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-browserify');
grunt.loadNpmTasks('grunt-coveralls');
+ grunt.loadNpmTasks('grunt-contrib-copy');
+ grunt.loadNpmTasks('grunt-contrib-concat');
+ grunt.loadNpmTasks('grunt-exorcise');
+
+ grunt.registerTask('build', [
+ 'clean:build',
+ 'jshint',
+ 'browserify',
+ 'copy:novtt',
+ 'concat:vtt',
+ 'exorcise',
+ 'uglify',
+ 'less',
+ 'version:css',
+ 'cssmin',
+ 'copy:fonts',
+ 'copy:swf',
+ 'vjslanguages'
+ ]);
+
+ grunt.registerTask('dist', [
+ 'clean:dist',
+ 'build',
+ 'copy:dist',
+ 'copy:examples',
+ 'zip:dist'
+ ]);
+
+ grunt.registerTask('cdn', [
+ 'dist',
+ 'copy:cdn',
+ 'dist-cdn'
+ ]);
+
+ // Remove this and add to the test task once mmcc's coverall changes are merged
+ grunt.registerTask('newtest', ['build', 'karma:chrome']);
- grunt.registerTask('pretask', ['jshint', 'less', 'vjslanguages', 'browserify', 'usebanner']);
// Default task.
- grunt.registerTask('default', ['pretask', 'dist']);
- // Development watch task
- grunt.registerTask('dev', ['jshint', 'less', 'vjslanguages', 'browserify:dist', 'usebanner', 'karma:chrome']);
+ grunt.registerTask('default', ['build', 'test']);
- grunt.registerTask('dist', 'Creating distribution', ['dist-copy', 'zip:dist']);
+ // Development watch task. Doing the minimum required.
+ grunt.registerTask('dev', ['jshint', 'less', 'browserify', 'karma:chrome']);
// Load all the tasks in the tasks directory
- grunt.loadTasks('tasks');
+ grunt.loadTasks('build/tasks');
};
View
2 LICENSE
@@ -1,4 +1,4 @@
-Copyright 2013 Brightcove, Inc.
+Copyright Brightcove, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
View
17 src/js/cdn.js → build/cdn.js
@@ -1,6 +1,3 @@
-import pkg from '../../package.json';
-import window from 'global/window';
-
/**
* Google Analytics tracking pixel for the freely hosted version of Video.js
* at vjs.zencdn.net. We'll use this data to develop a support matrix of
@@ -11,12 +8,8 @@ import window from 'global/window';
*
* @type {Image}
*/
-var sendGaEvent = function(image) {
- const i = new window.Image();
- const w = window;
- const n = window.navigator;
- const l = window.location;
- const e = window.encodeURIComponent;
+;(function(i,w,n,e,l){
+ l=w.location;
// Google Analytics has a limit of 10 million hits per month for free accounts.
// The Video.js CDN goes over this (by a lot) and they've asked us to stop.
@@ -64,8 +57,6 @@ var sendGaEvent = function(image) {
// Random number used as cache buster instead of utmn
+'&utmcc=__utma%3D1.'+Math.floor(Math.random()*1e10)+'.1.1.1.1%3B'
// Custom Var: vjsv is the variable name and 1.0.0 is the VJS version
- +'&utme=8(vjsv)9('+ pkg.version +')'
+ +'&utme=8(vjsv)9(v0.0.0)'
;
-};
-
-export default sendGaEvent;
+})(new Image(),window,navigator,encodeURIComponent);
View
11 build/license-header.txt
@@ -0,0 +1,11 @@
+/**
+ * @license
+ * Video.js <%= pkg.version %> <http://videojs.com/>
+ * <%= pkg.copyright %>
+ * Available under Apache License Version 2.0
+ * <https://github.com/videojs/video.js/blob/master/LICENSE>
+ *
+ * Includes vtt.js <https://github.com/mozilla/vtt.js>
+ * Available under Apache License Version 2.0
+ * <https://github.com/mozilla/vtt.js/blob/master/LICENSE>
+ */
View
84 build/source-loader.js
@@ -1,84 +0,0 @@
-// This file is used to load the video.js source files into a page
-// in the correct order based on dependencies.
-// When you create a new source file you will need to add
-// it to the list below to use it in sandbox/index.html and
-// test/index.html
-
-// You can use the projectRoot variable to adjust relative urls
-// that this script loads. By default it's "../", which is what /sandbox
-// and /test need. If you had sandbox/newDir/index.html, in index.html you
-// would set projectRoot = "../../"
-
-// We could use somehting like requireJS to load files, and at one point
-// we used goog.require/provide to load dependencies, but that seems like
-// overkill with the small number of files we actually have.
-
-// ADD NEW SOURCE FILES HERE
-var sourceFiles = [
- "src/js/core.js",
- "src/js/core-object.js",
- "src/js/events.js",
- "src/js/lib.js",
- "src/js/xhr.js",
- "src/js/util.js",
- "src/js/event-emitter.js",
- "src/js/component.js",
- "src/js/button.js",
- "src/js/slider.js",
- "src/js/menu.js",
- "src/js/media-error.js",
- "src/js/fullscreen-api.js",
- "src/js/player.js",
- "src/js/control-bar/control-bar.js",
- "src/js/control-bar/live-display.js",
- "src/js/control-bar/play-toggle.js",
- "src/js/control-bar/time-display.js",
- "src/js/control-bar/fullscreen-toggle.js",
- "src/js/control-bar/progress-control.js",
- "src/js/control-bar/volume-control.js",
- "src/js/control-bar/mute-toggle.js",
- "src/js/control-bar/volume-menu-button.js",
- "src/js/control-bar/playback-rate-menu-button.js",
- "src/js/poster.js",
- "src/js/loading-spinner.js",
- "src/js/big-play-button.js",
- "src/js/error-display.js",
- "src/js/media/media.js",
- "src/js/media/html5.js",
- "src/js/media/flash.js",
- "src/js/media/flash-rtmp.js",
- "src/js/media/loader.js",
- "src/js/tracks/text-track-enums.js",
- "src/js/tracks/text-track.js",
- "src/js/tracks/text-track-list.js",
- "src/js/tracks/text-track-cue-list.js",
- "src/js/tracks/text-track-controls.js",
- "src/js/tracks/text-track-settings.js",
- "src/js/json.js",
- "src/js/setup.js",
- "src/js/plugins.js"
-];
-
-// Allow overriding the default project root
-var projectRoot = projectRoot || '../';
-
-function loadScripts(scriptsArr){
- for (var i = 0; i < scriptsArr.length; i++) {
- // Using document.write because that's the easiest way to avoid triggering
- // asynchrnous script loading
- document.write( "<script src='" + projectRoot + scriptsArr[i] + "'><\/script>" );
- }
-}
-
-// We use this file in the grunt build script to load the same source file list
-// and don't want to load the scripts there.
-if (typeof blockSourceLoading === 'undefined') {
- loadScripts(sourceFiles);
-
- // Allow for making Flash first
- if (window.location.href.indexOf("?flash") !== -1) {
- // Using doc.write to load this script to, otherwise when it runs videojs
- // is undefined
- document.write('<script>videojs.options.techOrder = ["flash"];videojs.options.flash.swf = "../src/swf/video-js.swf";</script>')
- }
-}
View
0 tasks/cdn-links.js → build/tasks/cdn-links.js
File renamed without changes.
View
22 build/tasks/dist-cdn.js
@@ -0,0 +1,22 @@
+var uglify = require('uglify-js');
+
+module.exports = function(grunt) {
+ grunt.registerTask('dist-cdn', 'Assembling distribution', function(){
+ var css, jsmin, jsdev, cdnjs;
+
+ // Replace font urls with CDN versions
+ css = grunt.file.read('dist/cdn/video-js.css');
+ css = css.replace(/font\//g, '../f/3/');
+ grunt.file.write('dist/cdn/video-js.css', css);
+
+ // GA Tracking Pixel (manually building the pixel URL)
+ cdnjs = '\n' + uglify.minify('build/cdn.js').code.replace('v0.0.0', 'v'+ grunt.vjsVersion.full);
+
+ // Add CDN-specfic JS
+ js = grunt.file.read('dist/cdn/video.js');
+ grunt.file.write('dist/cdn/video.js', js + cdnjs);
+
+ jsmin = grunt.file.read('dist/cdn/video.min.js');
+ grunt.file.write('dist/cdn/video.min.js', jsmin + cdnjs);
+ });
+}
View
0 tasks/saucelabs.js → build/tasks/saucelabs.js
File renamed without changes.
View
0 tasks/test.js → build/tasks/test.js
File renamed without changes.
View
0 tasks/vjs-version.js → build/tasks/vjs-version.js
File renamed without changes.
View
0 build/demo-files/demo.captions.vtt → docs/examples/shared/example-captions.vtt
File renamed without changes.
View
11 build/demo-files/demo.html → docs/examples/simple-embed/index.html
@@ -4,16 +4,15 @@
<title>Video.js | HTML5 Video Player</title>
<!-- Chang URLs to wherever Video.js files will be hosted -->
- <link href="video-js.css" rel="stylesheet" type="text/css">
+ <link href="../../video-js.css" rel="stylesheet" type="text/css">
<!-- video.js must be in the <head> for older IEs to work. -->
- <script src="video.js"></script>
+ <script src="../../video.js"></script>
<!-- Unless using the CDN hosted version, update the URL to the Flash SWF -->
<script>
- videojs.options.flash.swf = "video-js.swf";
+ videojs.options.flash.swf = "../../video-js.swf";
</script>
-
</head>
<body>
@@ -23,8 +22,8 @@
<source src="http://video-js.zencoder.com/oceans-clip.mp4" type='video/mp4' />
<source src="http://video-js.zencoder.com/oceans-clip.webm" type='video/webm' />
<source src="http://video-js.zencoder.com/oceans-clip.ogv" type='video/ogg' />
- <track kind="captions" src="demo.captions.vtt" srclang="en" label="English"></track><!-- Tracks need an ending tag thanks to IE9 -->
- <track kind="subtitles" src="demo.captions.vtt" srclang="en" label="English"></track><!-- Tracks need an ending tag thanks to IE9 -->
+ <track kind="captions" src="../shared/example-captions.vtt" srclang="en" label="English"></track><!-- Tracks need an ending tag thanks to IE9 -->
+ <track kind="subtitles" src="../shared/example-captions.vtt" srclang="en" label="English"></track><!-- Tracks need an ending tag thanks to IE9 -->
<p class="vjs-no-js">To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a></p>
</video>
View
19 package.json
@@ -20,39 +20,36 @@
"type": "git",
"url": "https://github.com/videojs/video.js.git"
},
- "main": "./dist/video-js/video.js",
+ "main": "src/js/video.js",
"dependencies": {
"videojs-swf": "4.5.4",
- "vtt.js": "git+https://github.com/gkatsev/vtt.js.git#shim-build"
+ "vtt.js": "git+https://github.com/gkatsev/vtt.js.git#shim-build",
+ "global": "^4.3.0"
},
"devDependencies": {
"babelify": "^5.0.4",
"blanket": "^1.1.6",
"browserify-istanbul": "^0.2.1",
- "calcdeps": "~0.1.7",
+ "browserify-versionify": "^1.0.4",
"chg": "~0.2.0",
- "contribflow": "~0.2.0",
- "github": "~0.1.14",
- "global": "^4.3.0",
"grunt": "^0.4.4",
"grunt-aws-s3": "^0.12.1",
- "grunt-banner": "~0.2.0",
"grunt-browserify": "^3.5.0",
"grunt-cli": "~0.1.0",
"grunt-contrib-clean": "~0.4.0a",
+ "grunt-contrib-concat": "^0.5.1",
"grunt-contrib-connect": "~0.7.1",
- "grunt-contrib-copy": "~0.3.2",
+ "grunt-contrib-copy": "^0.8.0",
"grunt-contrib-cssmin": "~0.6.0",
"grunt-contrib-jshint": "^0.11.0",
"grunt-contrib-less": "~0.6.4",
- "grunt-contrib-qunit": "~0.2.1",
"grunt-contrib-uglify": "^0.8.0",
"grunt-contrib-watch": "~0.1.4",
"grunt-coveralls": "^1.0.0",
+ "grunt-exorcise": "^1.0.1",
"grunt-fastly": "^0.1.3",
"grunt-github-releaser": "^0.1.17",
"grunt-karma": "^0.8.3",
- "grunt-s3": "~0.2.0-alpha",
"grunt-version": "~0.3.0",
"grunt-videojs-languages": "0.0.4",
"grunt-zip": "0.10.2",
@@ -68,8 +65,6 @@
"karma-safari-launcher": "^0.1.1",
"karma-sauce-launcher": "^0.2.8",
"karma-sinon": "^1.0.3",
- "mocha": "~1.8.1",
- "open": "0.0.4",
"qunitjs": "~1.14.0",
"sinon": "~1.9.1",
"uglify-js": "~2.3.6",
View
16 sandbox/index.html.example
@@ -4,19 +4,25 @@
<meta charset="utf-8" />
<title>Video.js Sandbox</title>
- <link href="../build/files/video-js.css" rel="stylesheet" type="text/css">
+ <link href="../build/temp/video-js.css" rel="stylesheet" type="text/css">
<!-- LOAD VIDEO.JS SOURCE FILES IN ORDER -->
- <script src="../build/source-loader.js"></script>
+ <script src="../build/temp/video.js"></script>
<!-- Set the location of the flash SWF -->
<script>
- vjs.options.flash.swf = '../node_modules/videojs-swf/dist/video-js.swf'
+ vjs.options.flash.swf = '../build/temp/video-js.swf'
</script>
</head>
<body>
- <p style="background-color:#eee; border: 1px solid #777; padding: 10px; font-size: .8em; line-height: 1.5em; font-family: Verdana, sans-serif;">You can use /sandbox/ for writing and testing your own code. Nothing in /sandbox/ will get checked into the repo, except files that end in .example, so please don't edit or add those files. To get started make a copy of index.html.example and rename it to index.html.</p>
+ <div style="background-color:#eee; border: 1px solid #777; padding: 10px; margin-bottom: 20px; font-size: .8em; line-height: 1.5em; font-family: Verdana, sans-serif;">
+ <p>You can use /sandbox/ for writing and testing your own code. Nothing in /sandbox/ will get checked into the repo, except files that end in .example (so don't edit or add those files). To get started make a copy of index.html.example and rename it to index.html.</p>
+ <pre>cp sandbox/index.html.example index.html</pre>
+ <pre>grunt watch</pre>
+ <pre>grunt connect</pre>
+ <pre>open http://localhost:9999/sandbox/index.html</pre>
+ </div>
<video id="vid1" class="video-js vjs-default-skin" controls preload="auto" width="640" height="264"
poster="http://video-js.zencoder.com/oceans-clip.png"
@@ -24,7 +30,7 @@
<source src="http://video-js.zencoder.com/oceans-clip.mp4" type='video/mp4'>
<source src="http://video-js.zencoder.com/oceans-clip.webm" type='video/webm'>
<source src="http://video-js.zencoder.com/oceans-clip.ogv" type='video/ogg'>
- <track kind="captions" src="../build/demo-files/demo.captions.vtt" srclang="en" label="English"></track><!-- Tracks need an ending tag thanks to IE9 -->
+ <track kind="captions" src="../docs/examples/shared/example-captions.vtt" srclang="en" label="English"></track><!-- Tracks need an ending tag thanks to IE9 -->
<p class="vjs-no-js">To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a></p>
</video>
View
4 sandbox/language.html.example
@@ -5,10 +5,10 @@
<meta charset="utf-8" />
<title>VideoJS Languages Demo</title>
- <link href="../build/files/video-js.css" rel="stylesheet" type="text/css">
+ <link href="../build/temp/video-js.css" rel="stylesheet" type="text/css">
<!-- LOAD VIDEO.JS SOURCE FILES IN ORDER -->
- <script src="../build/source-loader.js"></script>
+ <script src="../build/temp/video.js"></script>
<!-- Set the location of the flash SWF -->
<!-- Add support for Spanish 'es' -->
View
4 sandbox/plugin.html.example
@@ -4,10 +4,10 @@
<meta charset="utf-8" />
<title>Video.js Plugin Example</title>
- <link href="../build/files/video-js.css" rel="stylesheet" type="text/css">
+ <link href="../build/temp/video-js.css" rel="stylesheet" type="text/css">
<!-- LOAD VIDEO.JS SOURCE FILES IN ORDER -->
- <script src="../build/source-loader.js"></script>
+ <script src="../build/temp/video.js"></script>
</head>
<body>
View
2 src/css/video-js.less
@@ -1,6 +1,6 @@
/*!
Video.js Default Styles (http://videojs.com)
-Version GENERATED_AT_BUILD
+@version GENERATED_AT_BUILD
Create your own skin at http://designer.videojs.com
*/
View
8 src/js/core.js
@@ -76,18 +76,18 @@ var videojs = function(id, options, ready){
// var videojs = window['videojs'] = vjs;
// CDN Version. Used to target right flash swf.
-videojs.CDN_VERSION = 'GENERATED_CDN_VSN';
+videojs.CDN_VERSION = '__VERSION_NO_PATCH__';
videojs.ACCESS_PROTOCOL = ('https:' == document.location.protocol ? 'https://' : 'http://');
/**
* Full player version
* @type {string}
*/
-videojs['VERSION'] = 'GENERATED_FULL_VSN';
+videojs['VERSION'] = '__VERSION__';
// Set CDN Version of swf
-// The added (+) blocks the replace from changing this GENERATED_CDN_VSN string
-if (videojs.CDN_VERSION !== 'GENERATED'+'_CDN_VSN') {
+// The added (+) blocks the replace from changing this _VERSION_NO_PATCH_ string
+if (videojs.CDN_VERSION !== '__VERSION_'+'NO_PATCH__') {
Options['flash']['swf'] = videojs.ACCESS_PROTOCOL + 'vjs.zencdn.net/'+videojs.CDN_VERSION+'/video-js.swf';
}
View
47 tasks/build.js
@@ -1,47 +0,0 @@
-module.exports = function(grunt) {
- grunt.registerMultiTask('build', 'Building Source', function(){
- var vtt, novtt;
-
- // Fix windows file path delimiter issue
- var i = grunt.sourceFiles.length;
- while (i--) {
- grunt.sourceFiles[i] = grunt.sourceFiles[i].replace(/\\/g, '/');
- }
-
- // Create a combined sources file. https://github.com/zencoder/video-js/issues/287
- var combined = '';
- grunt.sourceFiles.forEach(function(result){
- combined += grunt.file.read(result);
- });
- // Replace CDN version ref in js. Use major/minor version.
- combined = combined.replace(/GENERATED_CDN_VSN/g, grunt.vjsVersion.majorMinor);
- combined = combined.replace(/GENERATED_FULL_VSN/g, grunt.vjsVersion.full);
-
- vtt = grunt.file.read('node_modules/vtt.js/dist/vtt.js');
- novtt = combined;
- combined += '\n'+vtt;
-
- grunt.file.write('build/files/combined.video.js', combined);
- grunt.file.write('build/files/combined.video.novtt.js', novtt);
-
- // Copy over other files
- // grunt.file.copy('src/css/video-js.png', 'build/files/video-js.png');
- grunt.file.copy('node_modules/videojs-swf/dist/video-js.swf', 'build/files/video-js.swf');
-
- // Inject version number into css file
- var css = grunt.file.read('build/files/video-js.css');
- css = css.replace(/GENERATED_AT_BUILD/g, grunt.vjsVersion.full);
- grunt.file.write('build/files/video-js.css', css);
-
- // Copy over font files
- grunt.file.recurse('src/css/font', function(absdir, rootdir, subdir, filename) {
- // Block .DS_Store files
- if ('filename'.substring(0,1) !== '.') {
- grunt.file.copy(absdir, 'build/files/font/' + filename);
- }
- });
-
- // Minify CSS
- grunt.task.run(['cssmin']);
- });
-}
View
61 tasks/dist-copy.js
@@ -1,61 +0,0 @@
-module.exports = function(grunt) {
- grunt.registerTask('dist-copy', 'Assembling distribution', function(){
- var css, jsmin, jsdev, cdnjs, uglify;
-
- uglify = require('uglify-js');
-
- // Manually copy each source file
- grunt.file.copy('build/files/minified.video.js', 'dist/video-js/video.js');
- grunt.file.copy('build/files/combined.video.js', 'dist/video-js/video.dev.js');
- grunt.file.copy('build/files/minified.video.novtt.js', 'dist/video-js/video.novtt.js');
- grunt.file.copy('build/files/combined.video.novtt.js', 'dist/video-js/video.novtt.dev.js');
- grunt.file.copy('build/files/video-js.css', 'dist/video-js/video-js.css');
- grunt.file.copy('build/files/video-js.min.css', 'dist/video-js/video-js.min.css');
- grunt.file.copy('node_modules/videojs-swf/dist/video-js.swf', 'dist/video-js/video-js.swf');
- grunt.file.copy('build/demo-files/demo.html', 'dist/video-js/demo.html');
- grunt.file.copy('build/demo-files/demo.captions.vtt', 'dist/video-js/demo.captions.vtt');
- grunt.file.copy('src/css/video-js.less', 'dist/video-js/video-js.less');
-
-
- // Copy over font files
- grunt.file.recurse('build/files/font', function(absdir, rootdir, subdir, filename) {
- // Block .DS_Store files
- if ('filename'.substring(0,1) !== '.') {
- grunt.file.copy(absdir, 'dist/video-js/font/' + filename);
- }
- });
-
- // Copy over language files
- grunt.file.recurse('build/files/lang', function(absdir, rootdir, subdir, filename) {
- // Block .DS_Store files
- if ('filename'.substring(0,1) !== '.') {
- grunt.file.copy(absdir, 'dist/cdn/lang/' + filename);
- grunt.file.copy(absdir, 'dist/video-js/lang/' + filename);
- }
- });
-
- // ds_store files sometime find their way in
- if (grunt.file.exists('dist/video-js/.DS_Store')) {
- grunt.file['delete']('dist/video-js/.DS_Store');
- }
-
- // CDN version uses already hosted font files
- // Minified version only, doesn't need demo files
- grunt.file.copy('build/files/minified.video.js', 'dist/cdn/video.js');
- grunt.file.copy('build/files/video-js.min.css', 'dist/cdn/video-js.css');
- grunt.file.copy('node_modules/videojs-swf/dist/video-js.swf', 'dist/cdn/video-js.swf');
- grunt.file.copy('build/demo-files/demo.captions.vtt', 'dist/cdn/demo.captions.vtt');
- grunt.file.copy('build/demo-files/demo.html', 'dist/cdn/demo.html');
-
- // Replace font urls with CDN versions
- css = grunt.file.read('dist/cdn/video-js.css');
- css = css.replace(/font\//g, '../f/3/');
- grunt.file.write('dist/cdn/video-js.css', css);
-
- // Add CDN-specfic JS
- jsmin = grunt.file.read('dist/cdn/video.js');
- // GA Tracking Pixel (manually building the pixel URL)
- cdnjs = uglify.minify('src/js/cdn.js').code.replace('v0.0.0', 'v'+ grunt.vjsVersion.full);
- grunt.file.write('dist/cdn/video.js', jsmin + cdnjs);
- });
-}
View
82 tasks/next-issue.js
@@ -1,82 +0,0 @@
-module.exports = function(grunt) {
- grunt.registerTask('next-issue', 'Get the next issue that needs a response', function(){
- var done = this.async();
- var GitHubApi = require('github');
- var open = require('open');
-
- var github = new GitHubApi({
- // required
- version: '3.0.0',
- // optional
- debug: true,
- protocol: 'https',
- // host: 'github.my-GHE-enabled-company.com',
- // pathPrefix: '/api/v3', // for some GHEs
- timeout: 5000
- });
-
- github.issues.repoIssues({
- // optional:
- // headers: {
- // 'cookie': 'blahblah'
- // },
- user: 'videojs',
- repo: 'video.js',
- sort: 'updated',
- direction: 'asc',
- state: 'open',
- per_page: 100
- }, function(err, res) {
- var issueToOpen;
- var usersWithWrite = ['heff', 'mmcc'];
- var categoryLabels = ['enhancement', 'bug', 'question', 'feature'];
-
- console.log('Number of issues: '+res.length);
-
- // TODO: Find the best way to exclude an issue where a question has been asked of the
- // issue owner/submitter that hasn't been answerd yet.
- // A stupid simple first step would be to check for the needs: more info label
- // and exactly one comment (the question)
-
- // find issues that need categorizing, no category labels
- res.some(function(issue){
- if (issue.labels.length === 0) {
- return issueToOpen = issue; // break
- }
- // look for category labels
- var categorized = issue.labels.some(function(label){
- return categoryLabels.indexOf(label.name) >= 0;
- });
- if (!categorized) {
- return issueToOpen = issue; // break
- }
- });
- if (issueToOpen) {
- open(issueToOpen.html_url);
- return done();
- }
-
- // find issues that need confirming or answering
- res.some(function(issue){
- // look for confirmed label
- var confirmed = issue.labels.some(function(label){
- return label.name === 'confirmed';
- });
- // Was exluding questions, but that might leave a lot of people hanging
- // var question = issue.labels.some(function(label){
- // return label.name === 'question';
- // });
- if (!confirmed) { // && !question
- return issueToOpen = issue; // break
- }
- });
- if (issueToOpen) {
- open(issueToOpen.html_url);
- return done();
- }
-
- grunt.log.writeln('No next issue found');
- done();
- });
- });
-}
View
34 test/unit/api.js → test/api/api.js
@@ -1,11 +1,18 @@
-import videojs from '../../src/js/video.js';
-import TestHelpers from './test-helpers.js';
-import document from 'global/document';
+/**
+ * These tests run on the minified, window.videojs and ensure the needed
+ * APIs still exist
+ */
+
+(function(){
q.module('Player Minified');
+test('videojs should exist on the window', function() {
+ ok(window.videojs, 'videojs exists on the window');
+});
+
test('should be able to access expected player API methods', function() {
- var player = TestHelpers.makePlayer();
+ var player = videojs.getComponent('Player').prototype;
// Native HTML5 Methods
ok(player.error, 'error exists');
@@ -63,8 +70,6 @@ test('should be able to access expected player API methods', function() {
ok(player.requestFullScreen, 'requestFullScreen exists');
ok(player.isFullScreen, 'isFullScreen exists');
ok(player.cancelFullScreen, 'cancelFullScreen exists');
-
- player.dispose();
});
test('should be able to access expected component API methods', function() {
@@ -136,7 +141,7 @@ test('should be able to access expected MediaTech API methods', function() {
});
test('should export ready api call to public', function() {
- var videoTag = TestHelpers.makeTag();
+ var videoTag = testHelperMakeTag();
var fixture = document.getElementById('qunit-fixture');
fixture.appendChild(videoTag);
@@ -191,7 +196,7 @@ test('should export useful components to the public', function () {
});
test('should be able to initialize player twice on the same tag using string reference', function() {
- var videoTag = TestHelpers.makeTag();
+ var videoTag = testHelperMakeTag();
var id = videoTag.id;
var fixture = document.getElementById('qunit-fixture');
@@ -201,7 +206,7 @@ test('should be able to initialize player twice on the same tag using string ref
player.dispose();
ok(!document.getElementById(id), 'element is removed');
- videoTag = TestHelpers.makeTag();
+ videoTag = testHelperMakeTag();
fixture.appendChild(videoTag);
player = videojs('example_1');
@@ -209,7 +214,7 @@ test('should be able to initialize player twice on the same tag using string ref
});
test('videojs.players should be available after minification', function() {
- var videoTag = TestHelpers.makeTag();
+ var videoTag = testHelperMakeTag();
var id = videoTag.id;
var fixture = document.getElementById('qunit-fixture');
@@ -241,3 +246,12 @@ test('component can be subclassed externally', function(){
ok(new ControlBar(player), 'created a control bar without throwing');
});
+
+function testHelperMakeTag(){
+ var videoTag = document.createElement('video');
+ videoTag.id = 'example_1';
+ videoTag.className = 'video-js vjs-default-skin';
+ return videoTag;
+}
+
+})();
View
97 test/es6.html
@@ -1,97 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <title>Video.js Test Suite</title>
-
- <!-- Video.js CSS -->
- <link rel="stylesheet" href="../build/files/video-js.css" type="text/css">
-
- <!-- Sinon -->
- <script src="../node_modules/sinon/pkg/sinon.js"></script>
- <script src="../node_modules/sinon/pkg/sinon-ie.js"></script>
-
- <!-- QUnit -->
- <link rel="stylesheet" href="../node_modules/qunitjs/qunit/qunit.css" />
- <script src="../node_modules/qunitjs/qunit/qunit.js"></script>
-
- <script src="../build/files/video-es6.test.js"></script>
-
- <script type="text/javascript">
- (function(){
-
- // ADD NEW TEST FILES HERE
- window.tests = [
- 'test/unit/test-helpers.js',
- 'test/unit/core-object.js',
- 'test/unit/lib.js',
- 'test/unit/util.js',
- 'test/unit/events.js',
- 'test/unit/component.js',
- 'test/unit/button.js',
- 'test/unit/mediafaker.js',
- 'test/unit/player.js',
- 'test/unit/core.js',
- 'test/unit/media.js',
- 'test/unit/media.html5.js',
- 'test/unit/controls.js',
- 'test/unit/poster.js',
- 'test/unit/plugins.js',
- 'test/unit/flash.js',
- 'test/unit/api.js',
- 'test/unit/menu.js',
- 'test/unit/tracks/tracks.js',
- 'test/unit/tracks/text-track.js',
- 'test/unit/tracks/text-track-list.js',
- 'test/unit/tracks/text-track-cue-list.js',
- 'test/unit/tracks/text-track-controls.js',
- 'test/unit/tracks/text-track-settings.js'
- ];
-
- var projectRoot = '../';
- var scripts = [];
-
- window.loadScripts = function(scripts) {
- for (var i = 0; i < scripts.length; i++) {
- document.write("<script src='" + projectRoot + scripts[i] + "'><\/script>" );
- }
- }
-
- // Choose either the raw source and tests
- // Or the compiled source + tests.
- // Use ?comiled to use the compiled tests
- if (QUnit.urlParams.min || QUnit.urlParams.compiled) {
- window.compiled = true;
- } else {
- // Bunyip/Yeti starts tests after it's done loading which can
- // lead to a double Qunit.start error which reads as
- // "Uncaught Error: pushFailure() assertion outside test"
- if (window.$yetify) {
- QUnit.config.autostart = false;
- }
- }
-
- })()
- </script>
-
-</head>
-<body>
- <div>
- <h1 id="qunit-header">Video.js Test Suite</h1>
- <h2 id="qunit-banner"></h2>
- <div id="qunit-testrunner-toolbar"></div>
- <h2 id="qunit-userAgent"></h2>
- <ol id="qunit-tests"></ol>
- <div id="qunit-fixture"></div>
- </div>
-
- <script>
- // Loading tests before the end to give IE time to load vjs before tests
- if (!window.compiled) {
- loadScripts(window.tests);
- } else {
- var compiledTests = "build/files/test.minified.video.js";
- loadScripts([compiledTests]);
- }
- </script>
-</body>
-</html>
View
97 test/index.html
@@ -1,97 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <title>Video.js Test Suite</title>
-
- <!-- Video.js CSS -->
- <link rel="stylesheet" href="../build/files/video-js.css" type="text/css">
-
- <!-- Sinon -->
- <script src="../node_modules/sinon/pkg/sinon.js"></script>
- <script src="../node_modules/sinon/pkg/sinon-ie.js"></script>
-
- <!-- QUnit -->
- <link rel="stylesheet" href="../node_modules/qunitjs/qunit/qunit.css" />
- <script src="../node_modules/qunitjs/qunit/qunit.js"></script>
-
- <script type="text/javascript">
- (function(){
-
- // ADD NEW TEST FILES HERE
- window.tests = [
- 'test/unit/test-helpers.js',
- 'test/unit/core-object.js',
- 'test/unit/lib.js',
- 'test/unit/util.js',
- 'test/unit/events.js',
- 'test/unit/component.js',
- 'test/unit/button.js',
- 'test/unit/mediafaker.js',
- 'test/unit/player.js',
- 'test/unit/core.js',
- 'test/unit/media.js',
- 'test/unit/media.html5.js',
- 'test/unit/controls.js',
- 'test/unit/poster.js',
- 'test/unit/plugins.js',
- 'test/unit/flash.js',
- 'test/unit/api.js',
- 'test/unit/menu.js',
- 'test/unit/tracks/tracks.js',
- 'test/unit/tracks/text-track.js',
- 'test/unit/tracks/text-track-list.js',
- 'test/unit/tracks/text-track-cue-list.js',
- 'test/unit/tracks/text-track-controls.js',
- 'test/unit/tracks/text-track-settings.js'
- ];
-
- var projectRoot = '../';
- var scripts = [];
-
- window.loadScripts = function(scripts) {
- for (var i = 0; i < scripts.length; i++) {
- document.write("<script src='" + projectRoot + scripts[i] + "'><\/script>" );
- }
- }
-
- // Choose either the raw source and tests
- // Or the compiled source + tests.
- // Use ?comiled to use the compiled tests
- if (QUnit.urlParams.min || QUnit.urlParams.compiled) {
- window.compiled = true;
- } else {
- // Bunyip/Yeti starts tests after it's done loading which can
- // lead to a double Qunit.start error which reads as
- // "Uncaught Error: pushFailure() assertion outside test"
- if (window.$yetify) {
- QUnit.config.autostart = false;
- }
-
- loadScripts(['build/source-loader.js']);
- }
-
- })()
- </script>
-
-</head>
-<body>
- <div>
- <h1 id="qunit-header">Video.js Test Suite</h1>
- <h2 id="qunit-banner"></h2>
- <div id="qunit-testrunner-toolbar"></div>
- <h2 id="qunit-userAgent"></h2>
- <ol id="qunit-tests"></ol>
- <div id="qunit-fixture"></div>
- </div>
-
- <script>
- // Loading tests before the end to give IE time to load vjs before tests
- if (!window.compiled) {
- loadScripts(window.tests);
- } else {
- var compiledTests = "build/files/test.minified.video.js";
- loadScripts([compiledTests]);
- }
- </script>
-</body>
-</html>
View
2 test/karma-qunit-shim.js
@@ -3,4 +3,4 @@ var q = QUnit;
// This may not be needed anymore, but double check before removing
var fixture = document.createElement('div');
fixture.id = 'qunit-fixture';
-document.body.appendChild(fixture);
+document.body.appendChild(fixture);
View
22 test/karma.conf.js
@@ -1,19 +1,3 @@
-var fs = require('fs');
-var vm = require('vm');
-// var sourceLoader = fs.readFileSync('./build/source-loader.js', 'utf8');
-// var sandbox = {
-// blockSourceLoading: true,
-// document: {},
-// window: {}
-// };
-// var sourceFiles = [];
-//
-//
-// vm.runInNewContext(sourceLoader, sandbox, 'build/source-loader.js');
-// sourceFiles = sandbox.sourceFiles.map(function(src) {
-// return '../' + src;
-// });
-
module.exports = function(config) {
var customLaunchers = {
chrome_sl: {
@@ -75,9 +59,11 @@ module.exports = function(config) {
// customLaunchers: customLaunchers,
files: [
- '../build/files/video-js.css',
+ '../build/temp/video-js.min.css',
'../test/karma-qunit-shim.js',
- '../test/unit/**/*.js'
+ '../test/unit/**/*.js',
+ '../build/temp/video.min.js',
+ '../test/api/**/*.js',
],
preprocessors: {
View
48 test/karma.minified.api.conf.js
@@ -1,48 +0,0 @@
-module.exports = function(config) {
- config.set({
- frameworks: ['qunit'],
-
- autoWatch: false,
-
- singleRun: true,
-
- files: [
- '../build/files/video-js.min.css',
- '../test/karma-qunit-shim.js',
- '../node_modules/sinon/pkg/sinon.js',
- '../build/files/minified.video.js',
- '../test/unit/test-helpers.js',
- '../test/unit/api.js'
- ],
-
- plugins: [
- 'karma-qunit',
- 'karma-chrome-launcher',
- 'karma-firefox-launcher',
- 'karma-ie-launcher',
- 'karma-opera-launcher',
- 'karma-phantomjs-launcher',
- 'karma-safari-launcher'
- ],
-
- // test results reporter to use
- // possible values: 'dots', 'progress', 'junit'
- reporters: ['dots'],
-
- // web server port
- port: 9876,
-
- // cli runner port
- runnerPort: 9100,
-
- // enable / disable colors in the output (reporters and logs)
- colors: true,
-
- // level of logging
- // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
- logLevel: config.LOG_INFO,
-
- // If browser does not capture in given timeout [ms], kill it
- captureTimeout: 60000
- });
-};
View
46 test/karma.minified.conf.js
@@ -1,46 +0,0 @@
-module.exports = function(config) {
- config.set({
- frameworks: ['qunit'],
-
- autoWatch: false,
-
- singleRun: true,
-
- files: [
- '../build/files/video-js.min.css',
- '../test/karma-qunit-shim.js',
- '../node_modules/sinon/pkg/sinon.js',
- '../build/files/test.minified.video.js'
- ],
-
- plugins: [
- 'karma-qunit',
- 'karma-chrome-launcher',
- 'karma-firefox-launcher',
- 'karma-ie-launcher',
- 'karma-opera-launcher',
- 'karma-phantomjs-launcher',
- 'karma-safari-launcher'
- ],
-
- // test results reporter to use
- // possible values: 'dots', 'progress', 'junit'
- reporters: ['dots'],
-
- // web server port
- port: 9876,
-
- // cli runner port
- runnerPort: 9100,
-
- // enable / disable colors in the output (reporters and logs)
- colors: true,
-
- // level of logging
- // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
- logLevel: config.LOG_INFO,
-
- // If browser does not capture in given timeout [ms], kill it
- captureTimeout: 60000
- });
-};
View
63 test/minified-api.html
@@ -1,63 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <title>Video.js Test Suite</title>
-
- <!-- Sinon -->
- <script src="../node_modules/sinon/pkg/sinon.js"></script>
- <script src="../node_modules/sinon/pkg/sinon-ie.js"></script>
-
- <!-- QUnit -->
- <link rel="stylesheet" href="../node_modules/qunitjs/qunit/qunit.css" />
- <script src="../node_modules/qunitjs/qunit/qunit.js"></script>
-
- <!-- Video.js CSS -->
- <link rel="stylesheet" href="../build/files/video-js.css" type="text/css">
-
- <!-- LIB COMPILED WITH NOT COMPILED TESTS
- Check publicly available APIs against compiled lib
- -->
- <script type="text/javascript">
-
- // Test AMD Support
- // window.define = function(a, b){
- // console.log(a, b);
- // };
- // define.amd = true;
-
- // Test CJS Support
- // Have to remove qunit and tests to because module becomes a function
- // window.module = window.exports = {};
- // window.module.exports = {};
-
- (function(){
-
- // ADD NEW TEST FILES HERE
- var tests = [
- 'test/unit/test-helpers.js',
- 'test/unit/api.js'
- ];
- var projectRoot = '../';
- var scripts = [];
-
- scripts = scripts.concat(['build/files/minified.video.js'], tests);
-
- for (var i = 0; i < scripts.length; i++) {
- document.write( "<script src='" + projectRoot + scripts[i] + "'><\/script>" );
- }
-
- })()
- </script>
-
-</head>
-<body>
- <div>
- <h1 id="qunit-header">Video.js Test Suite</h1>
- <h2 id="qunit-banner"></h2>
- <div id="qunit-testrunner-toolbar"></div>
- <h2 id="qunit-userAgent"></h2>
- <ol id="qunit-tests"></ol>
- <div id="qunit-fixture"></div>
- </div>
-</body>
-</html>
View
35 test/minified.html
@@ -1,35 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <title>Video.js Test Suite</title>
-
- <!-- Video.js CSS -->
- <link rel="stylesheet" href="../build/files/video-js.css" type="text/css">
-
- <!-- Sinon -->
- <script src="../node_modules/sinon/pkg/sinon.js"></script>
- <script src="../node_modules/sinon/pkg/sinon-ie.js"></script>
-
- <!-- QUnit -->
- <link rel="stylesheet" href="../node_modules/qunitjs/qunit/qunit.css" />
- <script src="../node_modules/qunitjs/qunit/qunit.js"></script>
-
- <!-- SOURCE COMPILED WITH TESTS
- grunt-contrib-qunit doesn't support query vars, so making this script
- so we can automatically run compiled tests too.
- (in test/index.html you can add ?compiled to also run compiled tests)
- -->
- <script src="../build/files/test.minified.video.js"></script>
-
-</head>
-<body>
- <div>
- <h1 id="qunit-header">Video.js Test Suite</h1>
- <h2 id="qunit-banner"></h2>
- <div id="qunit-testrunner-toolbar"></div>
- <h2 id="qunit-userAgent"></h2>
- <ol id="qunit-tests"></ol>
- <div id="qunit-fixture"></div>
- </div>
-</body>
-</html>
View
2 test/unit/poster.js
@@ -93,7 +93,7 @@ test('should hide the poster in the appropriate player states', function(){
fixture.appendChild(playerDiv);
playerDiv.className = 'video-js vjs-has-started';
- equal(TestHelpers.getComputedStyle(el, 'display'), 'none', 'The poster hides when the video has started');
+ equal(TestHelpers.getComputedStyle(el, 'display'), 'none', 'The poster hides when the video has started (CSS may not be loaded)');
playerDiv.className = 'video-js vjs-has-started vjs-audio';
equal(TestHelpers.getComputedStyle(el, 'display'), 'block', 'The poster continues to show when playing audio');
View
2 test/unit/test-helpers.js
@@ -39,4 +39,4 @@ var TestHelpers = {
}
};
-module.exports = TestHelpers;
+export default TestHelpers;

0 comments on commit 6e5fc8d

Please sign in to comment.
Something went wrong with that request. Please try again.