Blame


1 71bdede3 2022-04-21 o package mailmux
2 71bdede3 2022-04-21 o
3 71bdede3 2022-04-21 o import (
4 71bdede3 2022-04-21 o "errors"
5 71bdede3 2022-04-21 o "net"
6 71bdede3 2022-04-21 o "os"
7 71bdede3 2022-04-21 o "testing"
8 71bdede3 2022-04-21 o )
9 71bdede3 2022-04-21 o
10 71bdede3 2022-04-21 o const (
11 71bdede3 2022-04-21 o testUsername = "test@example.com"
12 71bdede3 2022-04-21 o testPassword = "dummy"
13 71bdede3 2022-04-21 o )
14 71bdede3 2022-04-21 o
15 71bdede3 2022-04-21 o func newTestServer() *Server {
16 71bdede3 2022-04-21 o tmpdb, err := os.CreateTemp("", "")
17 71bdede3 2022-04-21 o if err != nil {
18 71bdede3 2022-04-21 o panic(err)
19 71bdede3 2022-04-21 o }
20 71bdede3 2022-04-21 o aliasdb, err := OpenAliasDB(tmpdb.Name(), "/usr/share/dict/words")
21 71bdede3 2022-04-21 o if err != nil {
22 71bdede3 2022-04-21 o panic(err)
23 71bdede3 2022-04-21 o }
24 71bdede3 2022-04-21 o userdb, err := OpenUserDB(tmpdb.Name(), os.TempDir())
25 71bdede3 2022-04-21 o if err != nil {
26 71bdede3 2022-04-21 o panic(err)
27 71bdede3 2022-04-21 o }
28 71bdede3 2022-04-21 o if err := userdb.Change(testUsername, Password(testPassword)); err != nil {
29 71bdede3 2022-04-21 o panic(err)
30 71bdede3 2022-04-21 o }
31 71bdede3 2022-04-21 o return &Server{
32 71bdede3 2022-04-21 o Aliases: aliasdb,
33 71bdede3 2022-04-21 o Users: userdb,
34 71bdede3 2022-04-21 o }
35 71bdede3 2022-04-21 o }
36 71bdede3 2022-04-21 o
37 71bdede3 2022-04-21 o func TestBasicList(t *testing.T) {
38 71bdede3 2022-04-21 o srv := newTestServer()
39 71bdede3 2022-04-21 o ln, err := net.Listen("unix", "/tmp/test.sock")
40 71bdede3 2022-04-21 o if err != nil {
41 71bdede3 2022-04-21 o t.Fatal(err)
42 71bdede3 2022-04-21 o }
43 71bdede3 2022-04-21 o defer ln.Close()
44 71bdede3 2022-04-21 o go func() {
45 71bdede3 2022-04-21 o err := srv.Serve(ln)
46 71bdede3 2022-04-21 o if err != nil && !errors.Is(err, net.ErrClosed) {
47 71bdede3 2022-04-21 o t.Fatal(err)
48 71bdede3 2022-04-21 o }
49 71bdede3 2022-04-21 o }()
50 71bdede3 2022-04-21 o client, err := Dial("unix", "/tmp/test.sock")
51 71bdede3 2022-04-21 o if err != nil {
52 71bdede3 2022-04-21 o t.Fatal(err)
53 71bdede3 2022-04-21 o }
54 71bdede3 2022-04-21 o err = client.Auth("test@example.com", "dummy")
55 71bdede3 2022-04-21 o if err != nil {
56 71bdede3 2022-04-21 o t.Fatal(err)
57 71bdede3 2022-04-21 o }
58 4fb0d639 2022-04-25 o _, err = client.NewAlias()
59 71bdede3 2022-04-21 o if err != nil {
60 71bdede3 2022-04-21 o t.Error(err)
61 71bdede3 2022-04-21 o }
62 4fb0d639 2022-04-25 o _, err = client.Aliases()
63 71bdede3 2022-04-21 o if err != nil {
64 71bdede3 2022-04-21 o t.Log(err)
65 71bdede3 2022-04-21 o }
66 71bdede3 2022-04-21 o }