1
0
mirror of https://github.com/jhillyerd/inbucket.git synced 2025-12-18 18:17:03 +00:00

Improved message rendering

Added a decodeSection function to mime.go that uses go-qprintable to
parse quoted-printable emails or MIME parts, fixes #7

Added a very basic TextToHtml converter to provide nicer rending of text
message bodies.
This commit is contained in:
James Hillyerd
2012-10-19 12:50:16 -07:00
parent 9e389e00d3
commit 2b3491fc87
8 changed files with 175 additions and 25 deletions

View File

@@ -1,28 +1,44 @@
package inbucket
import "testing"
import (
"github.com/stretchrcom/testify/assert"
"testing"
)
func TestParseMailboxName(t *testing.T) {
in, out := "MailBOX", "mailbox"
if x := ParseMailboxName(in); x != out {
t.Errorf("ParseMailboxName(%v) = %v, want %v", in, x, out)
}
in, out := "MailBOX", "mailbox"
if x := ParseMailboxName(in); x != out {
t.Errorf("ParseMailboxName(%v) = %v, want %v", in, x, out)
}
in, out = "MailBox@Host.Com", "mailbox"
if x := ParseMailboxName(in); x != out {
t.Errorf("ParseMailboxName(%v) = %v, want %v", in, x, out)
}
in, out = "MailBox@Host.Com", "mailbox"
if x := ParseMailboxName(in); x != out {
t.Errorf("ParseMailboxName(%v) = %v, want %v", in, x, out)
}
in, out = "Mail+extra@Host.Com", "mail"
if x := ParseMailboxName(in); x != out {
t.Errorf("ParseMailboxName(%v) = %v, want %v", in, x, out)
}
in, out = "Mail+extra@Host.Com", "mail"
if x := ParseMailboxName(in); x != out {
t.Errorf("ParseMailboxName(%v) = %v, want %v", in, x, out)
}
}
func TestHashMailboxName(t *testing.T) {
in, out := "mail", "1d6e1cf70ec6f9ab28d3ea4b27a49a77654d370e"
if x := HashMailboxName(in); x != out {
t.Errorf("HashMailboxName(%v) = %v, want %v", in, x, out)
}
in, out := "mail", "1d6e1cf70ec6f9ab28d3ea4b27a49a77654d370e"
if x := HashMailboxName(in); x != out {
t.Errorf("HashMailboxName(%v) = %v, want %v", in, x, out)
}
}
func TestTextToHtml(t *testing.T) {
// Identity
assert.Equal(t, TextToHtml("html"), "html")
// Check it escapes
assert.Equal(t, TextToHtml("<html>"), "&lt;html&gt;")
// Check for linebreaks
assert.Equal(t, TextToHtml("line\nbreak"), "line<br/>\nbreak")
assert.Equal(t, TextToHtml("line\r\nbreak"), "line<br/>\nbreak")
assert.Equal(t, TextToHtml("line\rbreak"), "line<br/>\nbreak")
}