runClientMockup(PORT_NUMBER, "localhost", ["EHLO foo"], function(resp){ test.equal("5",resp.toString("utf-8").trim().substr(0,1)); runClientMockup(PORT_NUMBER, "localhost", ["HELO foo"], function(resp){ test.equal("2",resp.toString("utf-8").trim().substr(0,1)); test.done(); }); });
"EHLO fails after STARTTLS": function(test){ var cmds = ["EHLO FOO", "STARTTLS", "EHLO"]; runClientMockup(PORT_NUMBER, "localhost", cmds, function(resp){ test.equal("5",resp.toString("utf-8").trim().substr(0,1)); test.done(); }); },
"MAXSIZE": function(test){ var cmds = ["EHLO FOO"]; runClientMockup(PORT_NUMBER, "localhost", cmds, function(resp){ test.ok(resp.toString("utf-8").trim().match(/^250[\- ]SIZE 1234$/mi)); test.done(); }); }
"EHLO name": function(test){ var cmds = ["EHLO FOO"]; runClientMockup(PORT_NUMBER, "localhost", cmds, function(resp){ test.equal("MYRDO",resp.toString("utf-8").trim().substr(4).split(" ").shift()); test.done(); }); },
"AUTH fails if not required": function(test){ var cmds = ["EHLO FOO", "AUTH LOGIN"]; runClientMockup(PORT_NUMBER, "localhost", cmds, function(resp){ test.equal("5",resp.toString("utf-8").trim().substr(0,1)); test.done(); }); },
"Pass without AUTH": function(test){ var cmds = ["EHLO FOO", "MAIL FROM:<*****@*****.**>"]; runClientMockup(PORT_NUMBER, "localhost", cmds, function(resp){ test.equal("2",resp.toString("utf-8").trim().substr(0,1)); test.done(); }); },
"HELO": function(test){ var cmds = ["HELO FOO"]; runClientMockup(PORT_NUMBER, "localhost", cmds, function(resp){ test.equal("250",resp.toString("utf-8").trim().substr(0,3)); test.done(); }); },
"AUTH PLAIN Login success": function(test){ var cmds = ["EHLO FOO", "STARTTLS", "EHLO FOO", "AUTH PLAIN"+ new Buffer("andris\u0000andris\u0000test").toString("base64")]; runClientMockup(PORT_NUMBER, "localhost", cmds, function(resp){ test.equal("5",resp.toString("utf-8").trim().substr(0,1)); test.done(); }); }
"AUTH LOGIN Invalid password": function(test){ var cmds = ["EHLO FOO", "STARTTLS", "EHLO FOO", "AUTH LOGIN", new Buffer("andris").toString("base64"), new Buffer("alid").toString("base64")]; runClientMockup(PORT_NUMBER, "localhost", cmds, function(resp){ test.equal("5",resp.toString("utf-8").trim().substr(0,1)); test.done(); }); },
smtp.listen(PORT_NUMBER, function(err){ if(err){ throw err; } runClientMockup(PORT_NUMBER, "localhost", ["EHLO foo", "MAIL FROM:<*****@*****.**>", "RCPT TO:<*****@*****.**>", "DATA"], function(resp){ test.equal("3",resp.toString("utf-8").trim().substr(0,1)); }); });
"EHLO after STARTTLS": function(test){ var cmds = ["EHLO FOO", "STARTTLS", "HELO FOO"]; runClientMockup(PORT_NUMBER, "localhost", cmds, function(resp){ resp = resp.toString("utf-8").trim(); var lines = resp.split("\r\n"); for(var i=0; i<lines.length-1; i++){ test.equal("250-", lines[i].substr(0,4)); } test.equal("250 ", lines[i].substr(0,4)); test.done(); }); },