11809: Add tests for /status.json.
[arvados.git] / services / keep-web / status_test.go
1 package main
2
3 import (
4         "encoding/json"
5         "net/http"
6         "net/http/httptest"
7         "net/url"
8
9         "git.curoverse.com/arvados.git/sdk/go/arvadostest"
10         "gopkg.in/check.v1"
11 )
12
13 func (s *UnitSuite) TestStatus(c *check.C) {
14         h := handler{Config: DefaultConfig()}
15         u, _ := url.Parse("http://keep-web.example/status.json")
16         req := &http.Request{
17                 Method:     "GET",
18                 Host:       u.Host,
19                 URL:        u,
20                 RequestURI: u.RequestURI(),
21         }
22         resp := httptest.NewRecorder()
23         h.ServeHTTP(resp, req)
24         c.Check(resp.Code, check.Equals, http.StatusOK)
25
26         var status map[string]interface{}
27         err := json.NewDecoder(resp.Body).Decode(&status)
28         c.Check(err, check.IsNil)
29         c.Check(status["Cache.Requests"], check.Equals, float64(0))
30 }
31
32 func (s *IntegrationSuite) TestNoStatusFromVHost(c *check.C) {
33         u, _ := url.Parse("http://" + arvadostest.FooCollection + "--keep-web.example/status.json")
34         req := &http.Request{
35                 Method:     "GET",
36                 Host:       u.Host,
37                 URL:        u,
38                 RequestURI: u.RequestURI(),
39                 Header: http.Header{
40                         "Authorization": {"OAuth2 " + arvadostest.ActiveToken},
41                 },
42         }
43         resp := httptest.NewRecorder()
44         s.testServer.Handler.ServeHTTP(resp, req)
45         c.Check(resp.Code, check.Equals, http.StatusNotFound)
46 }