summaryrefslogtreecommitdiffstats
path: root/internal/compose/mime_test.go
blob: 32fb6b2bccf247da866e6e2964f55ff4df53dcb5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package compose

import (
	"mime"
	"strings"
	"testing"
)

func TestBuildMixed(t *testing.T) {
	contentType, transfer, body, err := BuildMixed("ciao\nmondo", []Attachment{{Filename: "hello.txt", Data: []byte("hello")}})
	if err != nil {
		t.Fatal(err)
	}
	mediaType, params, err := mime.ParseMediaType(contentType)
	if err != nil || mediaType != "multipart/mixed" || params["boundary"] == "" || transfer != "7bit" {
		t.Fatalf("unexpected MIME metadata: %q, %q, %v", contentType, transfer, err)
	}
	if !strings.Contains(body, "Content-Disposition: attachment") || !strings.Contains(body, "aGVsbG8=") {
		t.Fatalf("attachment missing: %q", body)
	}
}

func TestBuildOpenPGPMIME(t *testing.T) {
	contentType, _, body, err := BuildOpenPGPMIME("-----BEGIN PGP MESSAGE-----\nabc\n-----END PGP MESSAGE-----")
	if err != nil {
		t.Fatal(err)
	}
	if !strings.HasPrefix(contentType, "multipart/encrypted") || !strings.Contains(body, "Version: 1") || !strings.Contains(body, "BEGIN PGP MESSAGE") {
		t.Fatalf("invalid OpenPGP/MIME body: %q", body)
	}
}