You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

branches_test.go 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. // Copyright 2017 The Gitea Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package integrations
  5. import (
  6. "net/http"
  7. "net/url"
  8. "testing"
  9. "github.com/stretchr/testify/assert"
  10. "github.com/unknwon/i18n"
  11. )
  12. func TestViewBranches(t *testing.T) {
  13. defer prepareTestEnv(t)()
  14. req := NewRequest(t, "GET", "/user2/repo1/branches")
  15. resp := MakeRequest(t, req, http.StatusOK)
  16. htmlDoc := NewHTMLParser(t, resp.Body)
  17. _, exists := htmlDoc.doc.Find(".delete-branch-button").Attr("data-url")
  18. assert.False(t, exists, "The template has changed")
  19. }
  20. func TestDeleteBranch(t *testing.T) {
  21. defer prepareTestEnv(t)()
  22. deleteBranch(t)
  23. }
  24. func TestUndoDeleteBranch(t *testing.T) {
  25. onGiteaRun(t, func(t *testing.T, u *url.URL) {
  26. deleteBranch(t)
  27. htmlDoc, name := branchAction(t, ".undo-button")
  28. assert.Contains(t,
  29. htmlDoc.doc.Find(".ui.positive.message").Text(),
  30. i18n.Tr("en", "repo.branch.restore_success", name),
  31. )
  32. })
  33. }
  34. func deleteBranch(t *testing.T) {
  35. htmlDoc, name := branchAction(t, ".delete-branch-button")
  36. assert.Contains(t,
  37. htmlDoc.doc.Find(".ui.positive.message").Text(),
  38. i18n.Tr("en", "repo.branch.deletion_success", name),
  39. )
  40. }
  41. func branchAction(t *testing.T, button string) (*HTMLDoc, string) {
  42. session := loginUser(t, "user2")
  43. req := NewRequest(t, "GET", "/user2/repo1/branches")
  44. resp := session.MakeRequest(t, req, http.StatusOK)
  45. htmlDoc := NewHTMLParser(t, resp.Body)
  46. link, exists := htmlDoc.doc.Find(button).Attr("data-url")
  47. if !assert.True(t, exists, "The template has changed") {
  48. t.Skip()
  49. }
  50. req = NewRequestWithValues(t, "POST", link, map[string]string{
  51. "_csrf": htmlDoc.GetCSRF(),
  52. })
  53. session.MakeRequest(t, req, http.StatusOK)
  54. url, err := url.Parse(link)
  55. assert.NoError(t, err)
  56. req = NewRequest(t, "GET", "/user2/repo1/branches")
  57. resp = session.MakeRequest(t, req, http.StatusOK)
  58. return NewHTMLParser(t, resp.Body), url.Query().Get("name")
  59. }