gitea

Зеркало из https://github.com/go-gitea/gitea
Форк
0
/
base_test.go 
47 строк · 1.1 Кб
1
// Copyright 2024 The Gitea Authors. All rights reserved.
2
// SPDX-License-Identifier: MIT
3

4
package context
5

6
import (
7
	"net/http"
8
	"net/http/httptest"
9
	"testing"
10

11
	"code.gitea.io/gitea/modules/setting"
12

13
	"github.com/stretchr/testify/assert"
14
)
15

16
func TestRedirect(t *testing.T) {
17
	req, _ := http.NewRequest("GET", "/", nil)
18

19
	cases := []struct {
20
		url  string
21
		keep bool
22
	}{
23
		{"http://test", false},
24
		{"https://test", false},
25
		{"//test", false},
26
		{"/://test", true},
27
		{"/test", true},
28
	}
29
	for _, c := range cases {
30
		resp := httptest.NewRecorder()
31
		b, cleanup := NewBaseContext(resp, req)
32
		resp.Header().Add("Set-Cookie", (&http.Cookie{Name: setting.SessionConfig.CookieName, Value: "dummy"}).String())
33
		b.Redirect(c.url)
34
		cleanup()
35
		has := resp.Header().Get("Set-Cookie") == "i_like_gitea=dummy"
36
		assert.Equal(t, c.keep, has, "url = %q", c.url)
37
	}
38

39
	req, _ = http.NewRequest("GET", "/", nil)
40
	resp := httptest.NewRecorder()
41
	req.Header.Add("HX-Request", "true")
42
	b, cleanup := NewBaseContext(resp, req)
43
	b.Redirect("/other")
44
	cleanup()
45
	assert.Equal(t, "/other", resp.Header().Get("HX-Redirect"))
46
	assert.Equal(t, http.StatusNoContent, resp.Code)
47
}
48

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.