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