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) } }