Haraka 3.0.3 → 3.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/.eslintrc.yaml +5 -9
  2. package/.prettierrc.yml +1 -0
  3. package/CONTRIBUTORS.md +11 -0
  4. package/Changes.md +1365 -1214
  5. package/Plugins.md +117 -105
  6. package/README.md +4 -13
  7. package/bin/haraka +197 -298
  8. package/config/auth_flat_file.ini +1 -0
  9. package/config/dhparams.pem +8 -0
  10. package/config/mail_from.is_resolvable.ini +4 -2
  11. package/config/me +1 -0
  12. package/config/outbound.ini +0 -2
  13. package/config/plugins +36 -35
  14. package/config/smtp.ini +0 -1
  15. package/config/smtp.json +17 -0
  16. package/config/tls_cert.pem +23 -0
  17. package/config/tls_key.pem +28 -0
  18. package/connection.js +46 -73
  19. package/contrib/bsd-rc.d/haraka +3 -1
  20. package/contrib/plugin2npm.sh +6 -36
  21. package/docs/CoreConfig.md +2 -2
  22. package/docs/Logging.md +7 -21
  23. package/docs/Outbound.md +104 -201
  24. package/docs/Plugins.md +2 -2
  25. package/docs/Transaction.md +59 -82
  26. package/docs/plugins/queue/smtp_proxy.md +5 -10
  27. package/docs/plugins/tls.md +29 -9
  28. package/endpoint.js +16 -13
  29. package/haraka.js +10 -14
  30. package/host_pool.js +5 -5
  31. package/line_socket.js +3 -4
  32. package/logger.js +44 -28
  33. package/outbound/client_pool.js +27 -23
  34. package/outbound/config.js +4 -6
  35. package/outbound/fsync_writestream.js +1 -1
  36. package/outbound/hmail.js +178 -218
  37. package/outbound/index.js +86 -99
  38. package/outbound/qfile.js +1 -1
  39. package/outbound/queue.js +51 -44
  40. package/outbound/timer_queue.js +3 -2
  41. package/outbound/tls.js +19 -7
  42. package/package.json +59 -48
  43. package/plugins/.eslintrc.yaml +0 -6
  44. package/plugins/auth/auth_base.js +4 -2
  45. package/plugins/auth/auth_proxy.js +14 -12
  46. package/plugins/auth/auth_vpopmaild.js +1 -1
  47. package/plugins/block_me.js +1 -1
  48. package/plugins/data.signatures.js +2 -4
  49. package/plugins/early_talker.js +2 -1
  50. package/plugins/mail_from.is_resolvable.js +65 -135
  51. package/plugins/queue/deliver.js +4 -5
  52. package/plugins/queue/lmtp.js +11 -14
  53. package/plugins/queue/qmail-queue.js +2 -2
  54. package/plugins/queue/quarantine.js +2 -2
  55. package/plugins/queue/rabbitmq.js +16 -17
  56. package/plugins/queue/smtp_forward.js +3 -3
  57. package/plugins/queue/smtp_proxy.js +10 -1
  58. package/plugins/queue/test.js +2 -2
  59. package/plugins/rcpt_to.host_list_base.js +5 -5
  60. package/plugins/rcpt_to.in_host_list.js +2 -2
  61. package/plugins/relay.js +6 -7
  62. package/plugins/reseed_rng.js +1 -1
  63. package/plugins/status.js +37 -33
  64. package/plugins/tls.js +2 -2
  65. package/plugins/xclient.js +3 -2
  66. package/plugins.js +50 -54
  67. package/run_tests +3 -30
  68. package/server.js +190 -190
  69. package/smtp_client.js +30 -23
  70. package/{tests → test}/config/plugins +0 -2
  71. package/{tests → test}/config/smtp.ini +1 -1
  72. package/test/config/tls/example.com/_.example.com.key +28 -0
  73. package/test/config/tls/example.com/example.com.crt +25 -0
  74. package/test/connection.js +302 -0
  75. package/test/endpoint.js +94 -0
  76. package/{tests → test}/fixtures/line_socket.js +1 -1
  77. package/{tests → test}/fixtures/util_hmailitem.js +19 -25
  78. package/{tests → test}/host_pool.js +42 -57
  79. package/test/logger.js +258 -0
  80. package/test/outbound/hmail.js +141 -0
  81. package/test/outbound/index.js +220 -0
  82. package/test/outbound/qfile.js +126 -0
  83. package/test/outbound_bounce_net_errors.js +142 -0
  84. package/{tests → test}/outbound_bounce_rfc3464.js +110 -122
  85. package/test/plugins/auth/auth_base.js +484 -0
  86. package/test/plugins/auth/auth_vpopmaild.js +83 -0
  87. package/test/plugins/early_talker.js +104 -0
  88. package/test/plugins/mail_from.is_resolvable.js +35 -0
  89. package/test/plugins/queue/smtp_forward.js +206 -0
  90. package/test/plugins/rcpt_to.host_list_base.js +122 -0
  91. package/test/plugins/rcpt_to.in_host_list.js +193 -0
  92. package/test/plugins/relay.js +303 -0
  93. package/test/plugins/status.js +130 -0
  94. package/test/plugins/tls.js +70 -0
  95. package/test/plugins.js +228 -0
  96. package/test/rfc1869.js +73 -0
  97. package/test/server.js +491 -0
  98. package/test/smtp_client.js +299 -0
  99. package/test/tls_socket.js +273 -0
  100. package/test/transaction.js +270 -0
  101. package/tls_socket.js +202 -252
  102. package/transaction.js +8 -23
  103. package/CONTRIBUTING.md +0 -1
  104. package/bin/dkimverify +0 -40
  105. package/config/access.domains +0 -13
  106. package/config/attachment.ctype.regex +0 -2
  107. package/config/attachment.filename.regex +0 -1
  108. package/config/avg.ini +0 -5
  109. package/config/bounce.ini +0 -15
  110. package/config/data.headers.ini +0 -61
  111. package/config/dkim/dkim_key_gen.sh +0 -78
  112. package/config/dkim_sign.ini +0 -4
  113. package/config/dkim_verify.ini +0 -7
  114. package/config/dnsbl.ini +0 -23
  115. package/config/greylist.ini +0 -43
  116. package/config/helo.checks.ini +0 -52
  117. package/config/messagesniffer.ini +0 -18
  118. package/config/spamassassin.ini +0 -56
  119. package/dkim.js +0 -614
  120. package/docs/plugins/avg.md +0 -35
  121. package/docs/plugins/bounce.md +0 -69
  122. package/docs/plugins/clamd.md +0 -147
  123. package/docs/plugins/esets.md +0 -8
  124. package/docs/plugins/greylist.md +0 -90
  125. package/docs/plugins/helo.checks.md +0 -135
  126. package/docs/plugins/messagesniffer.md +0 -163
  127. package/docs/plugins/spamassassin.md +0 -180
  128. package/outbound/mx_lookup.js +0 -70
  129. package/plugins/auth/auth_ldap.js +0 -3
  130. package/plugins/avg.js +0 -162
  131. package/plugins/backscatterer.js +0 -25
  132. package/plugins/bounce.js +0 -381
  133. package/plugins/clamd.js +0 -382
  134. package/plugins/data.uribl.js +0 -4
  135. package/plugins/dkim_sign.js +0 -395
  136. package/plugins/dkim_verify.js +0 -62
  137. package/plugins/dns_list_base.js +0 -221
  138. package/plugins/dnsbl.js +0 -146
  139. package/plugins/dnswl.js +0 -58
  140. package/plugins/esets.js +0 -71
  141. package/plugins/graph.js +0 -5
  142. package/plugins/greylist.js +0 -645
  143. package/plugins/helo.checks.js +0 -533
  144. package/plugins/messagesniffer.js +0 -381
  145. package/plugins/rcpt_to.ldap.js +0 -3
  146. package/plugins/rcpt_to.max_count.js +0 -24
  147. package/plugins/spamassassin.js +0 -384
  148. package/tests/config/dkim/example.com/dns +0 -29
  149. package/tests/config/dkim/example.com/private +0 -6
  150. package/tests/config/dkim/example.com/public +0 -4
  151. package/tests/config/dkim/example.com/selector +0 -1
  152. package/tests/config/dkim.private.key +0 -6
  153. package/tests/config/dkim_sign.ini +0 -4
  154. package/tests/config/helo.checks.ini +0 -52
  155. package/tests/connection.js +0 -327
  156. package/tests/endpoint.js +0 -128
  157. package/tests/fixtures/vm_harness.js +0 -59
  158. package/tests/logger.js +0 -327
  159. package/tests/outbound/hmail.js +0 -112
  160. package/tests/outbound/index.js +0 -324
  161. package/tests/outbound/qfile.js +0 -67
  162. package/tests/outbound_bounce_net_errors.js +0 -173
  163. package/tests/plugins/auth/auth_base.js +0 -463
  164. package/tests/plugins/auth/auth_vpopmaild.js +0 -91
  165. package/tests/plugins/bounce.js +0 -307
  166. package/tests/plugins/clamd.js +0 -224
  167. package/tests/plugins/deprecated/relay_acl.js +0 -140
  168. package/tests/plugins/deprecated/relay_all.js +0 -59
  169. package/tests/plugins/dkim_sign.js +0 -315
  170. package/tests/plugins/dkim_signer.js +0 -108
  171. package/tests/plugins/dns_list_base.js +0 -259
  172. package/tests/plugins/dnsbl.js +0 -101
  173. package/tests/plugins/early_talker.js +0 -115
  174. package/tests/plugins/greylist.js +0 -58
  175. package/tests/plugins/helo.checks.js +0 -525
  176. package/tests/plugins/mail_from.is_resolvable.js +0 -116
  177. package/tests/plugins/queue/smtp_forward.js +0 -221
  178. package/tests/plugins/rcpt_to.host_list_base.js +0 -132
  179. package/tests/plugins/rcpt_to.in_host_list.js +0 -218
  180. package/tests/plugins/relay.js +0 -339
  181. package/tests/plugins/spamassassin.js +0 -171
  182. package/tests/plugins/status.js +0 -138
  183. package/tests/plugins/tls.js +0 -84
  184. package/tests/plugins.js +0 -247
  185. package/tests/rfc1869.js +0 -61
  186. package/tests/server.js +0 -510
  187. package/tests/smtp_client/auth.js +0 -105
  188. package/tests/smtp_client/basic.js +0 -101
  189. package/tests/smtp_client.js +0 -80
  190. package/tests/tls_socket.js +0 -333
  191. package/tests/transaction.js +0 -284
  192. /package/docs/{plugins → deprecated}/dkim_sign.md +0 -0
  193. /package/docs/{plugins → deprecated}/dkim_verify.md +0 -0
  194. /package/docs/{plugins → deprecated}/dnsbl.md +0 -0
  195. /package/docs/{plugins → deprecated}/dnswl.md +0 -0
  196. /package/{tests → test}/.eslintrc.yaml +0 -0
  197. /package/{tests → test}/config/auth_flat_file.ini +0 -0
  198. /package/{tests → test}/config/dhparams.pem +0 -0
  199. /package/{tests → test}/config/host_list +0 -0
  200. /package/{tests → test}/config/outbound_tls_cert.pem +0 -0
  201. /package/{tests → test}/config/outbound_tls_key.pem +0 -0
  202. /package/{tests → test}/config/smtp_forward.ini +0 -0
  203. /package/{tests → test}/config/tls/ec.pem +0 -0
  204. /package/{tests → test}/config/tls/haraka.local.pem +0 -0
  205. /package/{tests → test}/config/tls/mismatched.pem +0 -0
  206. /package/{tests → test}/config/tls.ini +0 -0
  207. /package/{tests → test}/config/tls_cert.pem +0 -0
  208. /package/{tests → test}/config/tls_key.pem +0 -0
  209. /package/{tests → test}/fixtures/todo_qfile.txt +0 -0
  210. /package/{tests → test}/installation/config/test-plugin-flat +0 -0
  211. /package/{tests → test}/installation/config/test-plugin.ini +0 -0
  212. /package/{tests → test}/installation/config/tls.ini +0 -0
  213. /package/{tests → test}/installation/node_modules/load_first/index.js +0 -0
  214. /package/{tests → test}/installation/node_modules/load_first/package.json +0 -0
  215. /package/{tests → test}/installation/node_modules/test-plugin/config/test-plugin-flat +0 -0
  216. /package/{tests → test}/installation/node_modules/test-plugin/config/test-plugin.ini +0 -0
  217. /package/{tests → test}/installation/node_modules/test-plugin/package.json +0 -0
  218. /package/{tests → test}/installation/node_modules/test-plugin/test-plugin.js +0 -0
  219. /package/{tests → test}/installation/plugins/base_plugin.js +0 -0
  220. /package/{tests → test}/installation/plugins/folder_plugin/index.js +0 -0
  221. /package/{tests → test}/installation/plugins/folder_plugin/package.json +0 -0
  222. /package/{tests → test}/installation/plugins/inherits.js +0 -0
  223. /package/{tests → test}/installation/plugins/load_first.js +0 -0
  224. /package/{tests → test}/installation/plugins/plugin.js +0 -0
  225. /package/{tests → test}/installation/plugins/tls.js +0 -0
  226. /package/{tests → test}/loud/config/dhparams.pem +0 -0
  227. /package/{tests → test}/loud/config/tls/goobered.pem +0 -0
  228. /package/{tests → test}/loud/config/tls.ini +0 -0
  229. /package/{tests → test}/mail_specimen/base64-root-part.txt +0 -0
  230. /package/{tests → test}/mail_specimen/varied-fold-lengths-preserve-data.txt +0 -0
  231. /package/{tests → test}/queue/1507509981169_1507509981169_0_61403_e0Y0Ym_1_fixed +0 -0
  232. /package/{tests → test}/queue/1507509981169_1507509981169_0_61403_e0Y0Ym_1_haraka +0 -0
  233. /package/{tests → test}/queue/1508269674999_1508269674999_0_34002_socVUF_1_haraka +0 -0
  234. /package/{tests → test}/queue/1508455115683_1508455115683_0_90253_9Q4o4V_1_haraka +0 -0
  235. /package/{tests → test}/queue/multibyte +0 -0
  236. /package/{tests → test}/queue/plain +0 -0
  237. /package/{tests → test}/queue/zero-length +0 -0
  238. /package/{tests → test}/test-queue/delete-me +0 -0
@@ -1,84 +0,0 @@
1
- 'use strict';
2
-
3
- const path = require('path');
4
-
5
- const fixtures = require('haraka-test-fixtures');
6
- const Plugin = fixtures.plugin;
7
-
8
- function _set_up (done) {
9
- const plugin = new Plugin('tls');
10
- this.plugin = plugin;
11
- this.connection = new fixtures.connection.createConnection();
12
-
13
- // use tests/config instead of ./config
14
- plugin.config = plugin.config.module_config(path.resolve('tests'));
15
- plugin.net_utils.config = plugin.net_utils.config.module_config(path.resolve('tests'));
16
-
17
- plugin.tls_opts = {};
18
- done();
19
- }
20
-
21
- exports.plugin = {
22
- setUp : _set_up,
23
- 'has function register' (test) {
24
- test.expect(2);
25
- test.ok(this.plugin);
26
- test.equal('function', typeof this.plugin.register);
27
- test.done();
28
- },
29
- 'has function upgrade_connection' (test) {
30
- test.expect(1);
31
- test.equal('function', typeof this.plugin.upgrade_connection);
32
- test.done();
33
- },
34
- 'has function advertise_starttls' (test) {
35
- test.expect(1);
36
- test.equal('function', typeof this.plugin.advertise_starttls);
37
- test.done();
38
- },
39
- 'has function emit_upgrade_msg' (test) {
40
- test.expect(1);
41
- test.equal('function', typeof this.plugin.emit_upgrade_msg);
42
- test.done();
43
- },
44
- }
45
-
46
- exports.register = {
47
- setUp (done) {
48
- this.plugin = new Plugin('tls');
49
- done();
50
- },
51
- 'with certs, should call register_hook()' (test) {
52
- test.expect(1);
53
- this.plugin.register();
54
- test.ok(this.plugin.register_hook.called);
55
- // console.log(this.plugin);
56
- test.done();
57
- },
58
- }
59
-
60
- exports.emit_upgrade_msg = {
61
- setUp : _set_up,
62
- 'should emit a log message' (test) {
63
- test.expect(1);
64
- test.equal(this.plugin.emit_upgrade_msg(this.connection, true, '', {
65
- subject: {
66
- CN: 'TLS.subject',
67
- O: 'TLS.org'
68
- },
69
- }),
70
- 'secured: verified=true cn="TLS.subject" organization="TLS.org"');
71
- test.done();
72
- },
73
- 'should emit a log message with error' (test) {
74
- test.expect(1);
75
- test.equal(this.plugin.emit_upgrade_msg(this.connection, true, 'oops', {
76
- subject: {
77
- CN: 'TLS.subject',
78
- O: 'TLS.org'
79
- },
80
- }),
81
- 'secured: verified=true error="oops" cn="TLS.subject" organization="TLS.org"');
82
- test.done();
83
- }
84
- }
package/tests/plugins.js DELETED
@@ -1,247 +0,0 @@
1
- 'use strict';
2
-
3
- process.env.WITHOUT_CONFIG_CACHE=true;
4
-
5
- const fs = require('fs');
6
- const path = require('path');
7
- const plugin = require('../plugins');
8
-
9
- const piName = 'testPlugin';
10
-
11
- /*
12
-
13
- From: https://github.com/haraka/Haraka/pull/1278#issuecomment-172134064
14
-
15
- * Need to test installed mode + core mode
16
- * Need to test each variation of loading plugins
17
- INSTALLED MODE
18
- * Create tests/installation/ with config/, plugins/, and node_modules
19
- * Plugin in <install_dir>/plugins/<name>.js
20
- * Plugin in <install_dir>/plugins/<name>/ with package.json
21
- * Plugin in <install_dir>/node_modules/<name>/ with package.json
22
- CORE MODE + INSTALLED MODE
23
- * Plugin in <core>/plugins/<name>.js
24
- * Plugin in <core>/plugins/<name>/ with package.json
25
- * Plugin in <core>/node_modules/<name>/ with package.json
26
- * Need to test conflict on name in various forms
27
- * Check plugins/<name>.js loads, not node_modules/<name>/package.json
28
- * Should be enough of a check(?)
29
- * Need to test plugin not existing
30
- * Check <bogus_name_guaranteed_to_not_exist> fails
31
- * Need to test plugin existing and failing to compile
32
- * Create bad plugin in tests/installation/plugins/bad_plugin.js
33
- * Need to test plugin inheritance
34
- * Base plugin in tests/installation/plugins/base_plugin.js
35
- * Real plugin in tests/installation/plugins/inherits.js
36
- * Check base methods work
37
- * Check plugin.base.base_plugin is set/correct
38
- * Plugin timeouts (already tested)
39
-
40
- */
41
-
42
- exports.plugin = {
43
- 'new Plugin() object': test => {
44
- const pi = new plugin.Plugin(piName);
45
- test.expect(1);
46
- test.ok(pi);
47
- test.done();
48
- }
49
- }
50
-
51
- const toPath = path.join('config', `${piName}.timeout`);
52
-
53
- exports.get_timeout = {
54
- tearDown : done => {
55
- fs.unlink(toPath, done);
56
- },
57
- '0s' (test) {
58
- test.expect(1);
59
- fs.writeFile(toPath, '0', () => {
60
- this.plugin = new plugin.Plugin(piName);
61
- test.equal( this.plugin.timeout, 0 );
62
- test.done();
63
- })
64
- },
65
- '3s' (test) {
66
- test.expect(1);
67
- fs.writeFile(toPath, '3', () => {
68
- this.plugin = new plugin.Plugin(piName);
69
- test.equal( this.plugin.timeout, 3 );
70
- test.done();
71
- })
72
- },
73
- '60s' (test) {
74
- test.expect(1);
75
- fs.writeFile(toPath, '60', () => {
76
- this.plugin = new plugin.Plugin(piName);
77
- test.equal( this.plugin.timeout, 60 );
78
- test.done();
79
- })
80
- },
81
- '30s default (overrides NaN)' (test) {
82
- test.expect(1);
83
- fs.writeFile(toPath, 'apple', () => {
84
- this.plugin = new plugin.Plugin(piName);
85
- test.equal( this.plugin.timeout, 30 );
86
- test.done();
87
- })
88
- },
89
- }
90
-
91
- exports.plugin_paths = {
92
- setUp : done => {
93
- delete process.env.HARAKA;
94
- done();
95
- },
96
- tearDown : done => {
97
- delete process.env.HARAKA;
98
- done();
99
- },
100
- 'CORE plugin: (tls)' : test => {
101
- const p = new plugin.Plugin('tls');
102
-
103
- test.expect(1);
104
- test.equal(p.plugin_path, path.resolve(__dirname, '..', 'plugins', 'tls.js'));
105
- test.done();
106
- },
107
-
108
- 'INSTALLED override: (tls)': test => {
109
- process.env.HARAKA = path.resolve(__dirname, '..', 'tests', 'installation');
110
-
111
- const p = new plugin.Plugin('tls');
112
-
113
- test.expect(1);
114
- test.equal(p.plugin_path, path.resolve(__dirname, 'installation', 'plugins', 'tls.js'));
115
- test.done();
116
- },
117
-
118
- 'INSTALLED node_modules package plugin: (test-plugin)': test => {
119
- process.env.HARAKA = path.resolve(__dirname, '..', 'tests', 'installation');
120
-
121
- const p = new plugin.Plugin('test-plugin');
122
-
123
- test.expect(3);
124
- test.equal(p.plugin_path, path.resolve(__dirname, 'installation', 'node_modules', 'test-plugin', 'package.json'));
125
- test.ok(p.hasPackageJson);
126
- try {
127
- p._compile();
128
- test.ok(true, "compiles OK");
129
- }
130
- catch (e) {
131
- console.error(e.stack);
132
- test.ok(false, "compiles OK");
133
- }
134
- test.done();
135
- },
136
-
137
- 'CORE package plugin: asn': test => {
138
- const p = new plugin.Plugin('haraka-plugin-asn');
139
-
140
- test.expect(2);
141
- test.equal(p.plugin_path, path.resolve(__dirname, '..', 'node_modules', 'haraka-plugin-asn', 'package.json'));
142
- test.ok(p.hasPackageJson);
143
- test.done();
144
- },
145
-
146
- 'plugins overrides node_modules': test => {
147
- process.env.HARAKA = path.resolve(__dirname, '..', 'tests', 'installation');
148
-
149
- const p = new plugin.Plugin('load_first');
150
-
151
- test.expect(3);
152
- test.equal(p.plugin_path, path.resolve(__dirname, 'installation', 'plugins', 'load_first.js'));
153
- try {
154
- p._compile();
155
- test.ok(true, "compiles OK");
156
- }
157
- catch (e) {
158
- console.error(e.stack);
159
- test.ok(false, "compiles OK");
160
- }
161
- test.ok(p.loaded_first);
162
- test.done();
163
- },
164
-
165
- 'INSTALLED plugins folder plugin: (folder_plugin)': test => {
166
- process.env.HARAKA = path.resolve(__dirname, '..', 'tests', 'installation');
167
-
168
- const p = new plugin.Plugin('folder_plugin');
169
-
170
- test.expect(3);
171
- test.equal(p.plugin_path, path.resolve(__dirname, 'installation', 'plugins', 'folder_plugin', 'package.json'));
172
- test.ok(p.hasPackageJson);
173
- try {
174
- p._compile();
175
- test.ok(true, "compiles OK");
176
- }
177
- catch (e) {
178
- console.error(e.stack);
179
- test.ok(false, "compiles OK");
180
- }
181
- test.done();
182
- },
183
-
184
- 'Inheritance: (inherits)': test => {
185
- process.env.HARAKA = path.resolve(__dirname, '..', 'tests', 'installation');
186
-
187
- const p = new plugin.Plugin('inherits');
188
-
189
- test.expect(3);
190
- test.equal(p.plugin_path, path.resolve(__dirname, 'installation', 'plugins', 'inherits.js'));
191
- try {
192
- p._compile();
193
- test.ok(true, "compiles OK");
194
- }
195
- catch (e) {
196
- console.error(e.stack);
197
- test.ok(false, "compiles OK");
198
- }
199
- p.register();
200
- test.ok(p.base.base_plugin);
201
- test.done();
202
- },
203
- }
204
-
205
- exports.plugin_config = {
206
- setUp : done => {
207
- delete process.env.HARAKA;
208
- done();
209
- },
210
- tearDown : done => {
211
- delete process.env.HARAKA;
212
- done();
213
- },
214
- 'CORE plugin: (tls)' : test => {
215
-
216
- const p = new plugin.Plugin('tls');
217
-
218
- test.expect(2);
219
- test.equal(p.config.root_path, path.resolve(__dirname, '..', 'config'));
220
- test.equal(p.config.overrides_path, undefined);
221
- test.done();
222
- },
223
-
224
- 'INSTALLED override: (tls)': test => {
225
- process.env.HARAKA = path.resolve(__dirname, '..', 'tests', 'installation');
226
-
227
- const p = new plugin.Plugin('tls');
228
-
229
- test.expect(3);
230
- test.equal(p.config.root_path, path.resolve(__dirname, '..', 'config'));
231
- test.equal(p.config.overrides_path, path.resolve(__dirname, 'installation', 'config'));
232
- const tls_ini = p.config.get('tls.ini');
233
- test.equal(tls_ini.main.ciphers, 'test');
234
- test.done();
235
- },
236
-
237
- 'INSTALLED node_modules package plugin: (test-plugin)': test => {
238
- process.env.HARAKA = path.resolve(__dirname, '..', 'tests', 'installation');
239
-
240
- const p = new plugin.Plugin('test-plugin');
241
-
242
- test.expect(2);
243
- test.equal(p.config.root_path, path.resolve(__dirname, 'installation', 'node_modules', 'test-plugin', 'config'));
244
- test.equal(p.config.overrides_path, path.resolve(__dirname, 'installation', 'config'));
245
- test.done();
246
- },
247
- }
package/tests/rfc1869.js DELETED
@@ -1,61 +0,0 @@
1
- const { parse } = require('../rfc1869');
2
-
3
- function _check (test, line, expected) {
4
- test.expect(1 + expected.length);
5
- const match = /^(MAIL|RCPT)\s+(.*)$/.exec(line);
6
- const parsed = parse(match[1].toLowerCase(), match[2]);
7
- test.equal(parsed.length, expected.length);
8
- for (let x = 0; x < expected.length; x++) {
9
- test.equal(parsed[x], expected[x]);
10
- }
11
- test.done();
12
- }
13
-
14
- exports.basic = {
15
- 'MAIL FROM:<>': test => {
16
- _check(test, 'MAIL FROM:<>', ['<>']);
17
- },
18
- 'MAIL FROM:': test => {
19
- _check(test, 'MAIL FROM:', ['<>']);
20
- },
21
- 'MAIL FROM:<postmaster>': test => {
22
- _check(test, 'MAIL FROM:<postmaster>', ['<postmaster>']);
23
- },
24
- 'MAIL FROM:user': test => {
25
- _check(test, 'MAIL FROM:user', ['user']);
26
- },
27
- 'MAIL FROM:user size=1234': test => {
28
- _check(test, 'MAIL FROM:user size=1234', ['user', 'size=1234']);
29
- },
30
- 'MAIL FROM:user@domain size=1234': test => {
31
- _check(test, 'MAIL FROM:user@domain size=1234',
32
- ['user@domain', 'size=1234']);
33
- },
34
- 'MAIL FROM:<user@domain> size=1234': test => {
35
- _check(test, 'MAIL FROM:<user@domain> size=1234',
36
- ['<user@domain>', 'size=1234']);
37
- },
38
- 'MAIL FROM:<user@domain> somekey': test => {
39
- _check(test, 'MAIL FROM:<user@domain> somekey',
40
- ['<user@domain>', 'somekey']);
41
- },
42
- 'MAIL FROM:<user@domain> somekey other=foo': test => {
43
- _check(test, 'MAIL FROM:<user@domain> somekey other=foo',
44
- ['<user@domain>', 'somekey', 'other=foo']);
45
- },
46
- 'RCPT TO ugly': test => {
47
- _check(test, 'RCPT TO: 0@mailblog.biz 0=9 1=9',
48
- ['<0@mailblog.biz>', '0=9', '1=9']);
49
- },
50
- 'RCPT TO:<r86x-ray@emailitin.com> state=1': test => {
51
- _check(test, 'RCPT TO:<r86x-ray@emailitin.com> state=1',
52
- ['<r86x-ray@emailitin.com>', 'state=1']);
53
- },
54
- 'RCPT TO:<user=name@domain.com> foo=bar': test => {
55
- _check(test, 'RCPT TO:<user=name@domain.com> foo=bar',
56
- ['<user=name@domain.com>', 'foo=bar']);
57
- },
58
- 'RCPT TO:<postmaster>': test => {
59
- _check(test, 'RCPT TO:<postmaster>', ['<postmaster>']);
60
- },
61
- }