func TestPushCreateJob(t *testing.T) { database.NewInMemoryDatabase() database.CreateRepository("https://github.com/fallenhitokiri/pushtest", "bar", "accessKey", false, false) payload := []byte(`{ "ref":"refs/heads/master", "after":"2c7f7accbcf73b7b4c98ee7e1f213eb46a885042", "before":"b369a904428a1d5d671e3f740443590d3db55fb0", "created":false, "deleted":false, "forced":false, "compare":"https://github.com/fallenhitokiri/pushtest/compare/b369a904428a...2c7f7accbcf7", "commits":[ { "id":"2c7f7accbcf73b7b4c98ee7e1f213eb46a885042", "distinct":true, "message":"asdf", "timestamp":"2014-04-27T11:53:14+02:00", "url":"https://github.com/fallenhitokiri/pushtest/commit/2c7f7accbcf73b7b4c98ee7e1f213eb46a885042", "author": { "name":"Timo Zimmermann", "email":"*****@*****.**", "username":"******" }, "committer":{ "name":"Timo Zimmermann", "email":"*****@*****.**", "username":"******" }, "added":[ "test2.md" ], "removed": [ ], "modified": [ ] } ], "head_commit": { "id":"2c7f7accbcf73b7b4c98ee7e1f213eb46a885042", "distinct":true, "message":"asdf", "timestamp":"2014-04-27T11:53:14+02:00", "url":"https://github.com/fallenhitokiri/pushtest/commit/2c7f7accbcf73b7b4c98ee7e1f213eb46a885042", "author": { "name":"Timo Zimmermann", "email":"*****@*****.**", "username":"******" }, "committer": { "name":"Timo Zimmermann", "email":"*****@*****.**", "username":"******" }, "added": [ "test2.md" ], "removed":[ ], "modified":[ ] }, "repository":{ "id":19200766, "name":"pushtest", "url":"https://github.com/fallenhitokiri/pushtest", "description":"nothing to see here", "watchers":0, "stargazers":0, "forks":0, "fork":false, "size":0, "owner":{ "name":"fallenhitokiri", "email":"*****@*****.**" }, "private":false, "open_issues":0, "has_issues":true, "has_downloads":true, "has_wiki":true, "created_at":1398591886, "pushed_at":1398592401, "master_branch":"master" }, "pusher": { "name":"fallenhitokiri", "email":"*****@*****.**"} }`) var cb pushCallback json.Unmarshal(payload, &cb) cb.createJob() if len(database.GetJobs(0, 10)) != 1 { t.Error("Wrong job count", database.GetJobs(0, 10)) } cb.Deleted = true cb.createJob() if len(database.GetJobs(0, 10)) != 1 { t.Error("Wrong job count", database.GetJobs(0, 10)) } }
// viewListJobs shows a paginated list of all jobs. func viewListJobs(w http.ResponseWriter, r *http.Request) { template := "job/list.html" ctx := make(responseContext) offset := 0 paramOffset := r.URL.Query().Get("offset") if len(paramOffset) > 0 { offset = stringToInt(paramOffset) } ctx["jobs"] = database.GetJobs(offset, limit) prev, next, first := previousNextNumber(offset) ctx["previous_offset"] = prev ctx["next_offset"] = next ctx["first_page"] = first render(w, r, template, ctx) }