From 4d2ea7dc41f2a09f0b9b5833b18bc07a81490e4b Mon Sep 17 00:00:00 2001 From: Mura Li Date: Sun, 18 Jun 2017 21:25:58 +0800 Subject: [PATCH] Add integration test for issue creating (#2002) --- integrations/issue_test.go | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/integrations/issue_test.go b/integrations/issue_test.go index b07fac3a3a..4d2b8bf4eb 100644 --- a/integrations/issue_test.go +++ b/integrations/issue_test.go @@ -6,6 +6,7 @@ package integrations import ( "net/http" + "path" "strconv" "strings" "testing" @@ -75,3 +76,33 @@ func TestNoLoginViewIssue(t *testing.T) { resp := MakeRequest(req) assert.EqualValues(t, http.StatusOK, resp.HeaderCode) } + +func testNewIssue(t *testing.T, session *TestSession, user, repo, title string) { + + req := NewRequest(t, "GET", path.Join(user, repo, "issues", "new")) + resp := session.MakeRequest(t, req) + assert.EqualValues(t, http.StatusOK, resp.HeaderCode) + + htmlDoc := NewHTMLParser(t, resp.Body) + link, exists := htmlDoc.doc.Find("form.ui.form").Attr("action") + assert.True(t, exists, "The template has changed") + req = NewRequestWithValues(t, "POST", link, map[string]string{ + "_csrf": htmlDoc.GetCSRF(), + "title": title, + }) + req.Header.Add("Content-Type", "application/x-www-form-urlencoded") + resp = session.MakeRequest(t, req) + assert.EqualValues(t, http.StatusFound, resp.HeaderCode) + redirectedURL := resp.Headers["Location"] + assert.NotEmpty(t, redirectedURL, "Redirected URL is not found") + + req = NewRequest(t, "GET", redirectedURL[0]) + resp = session.MakeRequest(t, req) + assert.EqualValues(t, http.StatusOK, resp.HeaderCode) +} + +func TestNewIssue(t *testing.T) { + prepareTestEnv(t) + session := loginUser(t, "user2") + testNewIssue(t, session, "user2", "repo1", "Title") +}