Skip to content

Commit 8a3eb05

Browse files
author
raul-brainattica
committed
Middleware tested.
1 parent b1c8068 commit 8a3eb05

File tree

1 file changed

+100
-0
lines changed

1 file changed

+100
-0
lines changed
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
package api_tests
2+
3+
import (
4+
"api.jwt.auth/core/authentication"
5+
"api.jwt.auth/routers"
6+
"api.jwt.auth/services"
7+
"api.jwt.auth/settings"
8+
"fmt"
9+
"github.com/codegangsta/negroni"
10+
"github.com/stretchr/testify/assert"
11+
. "gopkg.in/check.v1"
12+
"net/http"
13+
"net/http/httptest"
14+
"os"
15+
"testing"
16+
)
17+
18+
func Test(t *testing.T) {
19+
TestingT(t)
20+
}
21+
22+
type MiddlewaresTestSuite struct{}
23+
24+
var _ = Suite(&MiddlewaresTestSuite{})
25+
var t *testing.T
26+
var token string
27+
var server *negroni.Negroni
28+
29+
func (s *MiddlewaresTestSuite) SetUpSuite(c *C) {
30+
os.Setenv("GO_ENV", "tests")
31+
settings.Init()
32+
}
33+
34+
func (s *MiddlewaresTestSuite) SetUpTest(c *C) {
35+
authBackend := authentication.InitJWTAuthenticationBackend()
36+
assert.NotNil(t, authBackend)
37+
token, _ = authBackend.GenerateToken("1234")
38+
39+
router := routers.InitRoutes()
40+
server = negroni.Classic()
41+
server.UseHandler(router)
42+
}
43+
44+
func (s *MiddlewaresTestSuite) TestRequireTokenAuthentication(c *C) {
45+
resource := "/test/hello"
46+
47+
response := httptest.NewRecorder()
48+
request, _ := http.NewRequest("GET", resource, nil)
49+
request.Header.Set("Authorization", fmt.Sprintf("Bearer %v", token))
50+
server.ServeHTTP(response, request)
51+
52+
assert.Equal(t, response.Code, http.StatusOK)
53+
}
54+
55+
func (s *MiddlewaresTestSuite) TestRequireTokenAuthenticationInvalidToken(c *C) {
56+
resource := "/test/hello"
57+
58+
response := httptest.NewRecorder()
59+
request, _ := http.NewRequest("GET", resource, nil)
60+
request.Header.Set("Authorization", fmt.Sprintf("Bearer %v", "token"))
61+
server.ServeHTTP(response, request)
62+
63+
assert.Equal(t, response.Code, http.StatusUnauthorized)
64+
}
65+
66+
func (s *MiddlewaresTestSuite) TestRequireTokenAuthenticationEmptyToken(c *C) {
67+
resource := "/test/hello"
68+
69+
response := httptest.NewRecorder()
70+
request, _ := http.NewRequest("GET", resource, nil)
71+
request.Header.Set("Authorization", fmt.Sprintf("Bearer %v", ""))
72+
server.ServeHTTP(response, request)
73+
74+
assert.Equal(t, response.Code, http.StatusUnauthorized)
75+
}
76+
77+
func (s *MiddlewaresTestSuite) TestRequireTokenAuthenticationWithoutToken(c *C) {
78+
resource := "/test/hello"
79+
80+
response := httptest.NewRecorder()
81+
request, _ := http.NewRequest("GET", resource, nil)
82+
server.ServeHTTP(response, request)
83+
84+
assert.Equal(t, response.Code, http.StatusUnauthorized)
85+
}
86+
87+
func (suite *MiddlewaresTestSuite) TestRequireTokenAuthenticationAfterLogout(c *C) {
88+
resource := "/test/hello"
89+
90+
requestLogout, _ := http.NewRequest("GET", resource, nil)
91+
requestLogout.Header.Set("Authorization", fmt.Sprintf("Bearer %v", token))
92+
services.Logout(requestLogout)
93+
94+
response := httptest.NewRecorder()
95+
request, _ := http.NewRequest("GET", resource, nil)
96+
request.Header.Set("Authorization", fmt.Sprintf("Bearer %v", token))
97+
server.ServeHTTP(response, request)
98+
99+
assert.Equal(t, response.Code, http.StatusUnauthorized)
100+
}

0 commit comments

Comments
 (0)