OLD | NEW |
| (Empty) |
1 // Copyright 2017 The LUCI Authors. All rights reserved. | |
2 // Use of this source code is governed under the Apache License, Version 2.0 | |
3 // that can be found in the LICENSE file. | |
4 | |
5 package buildbot | |
6 | |
7 import ( | |
8 "net/http" | |
9 "net/http/httptest" | |
10 "net/url" | |
11 "testing" | |
12 | |
13 "golang.org/x/net/context" | |
14 | |
15 "github.com/julienschmidt/httprouter" | |
16 "github.com/luci/gae/impl/memory" | |
17 "github.com/luci/luci-go/common/clock/testclock" | |
18 "github.com/luci/luci-go/milo/appengine/common" | |
19 "github.com/luci/luci-go/server/auth" | |
20 "github.com/luci/luci-go/server/auth/authtest" | |
21 "github.com/luci/luci-go/server/auth/identity" | |
22 "github.com/luci/luci-go/server/router" | |
23 "github.com/luci/luci-go/server/templates" | |
24 | |
25 . "github.com/smartystreets/goconvey/convey" | |
26 ) | |
27 | |
28 func request(c context.Context, params map[string]string) *router.Context { | |
29 p := httprouter.Params{} | |
30 for k, v := range params { | |
31 p = append(p, httprouter.Param{Key: k, Value: v}) | |
32 } | |
33 r := &http.Request{URL: &url.URL{Path: "/foobar"}} | |
34 c = common.WithRequest(c, r) | |
35 w := httptest.NewRecorder() | |
36 return &router.Context{ | |
37 Context: c, | |
38 Params: p, | |
39 Writer: w, | |
40 Request: r, | |
41 } | |
42 } | |
43 | |
44 func TestHtml(t *testing.T) { | |
45 c := memory.UseWithAppID(context.Background(), "dev~luci-milo") | |
46 c, _ = testclock.UseTime(c, testclock.TestTimeUTC) | |
47 c = templates.Use(c, common.GetTemplateBundle("../frontend/templates")) | |
48 c = auth.WithState(c, &authtest.FakeState{Identity: identity.AnonymousId
entity}) | |
49 putDSMasterJSON(c, &buildbotMaster{ | |
50 Name: "fake", | |
51 Builders: map[string]*buildbotBuilder{"fake": {}}, | |
52 }, false) | |
53 | |
54 Convey(`HTML handler tests`, t, func() { | |
55 Convey(`Build pages`, func() { | |
56 Convey(`Empty request`, func() { | |
57 rc := request(c, nil) | |
58 BuildHandler(rc) | |
59 response := rc.Writer.(*httptest.ResponseRecorde
r) | |
60 So(response.Code, ShouldEqual, http.StatusBadReq
uest) | |
61 }) | |
62 Convey(`Missing builder`, func() { | |
63 rc := request(c, map[string]string{"master": "fo
o"}) | |
64 BuildHandler(rc) | |
65 response := rc.Writer.(*httptest.ResponseRecorde
r) | |
66 So(response.Code, ShouldEqual, http.StatusBadReq
uest) | |
67 }) | |
68 Convey(`Missing build`, func() { | |
69 rc := request(c, map[string]string{"master": "fo
o", "builder": "bar"}) | |
70 BuildHandler(rc) | |
71 response := rc.Writer.(*httptest.ResponseRecorde
r) | |
72 So(response.Code, ShouldEqual, http.StatusBadReq
uest) | |
73 }) | |
74 Convey(`Invalid build number`, func() { | |
75 rc := request(c, map[string]string{"master": "fo
o", "builder": "bar", "build": "baz"}) | |
76 BuildHandler(rc) | |
77 response := rc.Writer.(*httptest.ResponseRecorde
r) | |
78 So(response.Code, ShouldEqual, http.StatusBadReq
uest) | |
79 }) | |
80 Convey(`Normal build`, func() { | |
81 rc := request(c, map[string]string{"master": "de
bug", "builder": "newline", "build": "1234"}) | |
82 BuildHandler(rc) | |
83 response := rc.Writer.(*httptest.ResponseRecorde
r) | |
84 So(response.Code, ShouldEqual, http.StatusOK) | |
85 }) | |
86 }) | |
87 | |
88 Convey(`Builder pages`, func() { | |
89 Convey(`Empty request`, func() { | |
90 rc := request(c, nil) | |
91 BuilderHandler(rc) | |
92 response := rc.Writer.(*httptest.ResponseRecorde
r) | |
93 So(response.Code, ShouldEqual, http.StatusBadReq
uest) | |
94 }) | |
95 Convey(`Missing builder`, func() { | |
96 rc := request(c, map[string]string{"master": "fo
o"}) | |
97 BuilderHandler(rc) | |
98 response := rc.Writer.(*httptest.ResponseRecorde
r) | |
99 So(response.Code, ShouldEqual, http.StatusBadReq
uest) | |
100 }) | |
101 Convey(`Builder not found`, func() { | |
102 rc := request(c, map[string]string{"master": "fa
ke", "builder": "newline"}) | |
103 BuilderHandler(rc) | |
104 response := rc.Writer.(*httptest.ResponseRecorde
r) | |
105 So(response.Code, ShouldEqual, http.StatusNotFou
nd) | |
106 }) | |
107 }) | |
108 }) | |
109 } | |
OLD | NEW |