forked from smfreegard/Haraka
-
Notifications
You must be signed in to change notification settings - Fork 6
/
tls.js
95 lines (83 loc) · 2.54 KB
/
tls.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
'use strict';
var fs = require('fs');
var fixtures = require('haraka-test-fixtures');
var Connection = fixtures.connection;
var Plugin = fixtures.plugin;
var _set_up = function (done) {
this.plugin = new Plugin('tls');
this.connection = Connection.createConnection();
done();
};
exports.plugin = {
setUp : _set_up,
'should have function register' : function (test) {
test.expect(2);
test.isNotNull(this.plugin);
test.isFunction(this.plugin.register);
test.done();
},
'should have function tls_unrecognized_command' : function (test) {
test.expect(1);
test.isFunction(this.plugin.tls_unrecognized_command);
test.done();
},
'should have function tls_capabilities' : function (test) {
test.expect(1);
test.isFunction(this.plugin.tls_capabilities);
test.done();
},
};
exports.load_tls_ini = {
setUp: function(done) {
this.plugin = new Plugin('tls');
this.plugin.tls_opts = {};
done();
},
'loads tls.ini' : function (test) {
test.expect(3);
this.plugin.load_tls_ini();
test.ok(this.plugin.cfg.main.requestCert);
test.ok(this.plugin.cfg.main.ciphers);
test.ok(this.plugin.cfg.no_tls_hosts);
// console.log(this.plugin.cfg);
test.done();
}
};
exports.register = {
setUp : function(done) {
this.plugin = new Plugin('tls');
// overload load_pem to get files from tests/config
this.plugin.load_pem = function (file) {
return fs.readFileSync('./tests/config/' + file);
};
done();
},
'with certs, should call register_hook()' : function (test) {
test.expect(2);
this.plugin.register();
test.ok(this.plugin.cfg.main.requestCert);
test.ok(this.plugin.register_hook.called);
// console.log(this.plugin);
test.done();
},
};
exports.dont_register = {
setUp : function(done) {
this.plugin = new Plugin('tls');
// overload load_pem to get files from tests/config
this.plugin.load_pem = function (file) {
try {
return fs.readFileSync('./non-exist/config/' + file);
}
catch (ignore) {}
};
done();
},
'w/o certs, should not call register_hook()' : function (test) {
test.expect(1);
this.plugin.register();
test.equal(this.plugin.register_hook.called, false);
// console.log(this.plugin);
test.done();
},
};