File: cmd_any_test.go

package info (click to toggle)
golang-github-emersion-go-imap 1.2.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 840 kB
  • sloc: makefile: 2
file content (80 lines) | stat: -rw-r--r-- 1,572 bytes parent folder | download | duplicates (3)
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package client

import (
	"testing"

	"github.com/emersion/go-imap"
)

func TestClient_Capability(t *testing.T) {
	c, s := newTestClient(t)
	defer s.Close()

	var caps map[string]bool
	done := make(chan error, 1)
	go func() {
		var err error
		caps, err = c.Capability()
		done <- err
	}()

	tag, cmd := s.ScanCmd()
	if cmd != "CAPABILITY" {
		t.Fatalf("client sent command %v, want CAPABILITY", cmd)
	}
	s.WriteString("* CAPABILITY IMAP4rev1 XTEST\r\n")
	s.WriteString(tag + " OK CAPABILITY completed.\r\n")

	if err := <-done; err != nil {
		t.Error("c.Capability() = ", err)
	}

	if !caps["XTEST"] {
		t.Error("XTEST capability missing")
	}
}

func TestClient_Noop(t *testing.T) {
	c, s := newTestClient(t)
	defer s.Close()

	done := make(chan error, 1)
	go func() {
		done <- c.Noop()
	}()

	tag, cmd := s.ScanCmd()
	if cmd != "NOOP" {
		t.Fatalf("client sent command %v, want NOOP", cmd)
	}
	s.WriteString(tag + " OK NOOP completed\r\n")

	if err := <-done; err != nil {
		t.Error("c.Noop() = ", err)
	}
}

func TestClient_Logout(t *testing.T) {
	c, s := newTestClient(t)
	defer s.Close()

	done := make(chan error, 1)
	go func() {
		done <- c.Logout()
	}()

	tag, cmd := s.ScanCmd()
	if cmd != "LOGOUT" {
		t.Fatalf("client sent command %v, want LOGOUT", cmd)
	}
	s.WriteString("* BYE Client asked to close the connection.\r\n")
	s.WriteString(tag + " OK LOGOUT completed\r\n")

	if err := <-done; err != nil {
		t.Error("c.Logout() =", err)
	}

	if state := c.State(); state != imap.LogoutState {
		t.Errorf("c.State() = %v, want %v", state, imap.LogoutState)
	}
}