2afc1fa2 by Parul Sharma

karma working with videojs-contrib-hls

1 parent 8fbb05f0
language: node_js
node_js:
- "0.10"
- "0.8"
- "0.11"
before_script:
- npm install -g grunt-cli
- curl https://gist.github.com/santiycr/5139565/raw/sauce_connect_setup.sh | bash
notifications:
hipchat:
rooms:
secure: l5TTd5JuPAW883PtcyaIBcJI9Chr9JpsZPQAEUBKAgIEwzuS6y7t5arlkS1PwH6gi1FADzYDf+OXSIou4GkTSrIetnBcT/SAgF0gBKgIhj+eRkuCfZ4VaC7BPhfZ0hgYRE+5Ejf5BM2MJafRm0pj7OlqG4xKrQZwtuV1te5r3JY=
hipchat: fa664f1eb0940506d8c511a791780e @ test room
rooms:
secure: l5TTd5JuPAW883PtcyaIBcJI9Chr9JpsZPQAEUBKAgIEwzuS6y7t5arlkS1PwH6gi1FADzYDf+OXSIou4GkTSrIetnBcT/SAgF0gBKgIhj+eRkuCfZ4VaC7BPhfZ0hgYRE+5Ejf5BM2MJafRm0pj7OlqG4xKrQZwtuV1te5r3JY=
addons:
sauce_connect:
username: "sheff555"
access_key: "d04372cc-0fc3-4e59-aa02-3cfd9df03240"
......
......@@ -32,7 +32,7 @@ module.exports = function(grunt) {
'src/segment-parser.js',
'src/stream.js',
'src/m3u8/m3u8-parser.js'
],
],
dest: 'dist/videojs.hls.js'
}
},
......@@ -107,10 +107,26 @@ module.exports = function(grunt) {
logConcurrentOutput: true
}
}
}
},
karma: {
options: {
configFile: 'test/karma.conf.js',
frameworks: ['qunit']
},
dev: {
configFile: 'test/karma.conf.js',
autoWatch: true
},
ci: {
configFile: 'test/karma.conf.js',
autoWatch: false
}
},
});
// These plugins provide necessary tasks.
grunt.loadNpmTasks('grunt-karma');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
......@@ -120,6 +136,9 @@ module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-contrib-connect');
grunt.loadNpmTasks('grunt-open');
grunt.loadNpmTasks('grunt-concurrent');
grunt.loadNpmTasks('grunt-saucelabs');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('manifests-to-js', 'Wrap the test fixtures and output' +
' so they can be loaded in a browser',
......@@ -177,4 +196,11 @@ module.exports = function(grunt) {
'concat',
'uglify']);
grunt.registerTask('test',
['manifests-to-js', 'qunit', 'karma']);
// travis build task
grunt.registerTask('build:travis', ['jshint', 'test:node', 'test:sauce-browser']);
};
......
......@@ -10,7 +10,7 @@
},
"license": "Apache 2",
"scripts": {
"test": "grunt"
"test": "grunt test"
},
"devDependencies": {
"grunt-contrib-jshint": "~0.6.0",
......@@ -23,7 +23,17 @@
"grunt-concurrent": "0.4.3",
"grunt-open": "0.2.3",
"grunt-shell": "0.6.1",
"grunt": "~0.4.1"
"grunt": "~0.4.1",
"grunt-karma": "~0.6.2",
"karma": "~0.10.0",
"karma-sauce-launcher": "~0.1.8",
"karma-chrome-launcher": "~0.1.2",
"karma-firefox-launcher": "~0.1.3",
"karma-ie-launcher": "~0.1.1",
"karma-opera-launcher": "~0.1.0",
"karma-phantomjs-launcher": "~0.1.1",
"karma-safari-launcher": "~0.1.1",
"karma-qunit": "~0.1.1"
},
"dependencies": {
"video.js": "git+https://github.com/videojs/video.js.git#v4.4.1",
......
var fixture = document.createElement('div');
fixture.id = 'qunit-fixture';
document.body.appendChild(fixture);
// Karma example configuration file
// NOTE: To configure Karma tests, do the following:
// 1. Copy this file and rename the copy with a .conf.js extension, for example: karma.conf.js
// 2. Configure the properties below in your conf.js copy
// 3. Run your tests
module.exports = function(config) {
config.set({
// base path, that will be used to resolve files and exclude
basePath: '',
frameworks: ['qunit'],
// Set autoWatch to true if you plan to run `grunt karma` continuously, to automatically test changes as you make them.
autoWatch: false,
// Setting singleRun to true here will start up your specified browsers, run tests, and then shut down the browsers. Helpful to have in a CI environment, where you don't want to leave browsers running continuously.
singleRun: true,
// Start these browsers, currently available:
// - Chrome
// - ChromeCanary
// - Firefox
// - Opera
// - Safari (only Mac)
// - PhantomJS
// - IE (only Windows)
// Example usage:
browsers: ['test_browser'],
// List of files / patterns to load in the browser
// Add any new src files to this list.
// If you add new unit tests, they will be picked up automatically by Karma,
// unless you've added them to a nested directory, in which case you should
// add their paths to this list.
files: [
'../node_modules/video.js/dist/video-js/video.js',
'../node_modules/videojs-contrib-media-sources/videojs-media-sources.js',
'../test/karma-qunit-shim.js',
"../src/videojs-hls.js",
"../src/flv-tag.js",
"../src/exp-golomb.js",
"../src/h264-stream.js",
"../src/aac-stream.js",
"../src/segment-parser.js",
"../src/stream.js",
"../src/m3u8/m3u8-parser.js",
"../tmp/manifests.js",
"../tmp/expected.js",
"tsSegment-bc.js",
"../src/bin-utils.js",
"../src/async-queue.js",
'../test/*.js'
],
plugins: [
'karma-qunit',
'karma-chrome-launcher',
//'karma-firefox-launcher',
//'karma-ie-launcher',
//'karma-opera-launcher',
//'karma-phantomjs-launcher',
//'karma-safari-launcher',
'karma-sauce-launcher'
],
// list of files to exclude
exclude: [
],
// test results reporter to use
// possible values: 'dots', 'progress', 'junit'
reporters: ['progress'],
// 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,
// global config for SauceLabs
sauceLabs: {
username: "sheff555",
accessKey: "d04372cc-0fc3-4e59-aa02-3cfd9df03240",
startConnect: true,
tunnelIdentifier: 'uniquekarmaidentifier',
testName: 'ps test sample'
},
//define SL browsers
customLaunchers: {
test_browser: {
singleRun: true,
base: 'SauceLabs',
browserName: 'chrome',
platform: 'Windows XP'
}
}
});
};