10 func TestMailAddress(t *testing.T) {
17 "testdata/actor/mastodon.json",
18 `"Oliver Lowe" <otl@hachyderm.io>`,
19 `"Oliver Lowe (followers)" <otl+followers@hachyderm.io>`,
22 "testdata/actor/akkoma.json",
23 `"Kari'boka" <kariboka@social.harpia.red>`,
24 `"Kari'boka (followers)" <kariboka+followers@social.harpia.red>`,
27 "testdata/actor/lemmy.json",
28 "<Spotlight7573@lemmy.world>",
29 "<@>", // zero mail.Address
32 for _, tt := range tests {
33 f, err := os.Open(tt.name)
39 actor, err := DecodeActor(f)
41 t.Errorf("%s: decode actor: %v", tt.name, err)
44 if actor.Address().String() != tt.from {
45 t.Errorf("%s: from address: want %s, got %s", tt.name, tt.from, actor.Address().String())
47 got := actor.FollowersAddress().String()
48 if got != tt.followers {
49 t.Errorf("%s: followers address: want %s, got %s", tt.name, tt.followers, got)
54 func TestMarshalMail(t *testing.T) {
55 var notes []string = []string{
56 "testdata/note/akkoma.json",
57 "testdata/note/lemmy.json",
58 "testdata/note/mastodon.json",
61 for _, name := range notes {
62 f, err := os.Open(name)
70 t.Errorf("%s: decode activity: %v", name, err)
73 b, err := MarshalMail(a)
75 t.Errorf("%s: marshal to mail message: %v", name, err)
78 if _, err := mail.ReadMessage(bytes.NewReader(b)); err != nil {
79 t.Errorf("%s: read back message from marshalled activity: %v", name, err)
84 func TestUnmarshalMail(t *testing.T) {
85 f, err := os.Open("testdata/outbound.eml")
90 msg, err := mail.ReadMessage(f)
95 t.Skip("skipping network calls to unmarshal mail message to Activity")
97 a, err := UnmarshalMail(msg)
102 t.Fatalf("wanted 1 tag in unmarshalled activity, got %d", len(a.Tag))
104 want := "@henfredemars@infosec.pub"
105 if a.Tag[0].Name != want {
106 t.Errorf("wanted tag name %s, got %s", want, a.Tag[0].Name)