diff options
Diffstat (limited to 'tools/node_modules/nodemailer/node_modules/mailcomposer/test')
5 files changed, 1750 insertions, 0 deletions
diff --git a/tools/node_modules/nodemailer/node_modules/mailcomposer/test/dkim.js b/tools/node_modules/nodemailer/node_modules/mailcomposer/test/dkim.js new file mode 100644 index 0000000..6d18251 --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/mailcomposer/test/dkim.js @@ -0,0 +1,47 @@ +var testCase = require('nodeunit').testCase, + dkim = require("../lib/dkim"), + fs = require("fs"); + + +exports["Canonicalizer tests"] = { + "Relaxed body": function(test){ + // dkim.org samples + var body = " C \r\nD \t E\r\n\r\n\r\n"; + test.equal(" C\r\nD E\r\n", dkim.DKIMCanonicalizer.relaxedBody(body)); + test.done(); + }, + "Relaxed body short": function(test){ + // dkim.org samples + var body = " C \r\nD \t E"; + test.equal(" C\r\nD E\r\n", dkim.DKIMCanonicalizer.relaxedBody(body)); + test.done(); + }, + "Relaxed headers": function(test){ + var headers = "A: X\r\nB: Y\t\r\n\tZ \r\n"; + test.equal("a:X\r\nb:Y Z\r\n", dkim.DKIMCanonicalizer.relaxedHeaders(headers, "a:b").headers); + test.done(); + } +} + +exports["General tests"] = { + "Unicode domain": function(test){ + var mail = "From: andris@node.ee\r\nTo:andris@kreata.ee\r\n\r\nHello world!"; + var dkimField = dkim.DKIMSign(mail,{ + domainName: "müriaad-polüteism.info", + keySelector: "dkim", + privateKey: fs.readFileSync(__dirname+"/test_private.pem") + }); + test.equal(dkimField.replace(/\r?\n\s*/g, "").replace(/\s+/g, " "), "DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;d=xn--mriaad-polteism-zvbj.info; q=dns/txt; s=dkim;bh=z6TUz85EdYrACGMHYgZhJGvVy5oQI0dooVMKa2ZT7c4=; h=from:to;b=oBJ1MkwEkftfXa2AK4Expjp2xgIcAR43SVrftSEHVQ6F1SlGjP3EKP+cn/hLkhUel3rY0icthk/myDu6uhTBmM6DMtzIBW/7uQd6q9hfgaiYnw5Iew2tZc4TzBEYSdKi") + test.done(); + }, + "Normal domain": function(test){ + var mail = "From: andris@node.ee\r\nTo:andris@kreata.ee\r\n\r\nHello world!"; + var dkimField = dkim.DKIMSign(mail,{ + domainName: "node.ee", + keySelector: "dkim", + privateKey: fs.readFileSync(__dirname+"/test_private.pem") + }); + test.equal(dkimField.replace(/\r?\n\s*/g, "").replace(/\s+/g, " "), "DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=node.ee; q=dns/txt;s=dkim; bh=z6TUz85EdYrACGMHYgZhJGvVy5oQI0dooVMKa2ZT7c4=; h=from:to;b=pVd+Dp+EjmYBcc1AWlBAP4ESpuAJ2WMS4gbxWLoeUZ1vZRodVN7K9UXvcCsLuqjJktCZMN2+8dyEUaYW2VIcxg4sVBCS1wqB/tqYZ/gxXLnG2/nZf4fyD2vxltJP4pDL"); + test.done(); + } +}
\ No newline at end of file diff --git a/tools/node_modules/nodemailer/node_modules/mailcomposer/test/mailcomposer.js b/tools/node_modules/nodemailer/node_modules/mailcomposer/test/mailcomposer.js new file mode 100644 index 0000000..0a0d9fd --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/mailcomposer/test/mailcomposer.js @@ -0,0 +1,1085 @@ +var testCase = require('nodeunit').testCase, + MailComposer = require("../lib/mailcomposer").MailComposer, + toPunycode = require("../lib/punycode"), + MailParser = require("mailparser").MailParser, + fs = require("fs"), + http = require("http"); + + +var HTTP_PORT = 9437; + +exports["General tests"] = { + + "Create a new MailComposer object": function(test){ + var mailcomposer = new MailComposer(); + test.equal(typeof mailcomposer.on, "function"); + test.equal(typeof mailcomposer.emit, "function"); + test.done(); + }, + + "Normalize key names": function(test){ + var normalizer = MailComposer.prototype._normalizeKey; + + test.equal(normalizer("abc"), "Abc"); + test.equal(normalizer("aBC"), "Abc"); + test.equal(normalizer("ABC"), "Abc"); + test.equal(normalizer("a-b-c"), "A-B-C"); + test.equal(normalizer("ab-bc"), "Ab-Bc"); + test.equal(normalizer("ab-bc-cd"), "Ab-Bc-Cd"); + test.equal(normalizer("AB-BC-CD"), "Ab-Bc-Cd"); + test.equal(normalizer("mime-version"), "MIME-Version"); // special case + + test.done(); + }, + + "Add header": function(test){ + var mc = new MailComposer(); + test.equal(typeof mc._headers["Test-Key"], "undefined"); + mc.addHeader("test-key", "first"); + test.equal(mc._headers["Test-Key"], "first"); + mc.addHeader("test-key", "second"); + test.deepEqual(mc._headers["Test-Key"], ["first","second"]); + mc.addHeader("test-key", "third"); + test.deepEqual(mc._headers["Test-Key"], ["first","second","third"]); + test.done(); + }, + + "Get header": function(test){ + var mc = new MailComposer(); + test.equal(mc._getHeader("MIME-Version"), "1.0"); + test.equal(mc._getHeader("test-key"), ""); + mc.addHeader("test-key", "first"); + test.equal(mc._getHeader("test-key"), "first"); + mc.addHeader("test-key", "second"); + test.deepEqual(mc._getHeader("test-key"), ["first", "second"]); + test.done(); + }, + + "Uppercase header keys": function(test){ + var mc = new MailComposer(); + + mc.addHeader("X-TEST", "first"); + test.equal(mc._headers["X-TEST"], "first"); + + mc.addHeader("TEST", "second"); + test.equal(mc._headers["Test"], "second"); + + test.done(); + }, + + "Set object header": function(test){ + var mc = new MailComposer(); + + var testObj = { + stringValue: "String with unicode symbols: ÕÄÖÜŽŠ", + arrayValue: ["hello ÕÄÖÜ", 12345], + objectValue: { + customerId: "12345" + } + }; + + mc.addHeader("x-mytest-string", "first"); + mc.addHeader("x-mytest-json", testObj); + + mc.streamMessage(); + + //mc.on("data", function(c){console.log(c.toString("utf-8"))}) + + var mp = new MailParser(); + + mc.pipe(mp); + + mp.on("end", function(mail){ + test.equal(mail.headers['x-mytest-string'], "first"); + test.deepEqual(JSON.parse(mail.headers['x-mytest-json']), testObj); + //console.log(mail) + test.done(); + }); + }, + + "Add message option": function(test){ + var mc = new MailComposer(); + test.equal(typeof mc._message.subject, "undefined"); + + mc.setMessageOption({ + subject: "Test1", + body: "Test2", + nonexistent: "Test3" + }); + + test.equal(mc._message.subject, "Test1"); + test.equal(mc._message.body, "Test2"); + test.equal(typeof mc._message.nonexistent, "undefined"); + + mc.setMessageOption({ + subject: "Test4" + }); + + test.equal(mc._message.subject, "Test4"); + test.equal(mc._message.body, "Test2"); + + test.done(); + }, + + "Detect mime type": function(test){ + var mc = new MailComposer(); + + test.equal(mc._getMimeType("test.txt"), "text/plain"); + test.equal(mc._getMimeType("test.unknown"), "application/octet-stream"); + + test.done(); + }, + + "keepBcc off": function(test){ + var mc = new MailComposer(); + mc.setMessageOption({bcc: "andris@node.ee"}); + mc._buildMessageHeaders(); + test.ok(!mc._getHeader("Bcc")); + test.done(); + }, + + "keepBcc on": function(test){ + var mc = new MailComposer({keepBcc: true}); + mc.setMessageOption({bcc: "andris@node.ee"}); + mc._buildMessageHeaders(); + test.equal(mc._getHeader("Bcc"), "andris@node.ee"); + test.done(); + } +}; + + +exports["Text encodings"] = { + "Punycode": function(test){ + test.equal(toPunycode("andris@age.ee"), "andris@age.ee"); + test.equal(toPunycode("andris@äge.ee"), "andris@xn--ge-uia.ee"); + test.done(); + }, + + "Mime words": function(test){ + var mc = new MailComposer(); + test.equal(mc._encodeMimeWord("Tere"), "Tere"); + test.equal(mc._encodeMimeWord("Tere","Q"), "Tere"); + test.equal(mc._encodeMimeWord("Tere","B"), "Tere"); + + // simple + test.equal(mc._encodeMimeWord("äss"), "=?UTF-8?Q?=C3=A4ss?="); + test.equal(mc._encodeMimeWord("äss","B"), "=?UTF-8?B?"+(new Buffer("äss","utf-8").toString("base64"))+"?="); + + //multiliple + test.equal(mc._encodeMimeWord("äss tekst on see siin või kuidas?","Q", 20), "=?UTF-8?Q?=C3=A4ss?= =?UTF-8?Q?_tekst_o?= =?UTF-8?Q?n_see_si?= =?UTF-8?Q?in_v?= =?UTF-8?Q?=C3=B5i_?= =?UTF-8?Q?kuidas?= =?UTF-8?Q?=3F?="); + + test.done(); + }, + + "Addresses": function(test){ + var mc = new MailComposer(); + mc.setMessageOption({ + sender: '"Jaanuar Veebruar, Märts" <märts@märts.eu>' + }); + + test.equal(mc._message.from, "\"=?UTF-8?Q?Jaanuar_Veebruar,_M=C3=A4rts?=\" <=?UTF-8?Q?m=C3=A4rts?=@xn--mrts-loa.eu>"); + + mc.setMessageOption({ + sender: 'aavik <aavik@node.ee>' + }); + + test.equal(mc._message.from, '"aavik" <aavik@node.ee>'); + + mc.setMessageOption({ + sender: '<aavik@node.ee>' + }); + + test.equal(mc._message.from, 'aavik@node.ee'); + + mc.setMessageOption({ + sender: '<aavik@märts.eu>' + }); + + test.equal(mc._message.from, 'aavik@xn--mrts-loa.eu'); + + // multiple + + mc.setMessageOption({ + sender: '<aavik@märts.eu>, juulius@node.ee, "Node, Master" <node@node.ee>' + }); + + test.equal(mc._message.from, 'aavik@xn--mrts-loa.eu, juulius@node.ee, "Node, Master" <node@node.ee>'); + + test.done(); + }, + + "Invalid subject": function(test){ + var mc = new MailComposer(); + mc.setMessageOption({ + subject: "tere\ntere!" + }); + + test.equal(mc._message.subject, "tere tere!"); + test.done(); + }, + + "Long header line": function(test){ + var mc = new MailComposer(); + + mc._headers = { + From: "a very log line, \"=?UTF-8?Q?Jaanuar_Veebruar,_M=C3=A4rts?=\" <=?UTF-8?Q?m=C3=A4rts?=@xn--mrts-loa.eu>" + }; + + mc.on("data", function(chunk){ + test.ok(chunk.toString().trim().match(/From\:\s[^\r\n]+\r\n\s+[^\r\n]+/)); + test.done(); + }); + mc._composeHeader(); + + } + +}; + +exports["Mail related"] = { + "Envelope": function(test){ + var mc = new MailComposer(); + mc.setMessageOption({ + sender: '"Jaanuar Veebruar, Märts" <märts@märts.eu>', + to: '<aavik@märts.eu>, juulius@node.ee', + cc: '"Node, Master" <node@node.ee>' + }); + + test.deepEqual(mc._envelope, {from:[ 'märts@xn--mrts-loa.eu' ],to:[ 'aavik@xn--mrts-loa.eu', 'juulius@node.ee'], cc:['node@node.ee' ]}); + test.done(); + }, + + "User defined envelope": function(test){ + var mc = new MailComposer(); + mc.setMessageOption({ + sender: '"Jaanuar Veebruar, Märts" <märts@märts.eu>', + envelope: { + from: "Andris <andris@tr.ee>", + to: ["Andris <andris@tr.ee>, Node <andris@node.ee>", "aavik@märts.eu", "juulius@gmail.com"], + cc: "trips@node.ee" + }, + to: '<aavik@märts.eu>, juulius@node.ee', + cc: '"Node, Master" <node@node.ee>' + }); + + test.deepEqual(mc._envelope, {userDefined: true, from:[ 'andris@tr.ee' ],to:[ 'andris@tr.ee', 'andris@node.ee', 'aavik@xn--mrts-loa.eu', 'juulius@gmail.com'], "cc":['trips@node.ee']}); + test.done(); + }, + + "Add attachment": function(test){ + var mc = new MailComposer(); + mc.addAttachment(); + test.equal(mc._attachments.length, 0); + + mc.addAttachment({filePath:"/tmp/var.txt"}); + test.equal(mc._attachments[0].contentType, "text/plain"); + test.equal(mc._attachments[0].fileName, "var.txt"); + + mc.addAttachment({contents:"/tmp/var.txt"}); + test.equal(mc._attachments[1].contentType, "application/octet-stream"); + test.equal(mc._attachments[1].fileName, undefined); + + mc.addAttachment({filePath:"/tmp/var.txt", fileName:"test.txt"}); + test.equal(mc._attachments[2].fileName, "test.txt"); + + test.done(); + }, + + "Default attachment disposition": function(test){ + var mc = new MailComposer(); + mc.addAttachment(); + test.equal(mc._attachments.length, 0); + + mc.addAttachment({filePath:"/tmp/var.txt"}); + test.equal(mc._attachments[0].contentDisposition, undefined); + + test.done(); + }, + + "Set attachment disposition": function(test){ + var mc = new MailComposer(); + mc.addAttachment(); + test.equal(mc._attachments.length, 0); + + mc.addAttachment({filePath:"/tmp/var.txt", contentDisposition: "inline"}); + test.equal(mc._attachments[0].contentDisposition, "inline"); + + test.done(); + }, + + "Generate envelope": function(test){ + var mc = new MailComposer(); + mc.setMessageOption({ + sender: '"Jaanuar Veebruar, Märts" <märts@märts.eu>, karu@ahven.ee', + to: '<aavik@märts.eu>, juulius@node.ee', + cc: '"Node, Master" <node@node.ee>' + }); + + test.deepEqual(mc.getEnvelope(), {from: 'märts@xn--mrts-loa.eu',to:[ 'aavik@xn--mrts-loa.eu', 'juulius@node.ee', 'node@node.ee' ], stamp: 'Postage paid, Par Avion'}); + test.done(); + }, + + "Generate user defined envelope": function(test){ + var mc = new MailComposer(); + mc.setMessageOption({ + sender: '"Jaanuar Veebruar, Märts" <märts@märts.eu>, karu@ahven.ee', + to: '<aavik@märts.eu>, juulius@node.ee', + envelope: { + from: "Andris <andris@tr.ee>", + to: ["Andris <andris@tr.ee>, Node <andris@node.ee>", "aavik@märts.eu", "juulius@gmail.com"], + cc: "trips@node.ee" + }, + cc: '"Node, Master" <node@node.ee>' + }); + + test.deepEqual(mc.getEnvelope(), {from: 'andris@tr.ee', to:[ 'andris@tr.ee', 'andris@node.ee', 'aavik@xn--mrts-loa.eu', 'juulius@gmail.com', 'trips@node.ee'], stamp: 'Postage paid, Par Avion'}); + test.done(); + }, + + "Generate Headers": function(test){ + var mc = new MailComposer(); + mc.setMessageOption({ + sender: '"Jaanuar Veebruar, Märts" <märts@märts.eu>, karu@ahven.ee', + to: '<aavik@märts.eu>, juulius@node.ee', + cc: '"Node, Master" <node@node.ee>', + replyTo: 'julla@pulla.ee', + subject: "Tere õkva!" + }); + + mc.on("data", function(chunk){ + chunk = (chunk || "").toString("utf-8"); + test.ok(chunk.match(/^(?:(?:[\s]+|[a-zA-Z0-0\-]+\:)[^\r\n]+\r\n)+\r\n$/)); + test.done(); + }); + + mc._composeHeader(); + } +}; + +exports["Mime tree"] = { + "No contents": function(test){ + test.expect(4); + + var mc = new MailComposer(); + mc._composeMessage(); + + test.ok(!mc._message.tree.boundary); + test.equal(mc._getHeader("Content-Type").split(";").shift().trim(), "text/plain"); + test.equal(mc._message.tree.childNodes.length, 0); + + for(var i=0, len = mc._message.flatTree.length; i<len; i++){ + if(typeof mc._message.flatTree[i] == "object"){ + test.equal(mc._message.flatTree[i].contents, "\r\n"); + } + } + + test.done(); + }, + "Text contents": function(test){ + test.expect(4); + + var mc = new MailComposer(); + mc.setMessageOption({ + body: "test" + }); + mc._composeMessage(); + + test.ok(!mc._message.tree.boundary); + test.equal(mc._getHeader("Content-Type").split(";").shift().trim(), "text/plain"); + test.equal(mc._message.tree.childNodes.length, 0); + + for(var i=0, len = mc._message.flatTree.length; i<len; i++){ + if(typeof mc._message.flatTree[i] == "object"){ + test.equal(mc._message.flatTree[i].contents, "test"); + } + } + + test.done(); + }, + "HTML contents": function(test){ + test.expect(4); + + var mc = new MailComposer(); + mc.setMessageOption({ + html: "<b>test</b>" + }); + mc._composeMessage(); + + test.ok(!mc._message.tree.boundary); + test.equal(mc._getHeader("Content-Type").split(";").shift().trim(), "text/html"); + test.equal(mc._message.tree.childNodes.length, 0); + + for(var i=0, len = mc._message.flatTree.length; i<len; i++){ + if(typeof mc._message.flatTree[i] == "object"){ + test.equal(mc._message.flatTree[i].contents, "<b>test</b>"); + } + } + + test.done(); + }, + "HTML and text contents": function(test){ + test.expect(5); + + var mc = new MailComposer(); + mc.setMessageOption({ + body: "test", + html: "test" + }); + mc._composeMessage(); + + test.equal(mc._message.tree.childNodes.length, 2); + test.equal(mc._getHeader("Content-Type").split(";").shift().trim(), "multipart/alternative"); + test.ok(mc._message.tree.boundary); + + for(var i=0, len = mc._message.flatTree.length; i<len; i++){ + if(typeof mc._message.flatTree[i] == "object"){ + test.equal(mc._message.flatTree[i].contents, "test"); + } + } + + test.done(); + }, + "Attachment": function(test){ + test.expect(5); + + var mc = new MailComposer(); + mc.setMessageOption(); + mc.addAttachment({contents:"\r\n"}); + mc._composeMessage(); + + test.equal(mc._message.tree.childNodes.length, 2); + test.equal(mc._getHeader("Content-Type").split(";").shift().trim(), "multipart/mixed"); + test.ok(mc._message.tree.boundary); + + for(var i=0, len = mc._message.flatTree.length; i<len; i++){ + if(typeof mc._message.flatTree[i] == "object"){ + test.equal(mc._message.flatTree[i].contents, "\r\n"); + } + } + + test.done(); + }, + "Several attachments": function(test){ + test.expect(6); + + var mc = new MailComposer(); + mc.setMessageOption(); + mc.addAttachment({contents:"\r\n"}); + mc.addAttachment({contents:"\r\n"}); + + mc._composeMessage(); + + test.equal(mc._message.tree.childNodes.length, 3); + test.equal(mc._getHeader("Content-Type").split(";").shift().trim(), "multipart/mixed"); + test.ok(mc._message.tree.boundary); + + for(var i=0, len = mc._message.flatTree.length; i<len; i++){ + if(typeof mc._message.flatTree[i] == "object"){ + test.equal(mc._message.flatTree[i].contents, "\r\n"); + } + } + + test.done(); + }, + "Attachment and text": function(test){ + test.expect(7); + + var mc = new MailComposer(); + mc.setMessageOption(); + mc.addAttachment({contents:"test"}); + mc.setMessageOption({ + body: "test" + }); + mc._composeMessage(); + + test.equal(mc._message.tree.childNodes.length, 2); + test.equal(mc._getHeader("Content-Type").split(";").shift().trim(), "multipart/mixed"); + test.ok(mc._message.tree.boundary); + + mc._message.tree.childNodes[0].headers.forEach(function(header){ + if(header[0]=="Content-Type"){ + test.equal(header[1].split(";").shift().trim(), "text/plain"); + } + }); + + mc._message.tree.childNodes[1].headers.forEach(function(header){ + if(header[0]=="Content-Type"){ + test.equal(header[1].split(";").shift().trim(), "application/octet-stream"); + } + }); + + for(var i=0, len = mc._message.flatTree.length; i<len; i++){ + if(typeof mc._message.flatTree[i] == "object"){ + test.equal(mc._message.flatTree[i].contents, "test"); + } + } + + test.done(); + }, + "Attachment and html": function(test){ + test.expect(7); + + var mc = new MailComposer(); + mc.setMessageOption(); + mc.addAttachment({contents:"test"}); + mc.setMessageOption({ + html: "test" + }); + mc._composeMessage(); + + test.equal(mc._message.tree.childNodes.length, 2); + test.equal(mc._getHeader("Content-Type").split(";").shift().trim(), "multipart/mixed"); + test.ok(mc._message.tree.boundary); + + mc._message.tree.childNodes[0].headers.forEach(function(header){ + if(header[0]=="Content-Type"){ + test.equal(header[1].split(";").shift().trim(), "text/html"); + } + }); + + mc._message.tree.childNodes[1].headers.forEach(function(header){ + if(header[0]=="Content-Type"){ + test.equal(header[1].split(";").shift().trim(), "application/octet-stream"); + } + }); + + for(var i=0, len = mc._message.flatTree.length; i<len; i++){ + if(typeof mc._message.flatTree[i] == "object"){ + test.equal(mc._message.flatTree[i].contents, "test"); + } + } + + test.done(); + }, + "Attachment, html and text": function(test){ + test.expect(11); + + var mc = new MailComposer(); + mc.addAttachment({contents:"test"}); + mc.setMessageOption({ + body: "test", + html: "test" + }); + mc._composeMessage(); + + test.equal(mc._message.tree.childNodes.length, 2); + test.equal(mc._getHeader("Content-Type").split(";").shift().trim(), "multipart/mixed"); + test.ok(mc._message.tree.boundary); + + mc._message.tree.childNodes[0].headers.forEach(function(header){ + if(header[0]=="Content-Type"){ + test.equal(header[1].split(";").shift().trim(), "multipart/alternative"); + } + }); + + test.ok(mc._message.tree.childNodes[0].boundary); + + mc._message.tree.childNodes[0].childNodes[0].headers.forEach(function(header){ + if(header[0]=="Content-Type"){ + test.equal(header[1].split(";").shift().trim(), "text/plain"); + } + }); + + mc._message.tree.childNodes[0].childNodes[1].headers.forEach(function(header){ + if(header[0]=="Content-Type"){ + test.equal(header[1].split(";").shift().trim(), "text/html"); + } + }); + + mc._message.tree.childNodes[1].headers.forEach(function(header){ + if(header[0]=="Content-Type"){ + test.equal(header[1].split(";").shift().trim(), "application/octet-stream"); + } + }); + + for(var i=0, len = mc._message.flatTree.length; i<len; i++){ + if(typeof mc._message.flatTree[i] == "object"){ + test.equal(mc._message.flatTree[i].contents, "test"); + } + } + + test.done(); + } + +}; + +exports["Stream parser"] = { + "Text": function(test){ + var mc = new MailComposer(), + file = fs.readFileSync(__dirname+"/textfile.txt").toString("utf-8"); + mc.setMessageOption({ + from: "andris@node.ee", + to:"andris@tr.ee, andris@kreata.ee", + subject: "õäöü", + body: file + }); + mc.streamMessage(); + + var mp = new MailParser(); + + mc.pipe(mp); + + mp.on("end", function(mail){ + test.equal(mail.from[0].address, "andris@node.ee"); + test.equal(mail.to[0].address, "andris@tr.ee"); + test.equal(mail.to[1].address, "andris@kreata.ee"); + test.equal(mail.subject, "õäöü"); + test.equal(mail.text.trim(), file.trim()); + test.done(); + }); + }, + "HTML": function(test){ + var mc = new MailComposer(); + mc.setMessageOption({ + html: "<b>test</b>" + }); + mc.streamMessage(); + + var mp = new MailParser(); + + mc.pipe(mp); + + mp.on("end", function(mail){ + test.equal(mail.html.trim(), "<b>test</b>"); + test.done(); + }); + }, + "HTML and text": function(test){ + var mc = new MailComposer(); + mc.setMessageOption({ + html: "<b>test</b>", + body: "test" + }); + mc.streamMessage(); + + var mp = new MailParser(); + + mc.pipe(mp); + + mp.on("end", function(mail){ + test.equal(mail.text.trim(), "test"); + test.equal(mail.html.trim(), "<b>test</b>"); + test.done(); + }); + }, + "Flowed text": function(test){ + var mc = new MailComposer({encoding:"8bit"}), + file = fs.readFileSync(__dirname+"/textfile.txt").toString("utf-8"); + + mc.setMessageOption({ + body: file + }); + mc.streamMessage(); + + var mp = new MailParser(); + + mc.pipe(mp); + + mp.on("end", function(mail){ + test.equal(mail.text.trim(), file.trim()); + test.done(); + }); + }, + "Attachment as string": function(test){ + var mc = new MailComposer(); + mc.setMessageOption(); + mc.addAttachment({ + fileName: "file.txt", + contents: fs.readFileSync(__dirname+"/textfile.txt").toString("utf-8") + }); + mc.streamMessage(); + + var mp = new MailParser(); + + mc.pipe(mp); + + mp.on("end", function(mail){ + test.equal(mail.attachments[0].checksum, "59fbcbcaf18cb9232f7da6663f374eb9"); + test.done(); + }); + }, + "Attachment as buffer": function(test){ + var mc = new MailComposer(); + mc.setMessageOption(); + mc.addAttachment({ + fileName: "file.txt", + contents: fs.readFileSync(__dirname+"/textfile.txt") + }); + mc.streamMessage(); + + var mp = new MailParser(); + + mc.pipe(mp); + + mp.on("end", function(mail){ + test.equal(mail.attachments[0].checksum, "59fbcbcaf18cb9232f7da6663f374eb9"); + test.done(); + }); + }, + "Attachment file stream": function(test){ + var mc = new MailComposer(); + mc.setMessageOption(); + mc.addAttachment({ + fileName: "file.txt", + filePath: __dirname+"/textfile.txt" + }); + mc.streamMessage(); + + var mp = new MailParser(); + + mc.pipe(mp); + + mp.on("end", function(mail){ + test.equal(mail.attachments[0].checksum, "59fbcbcaf18cb9232f7da6663f374eb9"); + test.done(); + }); + }, + "Attachment source stream": function(test){ + var mc = new MailComposer(); + + var fileStream = fs.createReadStream(__dirname+"/textfile.txt"); + + mc.setMessageOption(); + mc.addAttachment({ + fileName: "file.txt", + streamSource: fileStream + }); + mc.streamMessage(); + + var mp = new MailParser(); + + mc.pipe(mp); + + mp.on("end", function(mail){ + test.equal(mail.attachments[0].checksum, "59fbcbcaf18cb9232f7da6663f374eb9"); + test.done(); + }); + }, + "Attachment source url": function(test){ + + var server = http.createServer(function (req, res) { + if(req.url=="/textfile.txt"){ + fs.createReadStream(__dirname+"/textfile.txt") + fs.createReadStream(__dirname+"/textfile.txt").pipe(res); + }else{ + res.writeHead(404, {'Content-Type': 'text/plain'}); + res.end('Not found!\n'); + } + }); + server.listen(HTTP_PORT, '127.0.0.1'); + + var mc = new MailComposer(); + + mc.setMessageOption(); + mc.addAttachment({ + fileName: "file.txt", + filePath: "http://localhost:"+HTTP_PORT+"/textfile.txt" + }); + mc.streamMessage(); + + var mp = new MailParser(); + + mc.pipe(mp); + + mp.on("end", function(mail){ + test.equal(mail.attachments[0].checksum, "59fbcbcaf18cb9232f7da6663f374eb9"); + server.close(); + test.done(); + }); + }, + "Attachment source invalid url": function(test){ + + var server = http.createServer(function (req, res) { + res.writeHead(404, {'Content-Type': 'text/plain'}); + res.end('Not found!\n'); + }) + server.listen(HTTP_PORT, '127.0.0.1'); + + var mc = new MailComposer(); + + mc.setMessageOption(); + mc.addAttachment({ + fileName: "file.txt", + filePath: "http://localhost:"+HTTP_PORT+"/textfile.txt" + }); + mc.streamMessage(); + + var mp = new MailParser(); + + mc.pipe(mp); + + mp.on("end", function(mail){ + test.equal(mail.attachments[0].checksum, "3995d423c7453e472ce0d54e475bae3e"); + server.close(); + test.done(); + }); + }, + "Custom User-Agent": function(test){ + + var server = http.createServer(function (req, res) { + test.equal(req.headers['user-agent'], "test"); + + res.writeHead(200, {'Content-Type': 'text/plain'}); + res.end('OK!\n'); + }) + server.listen(HTTP_PORT, '127.0.0.1'); + + var mc = new MailComposer(); + + mc.setMessageOption(); + mc.addAttachment({ + fileName: "file.txt", + filePath: "http://localhost:"+HTTP_PORT+"/textfile.txt", + userAgent: "test" + }); + mc.streamMessage(); + + var mp = new MailParser(); + + mc.pipe(mp); + + mp.on("end", function(mail){ + server.close(); + test.done(); + }); + }, + "escape SMTP": function(test){ + var mc = new MailComposer({escapeSMTP: true}); + mc.setMessageOption({ + body: ".\r\n." + }); + mc.streamMessage(); + + var mp = new MailParser(); + + mc.pipe(mp); + + mp.on("end", function(mail){ + test.equal(mail.text.trim(), "..\n.."); + test.done(); + }); + }, + "don't escape SMTP": function(test){ + var mc = new MailComposer({escapeSMTP: false}); + mc.setMessageOption({ + body: ".\r\n." + }); + mc.streamMessage(); + + var mp = new MailParser(); + + mc.pipe(mp); + + mp.on("end", function(mail){ + test.equal(mail.text.trim(), ".\n."); + test.done(); + }); + }, + "HTML and text and attachment": function(test){ + var mc = new MailComposer(); + mc.setMessageOption({ + html: "<b>test</b>", + body: "test" + }); + mc.addAttachment({ + fileName: "file.txt", + contents: fs.readFileSync(__dirname+"/textfile.txt").toString("utf-8") + }); + mc.streamMessage(); + + var mp = new MailParser(); + + mc.pipe(mp); + + mp.on("end", function(mail){ + test.equal(mail.text.trim(), "test"); + test.equal(mail.html.trim(), "<b>test</b>"); + test.equal(mail.attachments[0].checksum, "59fbcbcaf18cb9232f7da6663f374eb9"); + test.done(); + }); + }, + "HTML and related attachment": function(test){ + var mc = new MailComposer(); + mc.setMessageOption({ + html: "<b><img src=\"cid:test@node\"/></b>" + }); + mc.addAttachment({ + fileName: "file.txt", + cid: "test@node", + contents: fs.readFileSync(__dirname+"/textfile.txt").toString("utf-8") + }); + mc.streamMessage(); + + var mp = new MailParser(); + + mc.pipe(mp); + /* + var d = ""; + mc.on("data", function(data){ + d += data.toString(); + }) + + mc.on("end", function(){ + console.log(d); + }); + */ + + mp.on("end", function(mail){ + test.equal(mc._attachments.length, 0); + test.equal(mc._relatedAttachments.length, 1); + test.equal(mail.html.trim(), "<b><img src=\"cid:test@node\"/></b>"); + test.equal(mail.attachments[0].checksum, "59fbcbcaf18cb9232f7da6663f374eb9"); + test.done(); + }); + }, + "HTML and related plus regular attachment": function(test){ + var mc = new MailComposer(); + mc.setMessageOption({ + html: "<b><img src=\"cid:test@node\"/></b>" + }); + mc.addAttachment({ + fileName: "file.txt", + cid: "test@node", + contents: fs.readFileSync(__dirname+"/textfile.txt").toString("utf-8") + }); + mc.addAttachment({ + fileName: "file.txt", + contents: fs.readFileSync(__dirname+"/textfile.txt").toString("utf-8") + }); + mc.streamMessage(); + + var mp = new MailParser(); + + mc.pipe(mp); + + mp.on("end", function(mail){ + test.equal(mc._attachments.length, 1); + test.equal(mc._relatedAttachments.length, 1); + test.equal(mail.html.trim(), "<b><img src=\"cid:test@node\"/></b>"); + test.equal(mail.attachments[0].checksum, "59fbcbcaf18cb9232f7da6663f374eb9"); + test.equal(mail.attachments[1].checksum, "59fbcbcaf18cb9232f7da6663f374eb9"); + test.done(); + }); + }, + "HTML and text related attachment": function(test){ + var mc = new MailComposer(); + mc.setMessageOption({ + html: "<b><img src=\"cid:test@node\"/></b>", + text:"test" + }); + mc.addAttachment({ + fileName: "file.txt", + cid: "test@node", + contents: fs.readFileSync(__dirname+"/textfile.txt").toString("utf-8") + }); + mc.streamMessage(); + + var mp = new MailParser(); + + mc.pipe(mp); + + mp.on("end", function(mail){ + test.equal(mc._attachments.length, 0); + test.equal(mc._relatedAttachments.length, 1); + test.equal(mail.text.trim(), "test"); + test.equal(mail.html.trim(), "<b><img src=\"cid:test@node\"/></b>"); + test.equal(mail.attachments[0].checksum, "59fbcbcaf18cb9232f7da6663f374eb9"); + test.done(); + }); + }, + "HTML, text, related+regular attachment": function(test){ + var mc = new MailComposer(); + mc.setMessageOption({ + html: "<b><img src=\"cid:test@node\"/></b>", + text:"test" + }); + mc.addAttachment({ + fileName: "file.txt", + cid: "test@node", + contents: fs.readFileSync(__dirname+"/textfile.txt").toString("utf-8") + }); + mc.addAttachment({ + fileName: "file.txt", + contents: fs.readFileSync(__dirname+"/textfile.txt").toString("utf-8") + }); + mc.streamMessage(); + + var mp = new MailParser(); + + mc.pipe(mp); + + mp.on("end", function(mail){ + test.equal(mc._attachments.length, 1); + test.equal(mc._relatedAttachments.length, 1); + test.equal(mail.text.trim(), "test"); + test.equal(mail.html.trim(), "<b><img src=\"cid:test@node\"/></b>"); + test.equal(mail.attachments[0].checksum, "59fbcbcaf18cb9232f7da6663f374eb9"); + test.equal(mail.attachments[1].checksum, "59fbcbcaf18cb9232f7da6663f374eb9"); + test.done(); + }); + }, + "References Header": function(test){ + + var mc = new MailComposer(); + mc.setMessageOption({ + references: ["myrdo", "vyrdo"] + }); + mc.streamMessage(); + + var mp = new MailParser(); + + mc.pipe(mp); + + mp.on("end", function(mail){ + test.deepEqual(mail.references, ["myrdo", "vyrdo"]); + test.done(); + }); + }, + "InReplyTo Header": function(test){ + + var mc = new MailComposer(); + mc.setMessageOption({ + inReplyTo: "test" + }); + mc.streamMessage(); + + var mp = new MailParser(); + + mc.pipe(mp); + + mp.on("end", function(mail){ + test.equal(mail.inReplyTo, "test"); + test.done(); + }); + } +}; + +exports["Output buffering"] = { + "Use DKIM": function(test){ + var mc = new MailComposer(); + + mc.setMessageOption({ + from: "Andris Reinman <andris@node.ee>", + to: "Andris <andris.reinman@gmail.com>", + html: "<b>Hello world!</b>", + subject: "Hello world!" + }); + + mc.useDKIM({ + domainName: "do-not-trust.node.ee", + keySelector: "dkim", + privateKey: fs.readFileSync(__dirname+"/test_private.pem") + }); + + mc.streamMessage(); + + var mp = new MailParser(); + + mc.pipe(mp); + + mp.on("end", function(mail){ + test.equal(mail.headers['dkim-signature'].replace(/\s/g, ""), 'v=1;a=rsa-sha256;c=relaxed/relaxed;d=do-not-trust.node.ee;q=dns/txt;s=dkim;bh=88i0PUP3tj3X/n0QT6Baw8ZPSeHZPqT7J0EmE26pjng=;h=from:subject:to:mime-version:content-type:content-transfer-encoding;b=dtxxQLotrcarEA5nbgBJLBJQxSAHcfrNxxpItcXSj68ntRvxmjXt9aPZTbVrzfRYe+xRzP2FTGpS7js8iYpAZZ2N3DBRLVp4gyyKHB1oWMkg/EV92uPtnjQ3MlHMbxC0'); + test.done(); + }); + } +} + diff --git a/tools/node_modules/nodemailer/node_modules/mailcomposer/test/test_private.pem b/tools/node_modules/nodemailer/node_modules/mailcomposer/test/test_private.pem new file mode 100644 index 0000000..9d03266 --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/mailcomposer/test/test_private.pem @@ -0,0 +1,12 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIBywIBAAJhANCx7ncKUfQ8wBUYmMqq6ky8rBB0NL8knBf3+uA7q/CSxpX6sQ8N +dFNtEeEd7gu7BWEM7+PkO1P0M78eZOvVmput8BP9R44ARpgHY4V0qSCdUt4rD32n +wfjlGbh8p5ua5wIDAQABAmAm+uUQpQPTu7kg95wqVqw2sxLsa9giT6M8MtxQH7Uo +1TF0eAO0TQ4KOxgY1S9OT5sGPVKnag258m3qX7o5imawcuyStb68DQgAUg6xv7Af +AqAEDfYN5HW6xK+X81jfOUECMQDr7XAS4PERATvgb1B3vRu5UEbuXcenHDYgdoyT +3qJFViTbep4qeaflF0uF9eFveMcCMQDic10rJ8fopGD7/a45O4VJb0+lRXVdqZxJ +QzAp+zVKWqDqPfX7L93SQLzOGhdd7OECMQDeQyD7WBkjSQNMy/GF7I1qxrscIxNN +VqGTcbu8Lti285Hjhx/sqhHHHGwU9vB7oM8CMQDKTS3Kw/s/xrot5O+kiZwFgr+w +cmDrj/7jJHb+ykFNb7GaEkiSYqzUjKkfpweBDYECMFJUyzuuFJAjq3BXmGJlyykQ +TweUw+zMVdSXjO+FCPcYNi6CP1t1KoESzGKBVoqA/g== +-----END RSA PRIVATE KEY----- diff --git a/tools/node_modules/nodemailer/node_modules/mailcomposer/test/test_public.pem b/tools/node_modules/nodemailer/node_modules/mailcomposer/test/test_public.pem new file mode 100644 index 0000000..2214c80 --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/mailcomposer/test/test_public.pem @@ -0,0 +1,5 @@ +-----BEGIN PUBLIC KEY----- +MHwwDQYJKoZIhvcNAQEBBQADawAwaAJhANCx7ncKUfQ8wBUYmMqq6ky8rBB0NL8k +nBf3+uA7q/CSxpX6sQ8NdFNtEeEd7gu7BWEM7+PkO1P0M78eZOvVmput8BP9R44A +RpgHY4V0qSCdUt4rD32nwfjlGbh8p5ua5wIDAQAB +-----END PUBLIC KEY----- diff --git a/tools/node_modules/nodemailer/node_modules/mailcomposer/test/textfile.txt b/tools/node_modules/nodemailer/node_modules/mailcomposer/test/textfile.txt new file mode 100644 index 0000000..3628c58 --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/mailcomposer/test/textfile.txt @@ -0,0 +1,601 @@ +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +Some unicode symbols ÕÄÖÜ ↑, →, ↓, ↔, ↕, ↖, ↗, ↘, ↙, ↚, ↛, ↜, ↝, ↞, ↟, ↠, ↡, ↢, ↣, ↤, ↥, ↦ + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." + +"Because I am scorched all over, Captain Ahab," answered Perth, resting for a moment on his hammer; "I am past scorching; not easily can'st thou scorch a scar." + +"Well, well; no more. Thy shrunk voice sounds too calmly, sanely woeful to me. In no Paradise myself, I am impatient of all misery in others that is not mad. Thou should'st go mad, blacksmith; say, why dost thou not go mad? How can'st thou endure without being mad? Do the heavens yet hate thee, that thou can'st not go mad?—What wert thou making there?" + +"Welding an old pike-head, sir; there were seams and dents in it." + +"And can'st thou make it all smooth again, blacksmith, after such hard usage as it had?" + +"I think so, sir." + +"And I suppose thou can'st smoothe almost any seams and dents; never mind how hard the metal, blacksmith?" + +"Aye, sir, I think I can; all seams and dents but one." + +"Look ye here, then," cried Ahab, passionately advancing, and leaning with both hands on Perth's shoulders; "look ye here—HERE—can ye smoothe out a seam like this, blacksmith," sweeping one hand across his ribbed brow; "if thou could'st, blacksmith, glad enough would I lay my head upon thy anvil, and feel thy heaviest hammer between my eyes. Answer! Can'st thou smoothe this seam?" + +"Oh! that is the one, sir! Said I not all seams and dents but one?" + +"Aye, blacksmith, it is the one; aye, man, it is unsmoothable; for though thou only see'st it here in my flesh, it has worked down into the bone of my skull—THAT is all wrinkles! But, away with child's play; no more gaffs and pikes to-day. Look ye here!" jingling the leathern bag, as if it were full of gold coins. "I, too, want a harpoon made; one that a thousand yoke of fiends could not part, Perth; something that will stick in a whale like his own fin-bone. There's the stuff," flinging the pouch upon the anvil. "Look ye, blacksmith, these are the gathered nail-stubbs of the steel shoes of racing horses." |