mirror of https://github.com/moparisthebest/mail
Dao and crypto unit tests work
This commit is contained in:
parent
b5b95d1c5c
commit
7e09add0f4
|
@ -9,3 +9,5 @@ release/
|
||||||
test/integration/src/
|
test/integration/src/
|
||||||
.elasticbeanstalk/
|
.elasticbeanstalk/
|
||||||
test/unit/index.js
|
test/unit/index.js
|
||||||
|
**/*.browserified.js
|
||||||
|
**/*.js.map
|
||||||
|
|
37
Gruntfile.js
37
Gruntfile.js
|
@ -121,7 +121,7 @@ module.exports = function(grunt) {
|
||||||
},
|
},
|
||||||
unitTest: {
|
unitTest: {
|
||||||
files: {
|
files: {
|
||||||
'test/unit/index.js': [
|
'test/unit/index.browserified.js': [
|
||||||
'test/unit/oauth-test.js',
|
'test/unit/oauth-test.js',
|
||||||
'test/unit/auth-test.js',
|
'test/unit/auth-test.js',
|
||||||
'test/unit/email-dao-test.js',
|
'test/unit/email-dao-test.js',
|
||||||
|
@ -155,7 +155,8 @@ module.exports = function(grunt) {
|
||||||
'test/unit/outbox-bo-test.js',
|
'test/unit/outbox-bo-test.js',
|
||||||
'test/unit/invitation-dao-test.js',
|
'test/unit/invitation-dao-test.js',
|
||||||
'test/unit/update-handler-test.js',
|
'test/unit/update-handler-test.js',
|
||||||
'test/unit/connection-doctor-test.js'
|
'test/unit/connection-doctor-test.js',
|
||||||
|
'test/unit/main.js'
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
options: {
|
options: {
|
||||||
|
@ -216,25 +217,25 @@ module.exports = function(grunt) {
|
||||||
'test/unit/index.js': [
|
'test/unit/index.js': [
|
||||||
'src/lib/underscore/underscore-min.js',
|
'src/lib/underscore/underscore-min.js',
|
||||||
'node_modules/jquery/dist/jquery.min.js',
|
'node_modules/jquery/dist/jquery.min.js',
|
||||||
'src/lib/forge/forge.min.js',
|
|
||||||
'src/lib/openpgp/openpgp.js',
|
|
||||||
'src/lib/angular/angular.min.js',
|
'src/lib/angular/angular.min.js',
|
||||||
'node_modules/angular-mocks/angular-mocks.js',
|
|
||||||
'src/lib/angular/angular-route.min.js',
|
'src/lib/angular/angular-route.min.js',
|
||||||
'src/lib/angular/angular-animate.min.js',
|
'src/lib/angular/angular-animate.min.js',
|
||||||
'src/lib/ngtagsinput/ng-tags-input.min.js',
|
'src/lib/ngtagsinput/ng-tags-input.min.js',
|
||||||
'src/lib/fastclick/fastclick.js',
|
|
||||||
'node_modules/ng-infinite-scroll/build/ng-infinite-scroll.min.js',
|
'node_modules/ng-infinite-scroll/build/ng-infinite-scroll.min.js',
|
||||||
|
'node_modules/angular-mocks/angular-mocks.js',
|
||||||
|
'src/lib/fastclick/fastclick.js',
|
||||||
'src/lib/lawnchair/lawnchair-git.js',
|
'src/lib/lawnchair/lawnchair-git.js',
|
||||||
'src/lib/lawnchair/lawnchair-adapter-webkit-sqlite-git.js',
|
'src/lib/lawnchair/lawnchair-adapter-webkit-sqlite-git.js',
|
||||||
'src/lib/lawnchair/lawnchair-adapter-indexed-db-git.js',
|
'src/lib/lawnchair/lawnchair-adapter-indexed-db-git.js',
|
||||||
'node_modules/dompurify/purify.js',
|
|
||||||
'test/lib/angular-mocks.js',
|
'test/lib/angular-mocks.js',
|
||||||
'test/unit/index.js'
|
'test/unit/index.browserified.js'
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
options: {
|
options: {
|
||||||
compress: false
|
mangle: false,
|
||||||
|
compress: false,
|
||||||
|
sourceMap: true,
|
||||||
|
sourceMapName: 'test/unit/index.js.map'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
options: {
|
options: {
|
||||||
|
@ -246,8 +247,19 @@ module.exports = function(grunt) {
|
||||||
npmDev: {
|
npmDev: {
|
||||||
expand: true,
|
expand: true,
|
||||||
flatten: true,
|
flatten: true,
|
||||||
cwd: 'node_modules/',
|
cwd: './',
|
||||||
src: ['mocha/mocha.css', 'mocha/mocha.js', 'chai/chai.js', 'sinon/pkg/sinon.js', 'browsercrow/src/*.js', 'browsersmtp/src/*.js'],
|
src: [
|
||||||
|
'node_modules/mocha/mocha.css',
|
||||||
|
'node_modules/mocha/mocha.js',
|
||||||
|
'node_modules/chai/chai.js',
|
||||||
|
'node_modules/sinon/pkg/sinon.js',
|
||||||
|
'node_modules/browsercrow/src/*.js',
|
||||||
|
'node_modules/browsersmtp/src/*.js',
|
||||||
|
'src/lib/openpgp/openpgp.js',
|
||||||
|
'src/lib/openpgp/openpgp.worker.js',
|
||||||
|
'src/lib/forge/forge.min.js',
|
||||||
|
'dist/js/pbkdf2-worker.min.js'
|
||||||
|
],
|
||||||
dest: 'test/lib/'
|
dest: 'test/lib/'
|
||||||
},
|
},
|
||||||
lib: {
|
lib: {
|
||||||
|
@ -343,11 +355,10 @@ module.exports = function(grunt) {
|
||||||
grunt.loadNpmTasks('grunt-manifest');
|
grunt.loadNpmTasks('grunt-manifest');
|
||||||
|
|
||||||
// Build tasks
|
// Build tasks
|
||||||
grunt.registerTask('dist-npm', ['copy:npmDev']);
|
|
||||||
grunt.registerTask('dist-css', ['sass', 'autoprefixer', 'csso']);
|
grunt.registerTask('dist-css', ['sass', 'autoprefixer', 'csso']);
|
||||||
grunt.registerTask('dist-js', ['browserify', 'uglify']);
|
grunt.registerTask('dist-js', ['browserify', 'uglify']);
|
||||||
grunt.registerTask('dist-copy', ['copy']);
|
grunt.registerTask('dist-copy', ['copy']);
|
||||||
grunt.registerTask('dist', ['clean', 'dist-npm', 'dist-css', 'dist-js', 'dist-copy', 'manifest']);
|
grunt.registerTask('dist', ['clean', 'dist-css', 'dist-js', 'dist-copy', 'manifest']);
|
||||||
|
|
||||||
// Test/Dev tasks
|
// Test/Dev tasks
|
||||||
grunt.registerTask('dev', ['connect:dev']);
|
grunt.registerTask('dev', ['connect:dev']);
|
||||||
|
|
|
@ -73,7 +73,7 @@ ctrl.buildModules = function() {
|
||||||
var lawnchairDao, restDao, pubkeyDao, privkeyDao, crypto, emailDao, keychain, pgp, userStorage, pgpbuilder, oauth, appConfigStore, auth;
|
var lawnchairDao, restDao, pubkeyDao, privkeyDao, crypto, emailDao, keychain, pgp, userStorage, pgpbuilder, oauth, appConfigStore, auth;
|
||||||
|
|
||||||
// start the mailreader's worker thread
|
// start the mailreader's worker thread
|
||||||
mailreader.startWorker(config.workerPath + '/../lib/mailreader-parser-worker.js');
|
mailreader.startWorker(config.workerPath + '/mailreader-parser-worker.js');
|
||||||
|
|
||||||
// init objects and inject dependencies
|
// init objects and inject dependencies
|
||||||
restDao = new RestDAO();
|
restDao = new RestDAO();
|
||||||
|
|
|
@ -10,8 +10,6 @@ var aes = require('crypto-lib').aes,
|
||||||
config = require('../app-config').config,
|
config = require('../app-config').config,
|
||||||
axe = require('axe-logger');
|
axe = require('axe-logger');
|
||||||
|
|
||||||
var PBKDF2_WORKER = config.workerPath + '/pbkdf2-worker.js';
|
|
||||||
|
|
||||||
var Crypto = function() {};
|
var Crypto = function() {};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -61,7 +59,7 @@ Crypto.prototype.decrypt = function(ciphertext, key, iv, callback) {
|
||||||
*/
|
*/
|
||||||
Crypto.prototype.deriveKey = function(password, salt, keySize, callback) {
|
Crypto.prototype.deriveKey = function(password, salt, keySize, callback) {
|
||||||
startWorker({
|
startWorker({
|
||||||
script: PBKDF2_WORKER,
|
script: config.workerPath + '/pbkdf2-worker.min.js',
|
||||||
args: {
|
args: {
|
||||||
password: password,
|
password: password,
|
||||||
salt: salt,
|
salt: salt,
|
||||||
|
@ -82,7 +80,7 @@ function startWorker(options) {
|
||||||
// check for WebWorker support
|
// check for WebWorker support
|
||||||
if (window.Worker) {
|
if (window.Worker) {
|
||||||
// init webworker thread
|
// init webworker thread
|
||||||
var worker = new Worker(config.workerPath + options.script);
|
var worker = new Worker(options.script);
|
||||||
worker.onmessage = function(e) {
|
worker.onmessage = function(e) {
|
||||||
if (e.data.err) {
|
if (e.data.err) {
|
||||||
options.callback(e.data.err);
|
options.callback(e.data.err);
|
||||||
|
|
|
@ -67,6 +67,8 @@
|
||||||
mocha.setup('bdd');
|
mocha.setup('bdd');
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<script src="../lib/openpgp.js"></script>
|
||||||
|
<script src="../lib/forge.min.js"></script>
|
||||||
<script src="index.js"></script>
|
<script src="index.js"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
// set worker path for tests
|
||||||
|
require('../../src/js/app-config').config.workerPath = '../lib';
|
Loading…
Reference in New Issue