func TestMissingGithubEvent(t *testing.T) { server := httptest.NewServer(webhook.NewController(&osClient{}, map[string]webhook.Plugin{"github": New()})) defer server.Close() client := &http.Client{} req, _ := http.NewRequest("POST", server.URL+"/build100/secret101/github", nil) req.Header.Add("Content-Type", "application/json") req.Header.Add("User-Agent", "GitHub-Hookshot/github") resp, _ := client.Do(req) body, _ := ioutil.ReadAll(resp.Body) if resp.StatusCode != http.StatusBadRequest || !strings.Contains(string(body), "X-GitHub-Event") { t.Errorf("Excepcted BadRequest, got %s: %s!", resp.Status, string(body)) } }
func post(event string, data []byte, url string, expStatusCode int, t *testing.T) { client := &http.Client{} req, err := http.NewRequest("POST", url, bytes.NewReader(data)) if err != nil { t.Errorf("Error creating POST request: %v!", err) } req.Header.Add("Content-Type", "application/json") req.Header.Add("User-Agent", "GitHub-Hookshot/github") req.Header.Add("X-Github-Event", event) resp, err := client.Do(req) if err != nil { t.Errorf("Failed posting webhook to: %s!", url) } body, _ := ioutil.ReadAll(resp.Body) if resp.StatusCode != expStatusCode { t.Errorf("Wrong response code, expecting %d, got %s: %s!", expStatusCode, resp.Status, string(body)) } }