fix all the tests by upgrading libraries

This commit is contained in:
eleith 2018-02-09 15:23:58 -08:00
parent bd22fee412
commit 803aa729e5
5 changed files with 197 additions and 291 deletions

View File

@ -23,10 +23,10 @@
"bufferjs": "1.1.0"
},
"devDependencies": {
"mocha": "1.7.4",
"mocha": "5.0.0",
"chai": "1.1.0",
"simplesmtp": "0.3.32",
"mailparser": "0.4.1",
"smtp-server": "^3.4.1",
"mailparser": "2.2.0",
"iconv": "2.2.1"
},
"engine": [
@ -34,7 +34,7 @@
],
"main": "email.js",
"scripts": {
"test": "mocha -R spec -t 5000"
"test": "mocha -R spec"
},
"license" : "MIT"
"license": "MIT"
}

View File

@ -4,7 +4,19 @@
this is how smtp works:
<br>
<br>
<img src="cid:smtp-diagram@local">
<img src="data:image/gif;base64,R0lGODlhQAI2AfcAAAAAAMz///////wD+wAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAACwAAAAAQAI2AQAI/wAFCBxIsKDBgwgTKlzIsKHDhxAjEgRAsaLFixgzatzIsaPHjyBDApBIsqTJkyhTShTJsqXLlzA5qpxJs6bNmxMD6NzJs6fPn0CDCh1KtKhRoyNxKl3KlCmAo1CjSp1KFWnTq1izonxatavXr2B3JtVKtqxZAVzDq
l3L9ufYs3DjOm1Lt27Yt3Lz6i2Z1q7fv1b3Ch68ErDhw0DxEl7MGC3ix48VN55MuC/ky3UlU9581jLmz2o1cx5t1jPo011Fk1691DTq11FVs56t1DXs20Rl0969FbdvqLp5Cz9p+7dxscOTzyx+3Hhw5dAbMm/u+3n06zmpa0eOvXvE6dtfW//3Hh18+NP
jyWM3f/5zevXD2be//B6+cvnzI9vfLxB//sP18cebf/8BFqCApBFYoF8HIsiaggtm5qB6EEbYVoMTjlahhWthmCFjG3J414fwhSjiVx6SOJiJJ6amInkstkhVii/qFaOMUtFYo2A34gjcjvf5iJmOQObVo5BFEVlkWUciOZSSS3bmpH5R7tbklIlVmdyVW
PoEpZZNcdklT1+CiZWYY+pUppk4oZnmmmy2luZfcMZJk5tj1mmnTXh2qeeevc1p15+AqtQnloQWStKhUyaqqEmMOunoow9FiuSklH4n6KCZLmapkJh26tCnPoYqKkKk4mjqqQqlKuOqrGb/t+mFsVY2K12w1urYrWzlqutArrboa6zBnjjsr8WKeOypyXK
4bK3NWvhsp9FGOC2r1S54LaXZFritqN3+962i4eY3bqblzncuoOm2t+6j7Z73rp3xhjdvofVudy+b+Wq37579UvcvmAE3N3CcBR93cJUJO/frXg3/tnCUEVf3sI289nqxlBmHtrFcFeM28ZIh3zayliXDdjKQKYv3cVwto7byjjGj9zJcNYM2c405u3czx
x2DtfOLPQ/5c2lBj3j0VUXTtzRZTUM2tIpRU/n0mUkLffVcWXs1Nc1de721nGFX9TXPZZs9dm1pz7h2mG1PdXaGVSM2N9Vx5/j2TXUD/7g32XkfdbeDfRs2+IeFG/h3TYnTuXibgf/4uKGRCz45n5UHdjlxmSe5+Z2d5/Y556ELdTjdpZs+OqSpB3X6hI0
zuDpfrWc5O+m19/T6frFzejvruev+u6bBkzk87cVzd7x0ySu/fKXNq/k889HvjmDvEk6/EPa4bhXT9+CHXxHG1Wu/ffQBYMi9W+Q3b32J6Kvfta/ra2x+QvV3GGjS9Md/P/7+w13Q+le+/x0kfx4TYMcI6D4DHjCAwONf+5L3PgpBEHkSNNIFHdifDRYmawykIAcLgkClRXCAEyxeBWHkQeJlEGQtNGAJtabAjIVQhSOUlQhryKsbBm+F3pkhiv/2h0INFjCHu2ogD2/lQ8NVJH3p40rBgNidPj2xZ/IDYQoN1BeKqOmL6kJiBw0kFiwScYFbpJOXwBgbmYkxiQwiU6nOaMM0Dsp0cnMj0yiCFrRIho8eARGm8FS3LL$QZpHBoxfLqKanLNIiOmMasJLCx4lQsj+YHMu1Bgkg1zzSkZB8YiNHuUip0bGHdswMHqEIRilKkY0+C9NE+oOXSgJrlpj0FNLsZplXRhGKaQlmKx1ptCXOqol3dF0rxcJGX0ZSkiTsYyajectcktCW4/MjICk5Plv6kZbfnGQlswk3qTFzmedkpTBZGcsT$tGIAFqlK0W5zmCK0m9nestINCn/zWrS0pvVvGQuBUrQgQ60oNPsJ9fMGUV66o6dF4ElJA13SiamUpWJQaccNdrOMwVUmrXEJaqoCVKDlrSf2eQnSq3JNMM9lJ3p/OI6N9rRRc3vorjqpUZ9WU89OgWXlxSoPxVqkJCaFKFItaZQVdpSLtKUp2vcqDOL6c$OhXKiJhuVdch5PvpMFCOMbKhYf1lT/AUImwYVKktVg9CTJtWtSj3oSVcCUACSEaujHGtM83pPpxnzLi+1WKssUqmLdFWJZuUqRPY5znH+U5yPNasluclYbW4znBnRJjgNyxfO2hWxGMToXlWGqsxq1bRFjaFGtrYRVMUQenGkqciu2drT/9YWWBvsCGt1$0Mc/lVogdUrWb1Yyu5ZVia25a0QxXbc2y4tJGMErU1jm05n8pSYgxLf9+Kn3e5697vghclrR6XGpwZ2qr4DSWE/Et0dqvdq0IWjb6vaq+CWMqIw9Z04V5tc1LZ3vv/k79MC2dsfVjQ0weUoLPVLW88yxLkFzp1mBMy4Azm2NmcN54MpHOHaGTKZMLWugr$X2LqW2MQdzi52+1pGUH7EryeuDXFYyje+0PjEsmHUFRtpGnqCBMahVbHuijtcIht3w+slr93Cmlcmz1TEVttemRr0J/WdVskubTJZmQzRc84Un/S1KDyzLNFePtnLslVcm7ipYctaEv+kbEYrNvVZ18a2mbD7vTObibqcJceUyMU9c4ijPN1D4iyRiTGz$6K6YMfVGM4mJeqF9/zWth61rUat9I0pF89EDzmj9iX0Bw0NtE4uWpg9ZnSkpnzhuRrVzSt1Kzkn3OqlUnOpk4YcL0/NTE+q2pS/nRMy6aRTVC96yEZWM58ibWuRvvqtJP1orJl61GrzmdORKXavQU0mFlM02G/CKXXVSW5Gj9ZubWK2XJ2tbri6W9oq3T$8rf0lUnVRpo1udKo+/E4Y6gzN6NX3M/mGEc1+c86aTHhj8YzwAxY8pZV97GWbi2fG/XuZARd4WV1YRH93urr4zq/GqZoglPkZ5MD/zLfI933gTQ07p+Zt5rHTLOrNULFVu0Z5l2d+bjAHuY5jvquPd4zfhn7S299OEIrxFs+vhtLoXXQ60pX9c1QG3cBi$K6LwJ0ncXfu5tfRutq47ievZw7s5Rkv9Ui9S+lyUOxuIzuizF45tEMH7nJruaBeXjq7B+mIVRezx3eIRLzrTe6Nonvk/L4ltT/4pleX8BsNHxu9C1vxgWN8fBx/2I4jEvAjpLzkwnxMzOdN88IRveUQLynTxw31A+I8zrUYeQ9PXvY4Dq/utev6tsHeSr$Xnuo1l8Phe+6NuAX924M/PeOLLuvMf57zn3R75Rc++rebvuqQ/1+sX9/6xcf+/+y07zrud1/y0Ad/6MW/OvLbjvvuZ1/63f59+suQ/b+Lv5eqb//1q/9++ic85heAxjN/hId8BOg8/td/y/d/5pOA0jOA+Pc5EJg+5idf3hd+Dnh/G9h8Ezh+H3g5Ffh7$9eB0heCozOC/HeAKwhgC8iCBuiCDciADqSCMZiBLYiDMwiD9ceDHEiDP+iD/2OD8IeCj0OECGiEi4OEOYh+PSiDT6iDNaiEIkiFe8OEN+iEGgiEQ2iFb4OFUaiFLwiFWyiEAOiFS4iGYwOGZUiGXWiCD6iGrCWHX0iHA2aHa4iHR8OGYyiFQeiGOwiIcQ$HwqeHP8OHgeiHb8iFZ0iIw/+DiFPoiPlniHcoidlHic+FiR8DiX+oiI3IiIMIisfDiYtohqFoip0ohomoimFoe1noikVoiSAoi4+oiRtDip+Iih5Ii5PIixRoizeDi8sjjIXoi5tDjLsoirVojO0HjA+DjCfIjJMDjcPojMhijbeIjdCijc+4e974jfFV$OA4juRYcBfIGSR4jqOijtDCjtTijsyydPCIMvI4j2aiWPZ4j/WYjwyzj/zIM/74jzRTcQJJMQRZkPSIjwgJkAq5kCxzkA5JNBAZkQw5kRRJOOZ4kQPpYBoJOxnZkVTzkSB5PSI5khjpXyZpHxCWkvyxkiwZRBz2kioZkzK5HjRZk1X/hFw4aZMuuZPloZ$+eXdAGZQUQpQtaZSEg5QqqZQCko4L6ZQUCZUFKZUOSZX/aJUIiZX5qJUCyZXz6JX8CJbuKJb2SJbqaJbwiJYXqJbsyJbwx5RHCZdBJJdLSZfrYZdFiZfloZdzyZf34Zd3CZjxIZh7SZgDYph/iZi04ZbnyJiTp5iDCZkPIpmHSZklZ5k2x1uYaSSauZk8$pSe2RmgGZowM5qkqRWdeZogc5OqmRU92ZpMwpqwGSayOZv5hJK2eZslmZtQs5u8SZsc+Zu9GZzC6RS+WZzAaZHISXDEuZzJ6Zhvp5zO2RrSOZ13Up3WySfYmZ3e05DcuWbQGXoB//mdhjKe5Lko5nmekJKe6plk7SlL75lu8flT87lsyFmO+PleHZmf/G$aF4lA4Zl6njeSAEqgAwqSBYqgB7qfC1qVDfqfD5qVERqRCcqg/WaSFaqRGWqgFwqhHaqgH0qhE+qgIUqiQJeSaKIRMmVvHKpi+AVKG6ehZFZuLAqi5YVONYqiM2puNWei48aj6MaShLRKQOahN8pzPWqk1OVKZeZzSgpiTBpiVvSShIRVUEZILcogVipz$ndkGEpmPbVzjmahNxqmX8ZgWQpiUsVjyUYrNvqjOIpXaPqmaopmXSo7dCpaa3qnc0qmcFpugIqnflqnO6Vy9qOjWtpXYKVlgv8qo4kaaEXXpm6KqCfqqJWapqWXpy5HpSN6lZ0qoSX6lJ86laNalqXqqaEKqpeqqXuHqZsqpKealrG6lXdBXO7iqnJjq/$CqSjCZf6Cq23EqALDq15Dc0RapFEJXD3Hbcg6qDNiNgNnqakBrTH6pGZjZi7GY0YXVsQVpTTkrDOCrWN1Rff0SUWWQJQqNPeGoxI1THxlQtKKIutKo+2qTlHKIgH6dx2CcjrFpYI2RKw6rf56XnYqpsyVrggWck1mTw7FpQALrr2qsFvGsI+kcwf7pREL$p4BZTHHp5UXsMBBsBvrsDqHr8SaGvM6aIEKVSS7dRAbGym7rlPFsgbrshiVW6xyGnVRx63dmq0PG6/PmrPdtrN81bPCNXYIiysGA6wJ6zCw+qdZBbLKqjAn2yvtkq/AlxlXW7WZ+rLh9rSrKqKpKrZh66OCd7NW57VdB7ZpC7SvmrRv67atyrZna61xy7$rq7ZlJ6T92bfN+ZR+G7hYW5+EW7iGe7iIm7iKu7iM27iO+7iQG7mSO7mUW7mWe7nRERAAOw==">
</div>
</body>
</html>

View File

@ -1,6 +1,6 @@
describe("authorize plain", function()
{
var simplesmtp = require("simplesmtp");
describe("authorize plain", function() {
var parser = require('mailparser').simpleParser;
var smtpServer = require("smtp-server").SMTPServer;
var expect = require("chai").expect;
var fs = require("fs");
var os = require("os");
@ -10,82 +10,51 @@ describe("authorize plain", function()
var server = null;
var smtp = null;
var send = function(message, verify)
{
smtp.on("startData", function(envelope)
{
envelope.parser = new (require("mailparser").MailParser)({defaultCharset:"utf-8"});
envelope.parser.on("end", function(mail)
{
verify(mail);
smtp.removeListener("startData", arguments.callee);
});
});
server.send(message, function(err)
{
if(err)
throw err;
});
}
before(function(done)
{
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; // prevent CERT_HAS_EXPIRED errors
smtp = simplesmtp.createServer({secureConnection:true,
requireAuthentication:true,
authMethods: ["PLAIN"]});
smtp.listen(port, function()
{
smtp.on("data", function(envelope, chunk)
{
envelope.parser.write(chunk);
});
smtp.on("dataReady", function(envelope, callback)
{
envelope.parser.end();
callback(null);
});
done();
});
});
after(function(done)
{
smtp.end(done);
});
it("login", function(done)
{
server = email.server.connect({port:port, user:"piglet", password:"haycorns", ssl:true});
var message =
{
subject: "this is a test TEXT message from emailjs",
from: "piglet@gmail.com",
to: "pooh@gmail.com",
text: "It is hard to be brave when you're only a Very Small Animal."
var send = function(message, verify, done) {
smtp.onData = function(stream, session, callback) {
parser(stream).then(verify).then(done).catch(done);
stream.on('end', callback);
};
smtp.on("authorizeUser", function(envelope, username, password, callback)
{
smtp.removeListener("authorizeUser", arguments.callee);
callback(null, username == "piglet" && password == "haycorns")
});
server.send(message, function(err) { if (err) throw err; });
}
send(email.message.create(message), function(mail)
{
expect(mail.text).to.equal(message.text + "\n\n");
expect(mail.headers.subject).to.equal(message.subject);
expect(mail.headers.from).to.equal(message.from);
expect(mail.headers.to).to.equal(message.to);
done();
before(function(done) {
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; // prevent CERT_HAS_EXPIRED errors
smtp = new smtpServer({secure: true, authMethods: ["LOGIN"]});
smtp.listen(port, function() {
smtp.onAuth = function(auth, session, callback) {
if (auth.username == "pooh" && auth.password == "honey") {
callback(null, {user: "pooh"});
} else {
return callback(new Error("invalid user / pass"));
}
}
server = email.server.connect({port:port, user:"pooh", password:"honey", ssl:true});
done();
});
});
after(function(done) {
smtp.close(done);
});
it("login", function(done) {
var message = {
subject: "this is a test TEXT message from emailjs",
from: "piglet@gmail.com",
to: "pooh@gmail.com",
text: "It is hard to be brave when you're only a Very Small Animal."
};
send(email.message.create(message), function(mail) {
expect(mail.text).to.equal(message.text + "\n\n\n");
expect(mail.subject).to.equal(message.subject);
expect(mail.from.text).to.equal(message.from);
expect(mail.to.text).to.equal(message.to);
}, done);
});
});

View File

@ -1,6 +1,6 @@
describe("authorize ssl", function()
{
var simplesmtp = require("simplesmtp");
describe("authorize ssl", function() {
var parser = require('mailparser').simpleParser;
var smtpServer = require('smtp-server').SMTPServer;
var expect = require("chai").expect;
var fs = require("fs");
var os = require("os");
@ -10,77 +10,50 @@ describe("authorize ssl", function()
var server = null;
var smtp = null;
var send = function(message, verify)
{
smtp.on("startData", function(envelope)
{
envelope.parser = new (require("mailparser").MailParser)({defaultCharset:"utf-8"});
envelope.parser.on("end", function(mail)
{
verify(mail);
smtp.removeListener("startData", arguments.callee);
});
});
var send = function(message, verify, done) {
smtp.onData = function(stream, session, callback) {
parser(stream).then(verify).then(done).catch(done);
stream.on('end', callback);
};
server.send(message, function(err)
{
if(err)
throw err;
});
server.send(message, function(err) { if (err) throw err; });
}
before(function(done)
{
before(function(done) {
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; // prevent CERT_HAS_EXPIRED errors
smtp = simplesmtp.createServer({secureConnection:true, requireAuthentication:true});
smtp.listen(port, function()
{
smtp.on("data", function(envelope, chunk)
{
envelope.parser.write(chunk);
});
smtp.on("dataReady", function(envelope, callback)
{
envelope.parser.end();
callback(null);
});
smtp = new smtpServer({secure: true, authMethods: ["LOGIN"]});
smtp.listen(port, function() {
smtp.onAuth = function(auth, session, callback) {
if (auth.username == "pooh" && auth.password == "honey") {
callback(null, {user: "pooh"});
} else {
return callback(new Error("invalid user / pass"));
}
}
done();
server = email.server.connect({port:port, user:"pooh", password:"honey", ssl:true});
done();
});
});
after(function(done)
{
smtp.end(done);
after(function(done) {
smtp.close(done);
});
it("login", function(done)
{
server = email.server.connect({port:port, user:"pooh", password:"honey", ssl:true});
var message =
{
it("login", function(done) {
var message = {
subject: "this is a test TEXT message from emailjs",
from: "pooh@gmail.com",
to: "rabbit@gmail.com",
text: "hello friend, i hope this message finds you well."
};
smtp.on("authorizeUser", function(envelope, username, password, callback)
{
smtp.removeListener("authorizeUser", arguments.callee);
callback(null, username == "pooh" && password == "honey")
});
send(email.message.create(message), function(mail)
{
expect(mail.text).to.equal(message.text + "\n\n");
expect(mail.headers.subject).to.equal(message.subject);
expect(mail.headers.from).to.equal(message.from);
expect(mail.headers.to).to.equal(message.to);
done();
});
send(email.message.create(message), function(mail) {
expect(mail.text).to.equal(message.text + "\n\n\n");
expect(mail.subject).to.equal(message.subject);
expect(mail.from.text).to.equal(message.from);
expect(mail.to.text).to.equal(message.to);
}, done);
});
});

View File

@ -1,6 +1,6 @@
describe("messages", function()
{
var simplesmtp = require("simplesmtp");
describe("messages", function() {
var parser = require('mailparser').simpleParser;
var smtpServer = require('smtp-server').SMTPServer;
var expect = require("chai").expect;
var fs = require("fs");
var os = require("os");
@ -10,61 +10,41 @@ describe("messages", function()
var server = null;
var smtp = null;
var send = function(message, verify, done)
{
smtp.once("startData", function(envelope)
{
envelope.parser = new (require("mailparser").MailParser)({defaultCharset:"utf-8"});
var send = function(message, verify, done) {
smtp.onData = function(stream, session, callback) {
//stream.pipe(process.stdout);
parser(stream).then(verify).then(done).catch(done);
stream.on('end', callback);
};
envelope.parser.on("end", function(mail)
{
verify(mail);
});
});
server.send(message, function(err) { if (err) throw err; });
}
server.send(message, function(err, message)
{
if(err)
throw err;
else
done();
});
};
before(function(done)
{
before(function(done) {
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; // prevent CERT_HAS_EXPIRED errors
smtp = simplesmtp.createServer();
smtp = new smtpServer({secure: true, authMethods: ["LOGIN"]});
smtp.listen(port, function() {
smtp.onAuth = function(auth, session, callback) {
if (auth.username == "pooh" && auth.password == "honey") {
callback(null, {user: "pooh"});
} else {
return callback(new Error("invalid user / pass"));
}
}
smtp.listen(port, function()
{
server = email.server.connect({port:port});
smtp.on("data", function(envelope, chunk)
{
envelope.parser.write(chunk);
});
smtp.on("dataReady", function(envelope, callback)
{
envelope.parser.end();
callback(null);
});
done();
server = email.server.connect({port:port, user:"pooh", password:"honey", ssl:true});
done();
});
});
after(function(done)
{
smtp.end(done);
after(function(done) {
smtp.close(done);
});
it("simple text message", function(done)
{
var message =
{
var message = {
subject: "this is a test TEXT message from emailjs",
from: "zelda@gmail.com",
to: "gannon@gmail.com",
@ -72,13 +52,12 @@ describe("messages", function()
"message-id": "this is a special id"
};
send(email.message.create(message), function(mail)
{
expect(mail.text).to.equal(message.text + "\n\n");
expect(mail.headers.subject).to.equal(message.subject);
expect(mail.headers.from).to.equal(message.from);
expect(mail.headers.to).to.equal(message.to);
expect(mail.headers['message-id']).to.equal(message['message-id']);
send(email.message.create(message), function(mail) {
expect(mail.text).to.equal(message.text + "\n\n\n");
expect(mail.subject).to.equal(message.subject);
expect(mail.from.text).to.equal(message.from);
expect(mail.to.text).to.equal(message.to);
expect(mail.messageId).to.equal('<' + message['message-id'] + '>');
}, done);
});
@ -89,9 +68,8 @@ describe("messages", function()
to: "gannon@gmail.com",
text: null,
"message-id": "this is a special id"
}, function(mail)
{
expect(mail.text).to.equal("\n\n");
}, function(mail) {
expect(mail.text).to.equal("\n\n\n");
}, done);
});
@ -102,9 +80,8 @@ describe("messages", function()
to: "gannon@gmail.com",
text: "",
"message-id": "this is a special id"
}, function(mail)
{
expect(mail.text).to.equal("\n\n");
}, function(mail) {
expect(mail.text).to.equal("\n\n\n");
}, done);
});
@ -120,38 +97,35 @@ describe("messages", function()
send(email.message.create(message), function(mail)
{
expect(mail.text).to.equal(message.text + "\n\n");
expect(mail.headers.subject).to.equal(message.subject);
expect(mail.headers.from).to.equal(message.from);
expect(mail.headers.to).to.equal(message.to);
expect(mail.text).to.equal(message.text + "\n\n\n");
expect(mail.subject).to.equal(message.subject);
expect(mail.from.text).to.equal(message.from);
expect(mail.to.text).to.equal(message.to);
}, done);
});
it("very large text message", function(done)
{
it("very large text message", function(done) {
this.timeout(11000);
// thanks to jart+loberstech for this one!
var message =
{
var message = {
subject: "this is a test TEXT message from emailjs",
from: "ninjas@gmail.com",
to: "pirates@gmail.com",
text: fs.readFileSync(path.join(__dirname, "attachments/smtp.txt"), "utf-8")
};
send(email.message.create(message), function(mail)
{
expect(mail.text).to.equal(message.text + "\n\n");
expect(mail.headers.subject).to.equal(message.subject);
expect(mail.headers.from).to.equal(message.from);
expect(mail.headers.to).to.equal(message.to);
send(email.message.create(message), function(mail) {
expect(mail.text).to.equal(message.text + "\n\n\n");
expect(mail.subject).to.equal(message.subject);
expect(mail.from.text).to.equal(message.from);
expect(mail.to.text).to.equal(message.to);
}, done);
});
it("very large text data", function(done)
{
it("very large text data", function(done) {
this.timeout(10000);
var text = "<html><body><pre>" + fs.readFileSync(path.join(__dirname, "attachments/smtp.txt"), "utf-8") + "</pre></body></html>";
var message =
{
var message = {
subject: "this is a test TEXT+DATA message from emailjs",
from: "lobsters@gmail.com",
to: "lizards@gmail.com",
@ -159,74 +133,63 @@ describe("messages", function()
attachment: {data:text, alternative:true}
};
send(message, function(mail)
{
send(message, function(mail) {
expect(mail.html).to.equal(text);
expect(mail.text).to.equal(message.text + "\n");
expect(mail.headers.subject).to.equal(message.subject);
expect(mail.headers.from).to.equal(message.from);
expect(mail.headers.to).to.equal(message.to);
expect(mail.subject).to.equal(message.subject);
expect(mail.from.text).to.equal(message.from);
expect(mail.to.text).to.equal(message.to);
}, done);
});
it("html data", function(done)
{
var html = fs.readFileSync(path.join(__dirname, "attachments/smtp.html"), "utf-8");
var message =
{
var message = {
subject: "this is a test TEXT+HTML+DATA message from emailjs",
from: "obama@gmail.com",
to: "mitt@gmail.com",
attachment: {data:html, alternative:true}
};
send(message, function(mail)
{
send(message, function(mail) {
expect(mail.html).to.equal(html);
expect(mail.text).to.not.equal(message.text + "\n");
expect(mail.headers.subject).to.equal(message.subject);
expect(mail.headers.from).to.equal(message.from);
expect(mail.headers.to).to.equal(message.to);
expect(mail.text).to.equal("\n");
expect(mail.subject).to.equal(message.subject);
expect(mail.from.text).to.equal(message.from);
expect(mail.to.text).to.equal(message.to);
}, done);
});
it("html file", function(done)
{
it("html file", function(done) {
var html = fs.readFileSync(path.join(__dirname, "attachments/smtp.html"), "utf-8");
var headers =
{
var headers = {
subject: "this is a test TEXT+HTML+FILE message from emailjs",
from: "thomas@gmail.com",
to: "nikolas@gmail.com",
attachment: {path:path.join(__dirname, "attachments/smtp.html"), alternative:true}
};
send(headers, function(mail)
{
send(headers, function(mail) {
expect(mail.html).to.equal(html);
expect(mail.text).to.not.equal(headers.text + "\n");
expect(mail.headers.subject).to.equal(headers.subject);
expect(mail.headers.from).to.equal(headers.from);
expect(mail.headers.to).to.equal(headers.to);
expect(mail.text).to.equal("\n");
expect(mail.subject).to.equal(headers.subject);
expect(mail.from.text).to.equal(headers.from);
expect(mail.to.text).to.equal(headers.to);
}, done);
});
it("html with image embed", function(done)
{
it("html with image embed", function(done) {
var html = fs.readFileSync(path.join(__dirname, "attachments/smtp2.html"), "utf-8");
var image = fs.readFileSync(path.join(__dirname, "attachments/smtp.gif"));
var headers =
{
var headers = {
subject: "this is a test TEXT+HTML+IMAGE message from emailjs",
from: "ninja@gmail.com",
to: "pirate@gmail.com",
attachment:
{
attachment: {
path: path.join(__dirname, "attachments/smtp2.html"),
alternative: true,
related:
[
{
related: [{
path: path.join(__dirname, "attachments/smtp.gif"),
type: "image/gif",
name: "smtp-diagram.gif",
@ -236,21 +199,19 @@ describe("messages", function()
}
};
send(headers, function(mail)
{
send(headers, function(mail) {
expect(mail.attachments[0].content.toString("base64")).to.equal(image.toString("base64"));
expect(mail.html).to.equal(html);
expect(mail.text).to.not.equal(headers.text + "\n");
expect(mail.headers.subject).to.equal(headers.subject);
expect(mail.headers.from).to.equal(headers.from);
expect(mail.headers.to).to.equal(headers.to);
expect(mail.text).to.equal("\n");
expect(mail.subject).to.equal(headers.subject);
expect(mail.from.text).to.equal(headers.from);
expect(mail.to.text).to.equal(headers.to);
}, done);
});
it("html data and attachment", function(done) {
var html = fs.readFileSync(path.join(__dirname, "attachments/smtp.html"), "utf-8");
var headers =
{
var headers = {
subject: "this is a test TEXT+HTML+FILE message from emailjs",
from: "thomas@gmail.com",
to: "nikolas@gmail.com",
@ -262,18 +223,17 @@ describe("messages", function()
send(headers, function(mail) {
expect(mail.html).to.equal(html);
expect(mail.text).to.not.equal(headers.text + "\n");
expect(mail.headers.subject).to.equal(headers.subject);
expect(mail.headers.from).to.equal(headers.from);
expect(mail.headers.to).to.equal(headers.to);
expect(mail.text).to.equal("\n");
expect(mail.subject).to.equal(headers.subject);
expect(mail.from.text).to.equal(headers.from);
expect(mail.to.text).to.equal(headers.to);
}, done);
});
it("attachment", function(done)
{
var pdf = fs.readFileSync(path.join(__dirname, "attachments/smtp.pdf"));
var headers =
{
var headers = {
subject: "this is a test TEXT+ATTACHMENT message from emailjs",
from: "washing@gmail.com",
to: "lincoln@gmail.com",
@ -281,21 +241,18 @@ describe("messages", function()
attachment:{path:path.join(__dirname, "attachments/smtp.pdf"), type:"application/pdf", name:"smtp-info.pdf"}
};
send(headers, function(mail)
{
send(headers, function(mail) {
expect(mail.attachments[0].content.toString("base64")).to.equal(pdf.toString("base64"));
expect(mail.text).to.equal(headers.text + "\n");
expect(mail.headers.subject).to.equal(headers.subject);
expect(mail.headers.from).to.equal(headers.from);
expect(mail.headers.to).to.equal(headers.to);
expect(mail.subject).to.equal(headers.subject);
expect(mail.from.text).to.equal(headers.from);
expect(mail.to.text).to.equal(headers.to);
}, done);
});
it("attachment sent with unicode filename", function(done)
{
it("attachment sent with unicode filename", function(done) {
var pdf = fs.readFileSync(path.join(__dirname, "attachments/smtp.pdf"));
var headers =
{
var headers = {
subject: "this is a test TEXT+ATTACHMENT message from emailjs",
from: "washing@gmail.com",
to: "lincoln@gmail.com",
@ -303,14 +260,13 @@ describe("messages", function()
attachment:{path:path.join(__dirname, "attachments/smtp.pdf"), type:"application/pdf", name:"smtp-✓-info.pdf"}
};
send(headers, function(mail)
{
send(headers, function(mail) {
expect(mail.attachments[0].content.toString("base64")).to.equal(pdf.toString("base64"));
expect(mail.attachments[0].fileName).to.equal("smtp-✓-info.pdf");
expect(mail.attachments[0].filename).to.equal("smtp-✓-info.pdf");
expect(mail.text).to.equal(headers.text + "\n");
expect(mail.headers.subject).to.equal(headers.subject);
expect(mail.headers.from).to.equal(headers.from);
expect(mail.headers.to).to.equal(headers.to);
expect(mail.subject).to.equal(headers.subject);
expect(mail.from.text).to.equal(headers.from);
expect(mail.to.text).to.equal(headers.to);
}, done);
});
@ -331,25 +287,22 @@ describe("messages", function()
]
};
send(headers, function(mail)
{
send(headers, function(mail) {
expect(mail.attachments[0].content.toString("base64")).to.equal(pdf.toString("base64"));
expect(mail.attachments[1].content.toString("base64")).to.equal(tar.toString("base64"));
expect(mail.text).to.equal(headers.text + "\n");
expect(mail.headers.subject).to.equal(headers.subject);
expect(mail.headers.from).to.equal(headers.from);
expect(mail.headers.to).to.equal(headers.to);
expect(mail.subject).to.equal(headers.subject);
expect(mail.from.text).to.equal(headers.from);
expect(mail.to.text).to.equal(headers.to);
}, done);
});
it("streams", function(done)
{
it("streams", function(done) {
var pdf = fs.readFileSync(path.join(__dirname, "attachments/smtp.pdf"));
var tar = fs.readFileSync(path.join(__dirname, "attachments/postfix-2.8.7.tar.gz"));
var stream = fs.createReadStream(path.join(__dirname, "attachments/smtp.pdf"));
var stream2 = fs.createReadStream(path.join(__dirname, "attachments/postfix-2.8.7.tar.gz"));
var headers =
{
var headers = {
subject: "this is a test TEXT+2+STREAMED+ATTACHMENTS message from emailjs",
from: "stanford@gmail.com",
to: "mit@gmail.com",
@ -364,14 +317,13 @@ describe("messages", function()
stream.pause();
stream2.pause();
send(headers, function(mail)
{
send(headers, function(mail) {
expect(mail.attachments[0].content.toString("base64")).to.equal(pdf.toString("base64"));
expect(mail.attachments[1].content.toString("base64")).to.equal(tar.toString("base64"));
expect(mail.text).to.equal(headers.text + "\n");
expect(mail.headers.subject).to.equal(headers.subject);
expect(mail.headers.from).to.equal(headers.from);
expect(mail.headers.to).to.equal(headers.to);
expect(mail.subject).to.equal(headers.subject);
expect(mail.from.text).to.equal(headers.from);
expect(mail.to.text).to.equal(headers.to);
}, done);
});
});