Commit b071d2bc authored by chickahoona's avatar chickahoona

first try of continious integration

parent e803fab6
before_script:
- docker info
build_image:
script:
- /usr/local/bin/docker-compose -f docker-compose-test.yml kill
- /usr/local/bin/docker-compose -f docker-compose-test.yml rm -f
- /usr/local/bin/docker-compose -f docker-compose-test.yml build
- /usr/local/bin/docker-compose -f docker-compose-test.yml run password-client-image-test bash -c "(test -e /tmp/.X99-lock || /usr/bin/Xvfb :99 &) && karma start ./unittests/karma-chrome.conf.js"
- /usr/local/bin/docker-compose -f docker-compose-test.yml stop
FROM ubuntu:14.04
ENV DEBIAN_FRONTEND noninteractive
MAINTAINER Sascha Pfeiffer <saschapfeiffer@sanso.pw>
COPY . /root/
WORKDIR /root
RUN apt-get update && \
apt-get install -y nodejs npm xvfb chromium-browser && \
ln -s /usr/bin/nodejs /usr/bin/node && \
export DISPLAY=:99.0 && \
export CHROME_BIN=/usr/bin/chromium-browser && \
npm install && \
npm install gulp -g && \
npm install karma-cli -g && \
npm install coffee-script -g && \
apt-get clean && \
gulp
\ No newline at end of file
password-client-image-test:
build: .
environment:
- DISPLAY=:99.0
- CHROME_BIN=/usr/bin/chromium-browser
\ No newline at end of file
......@@ -160,7 +160,7 @@ gulp.task('dist', ['default', 'crx', 'xpi']);
*/
gulp.task('unittest', function (done) {
new karma_server({
configFile: __dirname + '/unittests/karma.conf.coffee',
configFile: __dirname + '/unittests/karma-chrome.conf.js',
singleRun: true
}, done).start();
});
......@@ -170,6 +170,7 @@ gulp.task('unittest', function (done) {
*/
gulp.task('unittestwatch', function (done) {
new karma_server({
configFile: __dirname + '/unittests/karma.conf.coffee'
configFile: __dirname + '/unittests/karma-chrome.conf.js',
singleRun: false
}, done).start();
});
\ No newline at end of file
......@@ -131,11 +131,11 @@
}]);
app.run(['$rootScope','$location', '$routeParams', 'manager' , function($rootScope, $location, $routeParams, manager) {
app.run(['$rootScope','$location', '$routeParams', 'managerSecret' , function($rootScope, $location, $routeParams, managerSecret) {
$rootScope.$on('$routeChangeSuccess', function() {
var redirect = '/secret/';
if ($location.path().substring(0, redirect.length) == redirect && $routeParams.hasOwnProperty('secret_id')) {
manager.redirectSecret($routeParams.type, $routeParams.secret_id);
managerSecret.redirectSecret($routeParams.type, $routeParams.secret_id);
}
});
......@@ -195,8 +195,8 @@
});
}]);
app.controller('RegisterController', ['$scope', '$route', '$filter', 'manager', 'BACKEND_SERVERS',
function($scope, $route, $filter, manager, BACKEND_SERVERS)
app.controller('RegisterController', ['$scope', '$route', '$filter', 'managerDatastoreUser', 'BACKEND_SERVERS',
function($scope, $route, $filter, managerDatastoreUser, BACKEND_SERVERS)
{
/* Server selection with preselection of dev server */
$scope.servers = BACKEND_SERVERS;
......@@ -261,12 +261,12 @@
// TODO forbid weak and poor passwords
manager.register(email, password, angular.copy($scope.selected_server)).then(onRequestReturn, onError);
managerDatastoreUser.register(email, password, angular.copy($scope.selected_server)).then(onRequestReturn, onError);
};
}]);
app.controller('ActivationController', ['$scope', '$route', '$routeParams', 'manager', 'BACKEND_SERVERS',
function($scope, $route, $routeParams, manager, BACKEND_SERVERS)
app.controller('ActivationController', ['$scope', '$route', '$routeParams', 'managerDatastoreUser', 'BACKEND_SERVERS',
function($scope, $route, $routeParams, managerDatastoreUser, BACKEND_SERVERS)
{
/* Server selection with preselection of dev server */
......@@ -314,7 +314,7 @@
}
}
if (activation_code !== undefined ) {
manager.activate(activation_code, angular.copy($scope.selected_server)).then(onRequestReturn, onError);
managerDatastoreUser.activate(activation_code, angular.copy($scope.selected_server)).then(onRequestReturn, onError);
}
};
......@@ -566,9 +566,9 @@
}]);
app.controller('LoginController', ['$scope', '$rootScope', '$filter', '$timeout', 'manager', 'browserClient', 'storage',
app.controller('LoginController', ['$scope', '$rootScope', '$filter', '$timeout', 'managerDatastoreUser', 'browserClient', 'storage',
'snapRemote', '$window', '$route', '$routeParams', '$location', 'BACKEND_SERVERS',
function($scope, $rootScope, $filter, $timeout, manager, browserClient, storage,
function($scope, $rootScope, $filter, $timeout, managerDatastoreUser, browserClient, storage,
snapRemote, $window, $route, $routeParams, $location, BACKEND_SERVERS)
{
......@@ -622,7 +622,7 @@
}
}
if (email !== undefined && password !== undefined) {
manager.login(email, password, angular.copy($scope.selected_server)).then(onRequestReturn, onError);
managerDatastoreUser.login(email, password, angular.copy($scope.selected_server)).then(onRequestReturn, onError);
}
};
}]);
......
(function(angular, uuid) {
'use strict';
var managerDatastorePassword = function($q, manager, managerDatastore, passwordGenerator, itemBlueprint, helper) {
var managerDatastorePassword = function($q, managerSecret, managerDatastore, passwordGenerator, itemBlueprint, helper) {
/**
......@@ -106,7 +106,7 @@
});
};
manager.create_secret(secret_object)
managerSecret.create_secret(secret_object)
.then(onSuccess, onError);
// we return a promise. So far its
......@@ -162,6 +162,6 @@
};
var app = angular.module('passwordManagerApp');
app.factory("managerDatastorePassword", ['$q', 'manager', 'managerDatastore', 'passwordGenerator', 'itemBlueprint', 'helper', managerDatastorePassword]);
app.factory("managerDatastorePassword", ['$q', 'managerSecret', 'managerDatastore', 'passwordGenerator', 'itemBlueprint', 'helper', managerDatastorePassword]);
}(angular, uuid));
\ No newline at end of file
(function(angular) {
'use strict';
var managerDatastoreUser = function($q, $rootScope, apiClient, browserClient, storage, managerBase, managerDatastore, shareBlueprint, itemBlueprint) {
var managerDatastoreUser = function($q, $rootScope, apiClient, browserClient, storage, managerBase, managerDatastore, shareBlueprint, itemBlueprint, cryptoLibrary) {
/**
* Checks if the user is logged in.
......@@ -306,6 +306,6 @@
};
var app = angular.module('passwordManagerApp');
app.factory("managerDatastoreUser", ['$q', '$rootScope', 'apiClient', 'browserClient', 'storage', 'managerBase', 'managerDatastore', 'shareBlueprint', 'itemBlueprint', managerDatastoreUser]);
app.factory("managerDatastoreUser", ['$q', '$rootScope', 'apiClient', 'browserClient', 'storage', 'managerBase', 'managerDatastore', 'shareBlueprint', 'itemBlueprint', 'cryptoLibrary', managerDatastoreUser]);
}(angular));
\ No newline at end of file
......@@ -2,7 +2,7 @@
'use strict';
var settings = function($q, storage, manager, managerDatastoreSetting, cryptoLibrary, apiClient) {
var settings = function($q, storage, managerDatastoreUser, managerDatastoreSetting, cryptoLibrary, apiClient) {
var _tabs = [
//{ key: 'general', title: 'General' },
......@@ -213,7 +213,7 @@
var onError = function() {
return reject({errors: ['Old password incorrect']})
};
return manager.updateUser(specials['setting_email'].value, new_authkey, authkey_old, priv_key_enc.text, priv_key_enc.nonce, secret_key_enc.text, secret_key_enc.nonce, user_sauce)
return managerDatastoreUser.updateUser(specials['setting_email'].value, new_authkey, authkey_old, priv_key_enc.text, priv_key_enc.nonce, secret_key_enc.text, secret_key_enc.nonce, user_sauce)
.then(onSucces, onError);
......@@ -232,6 +232,6 @@
};
var app = angular.module('passwordManagerApp');
app.factory("settings", ['$q', 'storage', 'manager', 'managerDatastoreSetting', 'cryptoLibrary', 'apiClient', settings]);
app.factory("settings", ['$q', 'storage', 'managerDatastoreUser', 'managerDatastoreSetting', 'cryptoLibrary', 'apiClient', settings]);
}(angular));
......@@ -26,9 +26,9 @@
/**
* Main Controller for the shareusers widget
*/
module.controller('shareusersController', ["$scope", "$interval", "config", "manager", "managerDatastoreUser", "$modal",
module.controller('shareusersController', ["$scope", "$interval", "config", "managerSecret", "managerDatastoreUser", "$modal",
"shareBlueprint",
function($scope, $interval, config, manager, managerDatastoreUser, $modal, shareBlueprint){
function($scope, $interval, config, managerSecret, managerDatastoreUser, $modal, shareBlueprint){
// Modals
......@@ -302,7 +302,7 @@
onNodeSelect: function (node, breadcrums) {
$scope.breadcrums = breadcrums;
$scope.node = node;
manager.onNodeSelect(node);
managerSecret.onNodeSelect(node);
},
/**
* Triggered once someone selects an item
......@@ -313,7 +313,7 @@
onItemSelect: function (item, breadcrums) {
$scope.breadcrums = breadcrums;
$scope.node = item;
manager.onItemSelect(item);
managerSecret.onItemSelect(item);
},
/**
* Triggered once someone clicks on a node
......@@ -322,7 +322,7 @@
* @param path
*/
onNodeClick: function(node, path) {
manager.onNodeClick(node, path);
managerSecret.onNodeClick(node, path);
},
/**
* Triggered once someone clicks the delete node entry
......@@ -356,7 +356,7 @@
* @param path The path to the item
*/
onItemClick: function (item, path) {
manager.onItemClick(item, path);
managerSecret.onItemClick(item, path);
},
/**
......
......@@ -38,8 +38,13 @@
"../src/common/data/js/service/crypto-library.js",
"../src/common/data/js/service/storage.js",
"../src/common/data/js/service/settings.js",
"../src/common/data/js/service/manager-base.js",
"../src/common/data/js/service/manager.js",
"../src/common/data/js/service/manager-datastore.js",
"../src/common/data/js/service/manager-secret.js",
"../src/common/data/js/service/manager-datastore-password.js",
"../src/common/data/js/service/manager-datastore-user.js",
"../src/common/data/js/service/manager-datastore-setting.js",
"../src/common/data/js/service/browser-client.js",
"../src/common/data/js/service/password-generator.js",
"../src/common/data/view/templates.js",
......@@ -68,7 +73,7 @@
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false,
singleRun: true,
concurrency: Infinity
});
};
......
(function() {
module.exports = function(config) {
return config.set({
basePath: '',
frameworks: ['jasmine'],
(function () {
module.exports = function (config) {
return config.set({
basePath: '',
frameworks: ['jasmine'],
files: [
"../src/common/data/js/lib/ecma-nacl.js",
"../src/common/data/js/lib/sha512.js",
"../src/common/data/js/lib/sha256.js",
"../src/common/data/js/lib/scrypt.js",
"../src/common/data/js/lib/uuid.js",
"../src/common/data/js/lib/jquery-2.1.4.js",
"../src/common/data/js/lib/snap.min.js",
"../src/common/data/js/lib/jquery.ui.js",
"../src/common/data/js/lib/sortable.js",
"../src/common/data/js/lib/lokijs.min.js",
"../src/common/data/js/lib/password-generator.js",
"../src/common/data/js/lib/angular.js",
"../src/common/data/js/lib/angular-animate.js",
"../src/common/data/js/lib/angular-complexify.js",
"../src/common/data/js/lib/loading-bar.js",
"../src/common/data/js/lib/angular-route.js",
"../src/common/data/js/lib/angular-sanitize.js",
"../src/common/data/js/lib/angular-local-storage.min.js",
"../src/common/data/js/lib/angular-snap.min.js",
"../src/common/data/js/lib/ui-bootstrap-tpls-0.13.4.min.js",
"../src/common/data/js/lib/ngdraggable.js",
"../src/common/data/js/lib/angular-tree-view.js",
"../src/common/data/js/lib/angular-ui-select.js",
"../src/common/data/js/lib/ng-context-menu.js",
"../src/common/data/js/lib/angular-dashboard-framework.js",
"../src/common/data/js/widgets/adf-widget-datastore.js",
"../src/common/data/js/widgets/adf-widget-shareusers.js",
"../src/common/data/js/main.js",
"../src/common/data/js/service/api-client.js",
"../src/common/data/js/service/helper.js",
"../src/common/data/js/service/item-blueprint.js",
"../src/common/data/js/service/crypto-library.js",
"../src/common/data/js/service/storage.js",
"../src/common/data/js/service/settings.js",
"../src/common/data/js/service/manager-base.js",
"../src/common/data/js/service/manager.js",
"../src/common/data/js/service/manager-datastore.js",
"../src/common/data/js/service/manager-secret.js",
"../src/common/data/js/service/manager-datastore-password.js",
"../src/common/data/js/service/manager-datastore-user.js",
"../src/common/data/js/service/manager-datastore-setting.js",
"../src/common/data/js/service/browser-client.js",
"../src/common/data/js/service/password-generator.js",
"../src/common/data/view/templates.js",
files: [
"../src/common/data/js/lib/ecma-nacl.js",
"../src/common/data/js/lib/sha512.js",
"../src/common/data/js/lib/sha256.js",
"../src/common/data/js/lib/scrypt.js",
"../src/common/data/js/lib/uuid.js",
"../src/common/data/js/lib/jquery-2.1.4.js",
"../src/common/data/js/lib/snap.min.js",
"../src/common/data/js/lib/jquery.ui.js",
"../src/common/data/js/lib/sortable.js",
"../src/common/data/js/lib/lokijs.min.js",
"../src/common/data/js/lib/password-generator.js",
"../src/common/data/js/lib/angular.js",
"../src/common/data/js/lib/angular-animate.js",
"../src/common/data/js/lib/angular-complexify.js",
"../src/common/data/js/lib/loading-bar.js",
"../src/common/data/js/lib/angular-route.js",
"../src/common/data/js/lib/angular-sanitize.js",
"../src/common/data/js/lib/angular-local-storage.min.js",
"../src/common/data/js/lib/angular-snap.min.js",
"../src/common/data/js/lib/ui-bootstrap-tpls-0.13.4.min.js",
"../src/common/data/js/lib/ngdraggable.js",
"../src/common/data/js/lib/angular-tree-view.js",
"../src/common/data/js/lib/angular-ui-select.js",
"../src/common/data/js/lib/ng-context-menu.js",
"../src/common/data/js/lib/angular-dashboard-framework.js",
"../src/common/data/js/widgets/adf-widget-datastore.js",
"../src/common/data/js/widgets/adf-widget-shareusers.js",
"../src/common/data/js/main.js",
"../src/common/data/js/service/api-client.js",
"../src/common/data/js/service/helper.js",
"../src/common/data/js/service/item-blueprint.js",
"../src/common/data/js/service/crypto-library.js",
"../src/common/data/js/service/storage.js",
"../src/common/data/js/service/settings.js",
"../src/common/data/js/service/manager.js",
"../src/common/data/js/service/manager-datastore.js",
"../src/common/data/js/service/browser-client.js",
"../src/common/data/js/service/password-generator.js",
"../src/common/data/view/templates.js",
"../unittests/data/js/lib/angular-mocks.js",
"../unittests/data/js/lib/angular-mocks.js",
'../unittests/tests/*.coffee',
'../unittests/tests/**/*.coffee'
],
exclude: [],
preprocessors: {
'**/*.coffee': ['coffee']
},
coffeePreprocessor: {
options: {
bare: true,
sourceMap: false
},
transformPath: function(path) {
return path.replace(/\.coffee$/, '.js');
}
},
reporters: ['progress'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Firefox'],
singleRun: false,
concurrency: Infinity
});
};
'../unittests/tests/*.coffee',
'../unittests/tests/**/*.coffee'
],
exclude: [],
preprocessors: {
'**/*.coffee': ['coffee']
},
coffeePreprocessor: {
options: {
bare: true,
sourceMap: false
},
transformPath: function (path) {
return path.replace(/\.coffee$/, '.js');
}
},
reporters: ['progress'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Firefox'],
singleRun: true,
concurrency: Infinity
});
};
}).call(this);
(function() {
module.exports = function(config) {
return config.set({
basePath: '',
frameworks: ['jasmine'],
files: [
"../src/common/data/js/lib/ecma-nacl.js",
"../src/common/data/js/lib/sha512.js",
"../src/common/data/js/lib/sha256.js",
"../src/common/data/js/lib/scrypt.js",
"../src/common/data/js/lib/uuid.js",
"../src/common/data/js/lib/jquery-2.1.4.js",
"../src/common/data/js/lib/snap.min.js",
"../src/common/data/js/lib/jquery.ui.js",
"../src/common/data/js/lib/sortable.js",
"../src/common/data/js/lib/lokijs.min.js",
"../src/common/data/js/lib/password-generator.js",
"../src/common/data/js/lib/angular.js",
"../src/common/data/js/lib/angular-animate.js",
"../src/common/data/js/lib/angular-complexify.js",
"../src/common/data/js/lib/loading-bar.js",
"../src/common/data/js/lib/angular-route.js",
"../src/common/data/js/lib/angular-sanitize.js",
"../src/common/data/js/lib/angular-local-storage.min.js",
"../src/common/data/js/lib/angular-snap.min.js",
"../src/common/data/js/lib/ui-bootstrap-tpls-0.13.4.min.js",
"../src/common/data/js/lib/ngdraggable.js",
"../src/common/data/js/lib/angular-tree-view.js",
"../src/common/data/js/lib/angular-ui-select.js",
"../src/common/data/js/lib/ng-context-menu.js",
"../src/common/data/js/lib/angular-dashboard-framework.js",
"../src/common/data/js/widgets/adf-widget-datastore.js",
"../src/common/data/js/widgets/adf-widget-shareusers.js",
"../src/common/data/js/main.js",
"../src/common/data/js/service/api-client.js",
"../src/common/data/js/service/helper.js",
"../src/common/data/js/service/item-blueprint.js",
"../src/common/data/js/service/crypto-library.js",
"../src/common/data/js/service/storage.js",
"../src/common/data/js/service/settings.js",
"../src/common/data/js/service/manager.js",
"../src/common/data/js/service/manager-datastore.js",
"../src/common/data/js/service/browser-client.js",
"../src/common/data/js/service/password-generator.js",
"../src/common/data/view/templates.js",
(function () {
module.exports = function (config) {
return config.set({
basePath: '',
frameworks: ['jasmine'],
files: [
"../src/common/data/js/lib/ecma-nacl.js",
"../src/common/data/js/lib/sha512.js",
"../src/common/data/js/lib/sha256.js",
"../src/common/data/js/lib/scrypt.js",
"../src/common/data/js/lib/uuid.js",
"../src/common/data/js/lib/jquery-2.1.4.js",
"../src/common/data/js/lib/snap.min.js",
"../src/common/data/js/lib/jquery.ui.js",
"../src/common/data/js/lib/sortable.js",
"../src/common/data/js/lib/lokijs.min.js",
"../src/common/data/js/lib/password-generator.js",
"../src/common/data/js/lib/angular.js",
"../src/common/data/js/lib/angular-animate.js",
"../src/common/data/js/lib/angular-complexify.js",
"../src/common/data/js/lib/loading-bar.js",
"../src/common/data/js/lib/angular-route.js",
"../src/common/data/js/lib/angular-sanitize.js",
"../src/common/data/js/lib/angular-local-storage.min.js",
"../src/common/data/js/lib/angular-snap.min.js",
"../src/common/data/js/lib/ui-bootstrap-tpls-0.13.4.min.js",
"../src/common/data/js/lib/ngdraggable.js",
"../src/common/data/js/lib/angular-tree-view.js",
"../src/common/data/js/lib/angular-ui-select.js",
"../src/common/data/js/lib/ng-context-menu.js",
"../src/common/data/js/lib/angular-dashboard-framework.js",
"../src/common/data/js/widgets/adf-widget-datastore.js",
"../src/common/data/js/widgets/adf-widget-shareusers.js",
"../src/common/data/js/main.js",
"../src/common/data/js/service/api-client.js",
"../src/common/data/js/service/helper.js",
"../src/common/data/js/service/item-blueprint.js",
"../src/common/data/js/service/crypto-library.js",
"../src/common/data/js/service/storage.js",
"../src/common/data/js/service/settings.js",
"../src/common/data/js/service/manager-base.js",
"../src/common/data/js/service/manager.js",
"../src/common/data/js/service/manager-datastore.js",
"../src/common/data/js/service/manager-secret.js",
"../src/common/data/js/service/manager-datastore-password.js",
"../src/common/data/js/service/manager-datastore-user.js",
"../src/common/data/js/service/manager-datastore-setting.js",
"../src/common/data/js/service/browser-client.js",
"../src/common/data/js/service/password-generator.js",
"../src/common/data/view/templates.js",
"../unittests/data/js/lib/angular-mocks.js",
"../unittests/data/js/lib/angular-mocks.js",
'../unittests/tests/*.coffee',
'../unittests/tests/**/*.coffee'
],
exclude: [],
preprocessors: {
'**/*.coffee': ['coffee']
},
coffeePreprocessor: {
options: {
bare: true,
sourceMap: false
},
transformPath: function(path) {
return path.replace(/\.coffee$/, '.js');
}
},
reporters: ['progress'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: [],
singleRun: false,
concurrency: Infinity
});
};
'../unittests/tests/*.coffee',
'../unittests/tests/**/*.coffee'
],
exclude: [],
preprocessors: {
'**/*.coffee': ['coffee']
},
coffeePreprocessor: {
options: {
bare: true,
sourceMap: false
},
transformPath: function (path) {
return path.replace(/\.coffee$/, '.js');
}
},
reporters: ['progress'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: [],
singleRun: true,
concurrency: Infinity
});
};
}).call(this);
(function () {
module.exports = function (config) {
return config.set({
basePath: '',
frameworks: ['jasmine'],
files: [
"../src/common/data/js/lib/ecma-nacl.js",
"../src/common/data/js/lib/sha512.js",
"../src/common/data/js/lib/sha256.js",
"../src/common/data/js/lib/scrypt.js",
"../src/common/data/js/lib/uuid.js",
"../src/common/data/js/lib/jquery-2.1.4.js",
"../src/common/data/js/lib/snap.min.js",
"../src/common/data/js/lib/jquery.ui.js",
"../src/common/data/js/lib/sortable.js",
"../src/common/data/js/lib/lokijs.min.js",
"../src/common/data/js/lib/password-generator.js",
"../src/common/data/js/lib/angular.js",
"../src/common/data/js/lib/angular-animate.js",
"../src/common/data/js/lib/angular-complexify.js",
"../src/common/data/js/lib/loading-bar.js",
"../src/common/data/js/lib/angular-route.js",
"../src/common/data/js/lib/angular-sanitize.js",
"../src/common/data/js/lib/angular-local-storage.min.js",
"../src/common/data/js/lib/angular-snap.min.js",
"../src/common/data/js/lib/ui-bootstrap-tpls-0.13.4.min.js",
"../src/common/data/js/lib/ngdraggable.js",
"../src/common/data/js/lib/angular-tree-view.js",
"../src/common/data/js/lib/angular-ui-select.js",
"../src/common/data/js/lib/ng-context-menu.js",
"../src/common/data/js/lib/angular-dashboard-framework.js",
"../src/common/data/js/widgets/adf-widget-datastore.js",
"../src/common/data/js/widgets/adf-widget-shareusers.js",
"../src/common/data/js/main.js",
"../src/common/data/js/service/api-client.js",
"../src/common/data/js/service/helper.js",
"../src/common/data/js/service/item-blueprint.js",
"../src/common/data/js/service/crypto-library.js",
"../src/common/data/js/service/storage.js",
"../src/common/data/js/service/settings.js",
"../src/common/data/js/service/manager-base.js",
"../src/common/data/js/service/manager.js",
"../src/common/data/js/service/manager-datastore.js",
"../src/common/data/js/service/manager-secret.js",
"../src/common/data/js/service/manager-datastore-password.js",
"../src/common/data/js/service/manager-datastore-user.js",
"../src/common/data/js/service/manager-datastore-setting.js",
"../src/common/data/js/service/browser-client.js",
"../src/common/data/js/service/password-generator.js",
"../src/common/data/view/templates.js",
"../unittests/data/js/lib/angular-mocks.js",
'../unittests/tests/*.coffee',
'../unittests/tests/**/*.coffee'
],
exclude: [],
preprocessors: {
'**/*.coffee': ['coffee']
},
coffeePreprocessor: {
options: {
bare: true,
sourceMap: false
},
transformPath: function (path) {
return path.replace(/\.coffee$/, '.js');
}
},
reporters: ['progress'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['PhantomJS'],
singleRun: true,
concurrency: Infinity
});
};
}).call(this);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment