-
Notifications
You must be signed in to change notification settings - Fork 2
/
user_login_test.go
81 lines (66 loc) · 1.56 KB
/
user_login_test.go
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
81
package gofortiadc
import (
"crypto/tls"
"net/http"
"net/http/cookiejar"
"os"
"testing"
"github.com/stretchr/testify/assert"
)
func TestLogin(t *testing.T) {
tests := []struct {
addr string
user string
password string
valid bool
}{
{"badaddr://feezf", "", "", false},
{"http://fakehostname.bad", "", "", false},
{os.Getenv("GOFORTI_ADDRESS"), "baduser", "badpassword", false},
{os.Getenv("GOFORTI_ADDRESS"), os.Getenv("GOFORTI_USERNAME"), "badpassword", false},
{os.Getenv("GOFORTI_ADDRESS"), os.Getenv("GOFORTI_USERNAME"), os.Getenv("GOFORTI_PASSWORD"), true},
}
for _, tc := range tests {
cookieJar, _ := cookiejar.New(nil)
tr := &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
}
httpClient := &http.Client{
Jar: cookieJar,
Transport: tr,
}
fortiClient := Client{
Client: httpClient,
Address: tc.addr,
Username: tc.user,
Password: tc.password,
}
err := fortiClient.Login()
if tc.valid {
assert.NoError(t, err)
} else {
assert.Error(t, err)
}
}
}
func NewClientHelper() (*Client, error) {
cookieJar, _ := cookiejar.New(nil)
tr := &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
}
httpClient := &http.Client{
Jar: cookieJar,
Transport: tr,
}
fortiClient := &Client{
Client: httpClient,
Address: os.Getenv("GOFORTI_ADDRESS"),
Username: os.Getenv("GOFORTI_USERNAME"),
Password: os.Getenv("GOFORTI_PASSWORD"),
}
err := fortiClient.Login()
if err != nil {
return &Client{}, err
}
return fortiClient, nil
}