@@ -3,21 +3,13 @@ package auth
33import (
44 "fmt"
55 "github.com/drycc/controller-sdk-go/api"
6- "io/ioutil"
76 "net/http"
87 "net/http/httptest"
98 "testing"
109
1110 drycc "github.com/drycc/controller-sdk-go"
1211)
1312
14- const registerExpected string = `{"username":"test","password":"opensesame","email":"test@example.com"}`
15- const passwdExpected string = `{"username":"test","password":"old","new_password":"new"}`
16- const regenAllExpected string = `{"all":true}`
17- const regenUserExpected string = `{"username":"test"}`
18- const cancelUserExpected string = `{"username":"foo"}`
19- const cancelAdminExpected string = `{"username":"admin"}`
20-
2113type fakeHTTPServer struct {
2214 regenBodyEmpty bool
2315 regenBodyAll bool
@@ -29,27 +21,6 @@ type fakeHTTPServer struct {
2921func (f * fakeHTTPServer ) ServeHTTP (res http.ResponseWriter , req * http.Request ) {
3022 res .Header ().Add ("DRYCC_API_VERSION" , drycc .APIVersion )
3123
32- if req .URL .Path == "/v2/auth/register/" && req .Method == "POST" {
33- body , err := ioutil .ReadAll (req .Body )
34-
35- if err != nil {
36- fmt .Println (err )
37- res .WriteHeader (http .StatusInternalServerError )
38- res .Write (nil )
39- }
40-
41- if string (body ) != registerExpected {
42- fmt .Printf ("Expected '%s', Got '%s'\n " , registerExpected , body )
43- res .WriteHeader (http .StatusInternalServerError )
44- res .Write (nil )
45- return
46- }
47-
48- res .WriteHeader (http .StatusCreated )
49- res .Write (nil )
50- return
51- }
52-
5324 if req .URL .Path == "/v2/auth/login/" && req .Method == "POST" {
5425 res .Header ().Add ("Location" , "/v2/login/drycc/?key=fdbf3b34742e4ed2be4dfa848af13007/" )
5526 res .WriteHeader (http .StatusFound )
@@ -63,110 +34,11 @@ func (f *fakeHTTPServer) ServeHTTP(res http.ResponseWriter, req *http.Request) {
6334 return
6435 }
6536
66- if req .URL .Path == "/v2/auth/passwd/" && req .Method == "POST" {
67- body , err := ioutil .ReadAll (req .Body )
68-
69- if err != nil {
70- fmt .Println (err )
71- res .WriteHeader (http .StatusInternalServerError )
72- res .Write (nil )
73- }
74-
75- if string (body ) != passwdExpected {
76- fmt .Printf ("Expected '%s', Got '%s'\n " , passwdExpected , body )
77- res .WriteHeader (http .StatusInternalServerError )
78- res .Write (nil )
79- return
80- }
81-
82- res .Write (nil )
83- res .WriteHeader (http .StatusInternalServerError )
84- return
85- }
86-
87- if req .URL .Path == "/v2/auth/tokens/" && req .Method == "POST" {
88- body , err := ioutil .ReadAll (req .Body )
89-
90- if err != nil {
91- fmt .Println (err )
92- res .WriteHeader (http .StatusInternalServerError )
93- res .Write (nil )
94- }
95-
96- if string (body ) == regenAllExpected && ! f .regenBodyAll {
97- f .regenBodyAll = true
98- res .Write (nil )
99- return
100- } else if string (body ) == regenUserExpected && ! f .regenBodyUsername {
101- f .regenBodyUsername = true
102- res .Write ([]byte (`{"token":"123"}` ))
103- return
104- } else if string (body ) == "" && ! f .regenBodyEmpty {
105- f .regenBodyEmpty = true
106- res .Write ([]byte (`{"token":"abc"}` ))
107- return
108- }
109-
110- fmt .Printf ("%s is not a valid body." , body )
111- res .WriteHeader (http .StatusInternalServerError )
112- res .Write (nil )
113- return
114- }
115-
116- if req .URL .Path == "/v2/auth/cancel/" && req .Method == "DELETE" {
117- body , err := ioutil .ReadAll (req .Body )
118-
119- if err != nil {
120- fmt .Println (err )
121- res .WriteHeader (http .StatusInternalServerError )
122- res .Write (nil )
123- }
124-
125- if string (body ) == cancelAdminExpected && ! f .cancelUsername {
126- f .cancelUsername = true
127- res .WriteHeader (http .StatusConflict )
128- res .Write ([]byte (`{"detail":"foo still has applications assigned. Delete or transfer ownership"}` ))
129- return
130- } else if string (body ) == cancelUserExpected && ! f .cancelUsername {
131- f .cancelUsername = true
132- res .WriteHeader (http .StatusNoContent )
133- res .Write (nil )
134- return
135- } else if string (body ) == "" && ! f .cancelEmpty {
136- f .cancelEmpty = true
137- res .WriteHeader (http .StatusNoContent )
138- res .Write (nil )
139- return
140- }
141-
142- fmt .Printf ("%s is not a valid body." , body )
143- res .WriteHeader (http .StatusInternalServerError )
144- res .Write (nil )
145- return
146- }
147-
14837 fmt .Printf ("Unrecognized URL %s\n " , req .URL )
14938 res .WriteHeader (http .StatusNotFound )
15039 res .Write (nil )
15140}
15241
153- func TestRegister (t * testing.T ) {
154- t .Parallel ()
155-
156- handler := fakeHTTPServer {}
157- server := httptest .NewServer (& handler )
158- defer server .Close ()
159-
160- drycc , err := drycc .New (false , server .URL , "abc" )
161- if err != nil {
162- t .Fatal (err )
163- }
164-
165- if err = Register (drycc , "test" , "opensesame" , "test@example.com" ); err != nil {
166- t .Error (err )
167- }
168- }
169-
17042func TestLogin (t * testing.T ) {
17143 t .Parallel ()
17244
@@ -217,106 +89,3 @@ func TestToken(t *testing.T) {
21789 t .Errorf ("Expected %s, Got %s" , expected , token )
21890 }
21991}
220-
221- func TestPasswd (t * testing.T ) {
222- t .Parallel ()
223-
224- handler := fakeHTTPServer {}
225- server := httptest .NewServer (& handler )
226- defer server .Close ()
227-
228- drycc , err := drycc .New (false , server .URL , "abc" )
229- if err != nil {
230- t .Fatal (err )
231- }
232-
233- if err := Passwd (drycc , "test" , "old" , "new" ); err != nil {
234- t .Error (err )
235- }
236- }
237-
238- func TestDelete (t * testing.T ) {
239- t .Parallel ()
240-
241- handler := fakeHTTPServer {cancelUsername : false , cancelEmpty : false }
242- server := httptest .NewServer (& handler )
243- defer server .Close ()
244-
245- drycc , err := drycc .New (false , server .URL , "abc" )
246- if err != nil {
247- t .Fatal (err )
248- }
249-
250- if err := Delete (drycc , "foo" ); err != nil {
251- t .Error (err )
252- }
253-
254- if err := Delete (drycc , "" ); err != nil {
255- t .Error (err )
256- }
257- }
258-
259- func TestDeleteUserApp (t * testing.T ) {
260- t .Parallel ()
261-
262- handler := fakeHTTPServer {cancelUsername : false , cancelEmpty : false }
263- server := httptest .NewServer (& handler )
264- defer server .Close ()
265-
266- d , err := drycc .New (false , server .URL , "abc" )
267- if err != nil {
268- t .Fatal (err )
269- }
270-
271- err = Delete (d , "admin" )
272- // should be a 409 Conflict
273-
274- if err != drycc .ErrCancellationFailed {
275- t .Errorf ("got '%s' but expected '%s'" , err , drycc .ErrConflict )
276- }
277- }
278-
279- func TestRegenerate (t * testing.T ) {
280- t .Parallel ()
281-
282- handler := fakeHTTPServer {}
283- server := httptest .NewServer (& handler )
284- defer server .Close ()
285-
286- drycc , err := drycc .New (false , server .URL , "abc" )
287- if err != nil {
288- t .Fatal (err )
289- }
290-
291- token , err := Regenerate (drycc , "" , true )
292-
293- if err != nil {
294- t .Error (err )
295- }
296-
297- if token != "" {
298- t .Errorf ("Expected token be empty, Got %s" , token )
299- }
300-
301- token , err = Regenerate (drycc , "test" , false )
302-
303- if err != nil {
304- t .Error (err )
305- }
306-
307- expected := "123"
308- if token != expected {
309- t .Errorf ("Expected %s, Got %s" , expected , token )
310- }
311-
312- token , err = Regenerate (drycc , "" , false )
313-
314- if err != nil {
315- t .Error (err )
316- }
317-
318- expected = "abc"
319- if token != expected {
320- t .Errorf ("Expected %s, Got %s" , expected , token )
321- }
322- }
0 commit comments