diff options
author | Rasmus Dahlberg <rasmus.dahlberg@kau.se> | 2020-11-25 12:09:12 +0100 |
---|---|---|
committer | Rasmus Dahlberg <rasmus.dahlberg@kau.se> | 2020-11-25 12:09:12 +0100 |
commit | 2391eaeb19c810df86af7591af1575a6d6eb5d4b (patch) | |
tree | 1b5787d285694e75f33ad0e7623da2d7fbc706c1 /reqres_tests.go | |
parent | 71260fceaf883051461bd2c5016713e303903f6b (diff) |
added get-entries request parsing test
Diffstat (limited to 'reqres_tests.go')
-rw-r--r-- | reqres_tests.go | 61 |
1 files changed, 60 insertions, 1 deletions
diff --git a/reqres_tests.go b/reqres_tests.go index 7f74bcd..a41c98f 100644 --- a/reqres_tests.go +++ b/reqres_tests.go @@ -1,15 +1,74 @@ package stfe import ( + "fmt" "testing" + + "net/http" ) // TODO: TestNewAddEntryRequest func TestNewAddEntryRequest(t *testing.T) { } -// TODO: TestNewGetEntriesRequest func TestNewGetEntriesRequest(t *testing.T) { + lp := makeTestLogParameters(t, nil) + for _, table := range []struct { + description string + start string + end string + wantErr bool + }{ + { + description: "bad request: start must be an integer", + start: "start", + end: "10", + wantErr: true, + }, + { + description: "bad request: end must be an integer", + start: "10", + end: "end", + wantErr: true, + }, + { + description: "bad request: start must not be negative", + start: "-1", + end: "10", + wantErr: true, + }, + { + description: "bad request: start must be larger than end", + start: "1", + end: "0", + wantErr: true, + }, + { + description: "ok request but bad response: expected truncated", + start: "0", + end: fmt.Sprintf("%d", testMaxRange), + }, + { + description: "ok request and response", + start: "0", + end: fmt.Sprintf("%d", testMaxRange-1), + }, + } { + req, err := http.NewRequest("GET", "http://example.com/"+lp.Prefix+"/get-entries", nil) + q := req.URL.Query() + q.Add("start", table.start) + q.Add("end", table.end) + req.URL.RawQuery = q.Encode() + + rsp, err := lp.newGetEntriesRequest(req) + if got, want := err != nil, table.wantErr; got != want { + t.Errorf("got error is %v but wanted %v in test %q: %v", got, want, table.description, err) + } + + if n := rsp.End - rsp.Start + 1; n > int64(testMaxRange) { + t.Errorf("get-entries range is too large in test %q: %d > %d", table.description, n, testMaxRange) + } + } } // TODO: TestNewGetProofByHashRequest |