Fix "redirect link" handling (#33440)
`a%2fb` should not redirect to `a/b` --------- Co-authored-by: delvh <dev.lh@web.de>
This commit is contained in:
parent
f88dbf86b3
commit
f24d73ab5f
7 changed files with 65 additions and 45 deletions
|
@ -52,9 +52,11 @@ func TestRedirectsNoLogin(t *testing.T) {
|
|||
redirects := []struct{ from, to string }{
|
||||
{"/user2/repo1/commits/master", "/user2/repo1/commits/branch/master"},
|
||||
{"/user2/repo1/src/master", "/user2/repo1/src/branch/master"},
|
||||
{"/user2/repo1/src/master/file.txt", "/user2/repo1/src/branch/master/file.txt"},
|
||||
{"/user2/repo1/src/master/directory/file.txt", "/user2/repo1/src/branch/master/directory/file.txt"},
|
||||
{"/user/avatar/Ghost/-1", "/assets/img/avatar_default.png"},
|
||||
{"/user2/repo1/src/master/a%2fb.txt", "/user2/repo1/src/branch/master/a%2fb.txt"},
|
||||
{"/user2/repo1/src/master/directory/file.txt?a=1", "/user2/repo1/src/branch/master/directory/file.txt?a=1"},
|
||||
{"/user2/repo1/tree/a%2fb?a=1", "/user2/repo1/src/a%2fb?a=1"},
|
||||
{"/user/avatar/GhosT/-1", "/assets/img/avatar_default.png"},
|
||||
{"/user/avatar/Gitea-ActionS/0", "/assets/img/avatar_default.png"},
|
||||
{"/api/v1/swagger", "/api/swagger"},
|
||||
}
|
||||
for _, c := range redirects {
|
||||
|
|
|
@ -46,21 +46,21 @@ func TestNonAsciiBranches(t *testing.T) {
|
|||
{
|
||||
from: "master/badfile",
|
||||
to: "branch/master/badfile",
|
||||
status: http.StatusNotFound, // it does not exists
|
||||
status: http.StatusNotFound, // it does not exist
|
||||
},
|
||||
{
|
||||
from: "ГлавнаяВетка",
|
||||
to: "branch/%D0%93%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F%D0%92%D0%B5%D1%82%D0%BA%D0%B0",
|
||||
to: "branch/%d0%93%d0%bb%d0%b0%d0%b2%d0%bd%d0%b0%d1%8f%d0%92%d0%b5%d1%82%d0%ba%d0%b0",
|
||||
status: http.StatusOK,
|
||||
},
|
||||
{
|
||||
from: "а/б/в",
|
||||
to: "branch/%D0%B0/%D0%B1/%D0%B2",
|
||||
to: "branch/%d0%b0/%d0%b1/%d0%b2",
|
||||
status: http.StatusOK,
|
||||
},
|
||||
{
|
||||
from: "Grüßen/README.md",
|
||||
to: "branch/Gr%C3%BC%C3%9Fen/README.md",
|
||||
to: "branch/Gr%c3%bc%c3%9fen/README.md",
|
||||
status: http.StatusOK,
|
||||
},
|
||||
{
|
||||
|
@ -70,7 +70,7 @@ func TestNonAsciiBranches(t *testing.T) {
|
|||
},
|
||||
{
|
||||
from: "Plus+Is+Not+Space/Файл.md",
|
||||
to: "branch/Plus+Is+Not+Space/%D0%A4%D0%B0%D0%B9%D0%BB.md",
|
||||
to: "branch/Plus+Is+Not+Space/%d0%a4%d0%b0%d0%b9%d0%bb.md",
|
||||
status: http.StatusOK,
|
||||
},
|
||||
{
|
||||
|
@ -80,29 +80,29 @@ func TestNonAsciiBranches(t *testing.T) {
|
|||
},
|
||||
{
|
||||
from: "ブランチ",
|
||||
to: "branch/%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81",
|
||||
to: "branch/%e3%83%96%e3%83%a9%e3%83%b3%e3%83%81",
|
||||
status: http.StatusOK,
|
||||
},
|
||||
|
||||
// Tags
|
||||
{
|
||||
from: "Тэг",
|
||||
to: "tag/%D0%A2%D1%8D%D0%B3",
|
||||
to: "tag/%d0%a2%d1%8d%d0%b3",
|
||||
status: http.StatusOK,
|
||||
},
|
||||
{
|
||||
from: "Ё/人",
|
||||
to: "tag/%D0%81/%E4%BA%BA",
|
||||
to: "tag/%d0%81/%e4%ba%ba",
|
||||
status: http.StatusOK,
|
||||
},
|
||||
{
|
||||
from: "タグ",
|
||||
to: "tag/%E3%82%BF%E3%82%B0",
|
||||
to: "tag/%e3%82%bf%e3%82%b0",
|
||||
status: http.StatusOK,
|
||||
},
|
||||
{
|
||||
from: "タグ/ファイル.md",
|
||||
to: "tag/%E3%82%BF%E3%82%B0/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB.md",
|
||||
to: "tag/%e3%82%bf%e3%82%b0/%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab.md",
|
||||
status: http.StatusOK,
|
||||
},
|
||||
|
||||
|
@ -114,12 +114,12 @@ func TestNonAsciiBranches(t *testing.T) {
|
|||
},
|
||||
{
|
||||
from: "Файл.md",
|
||||
to: "branch/Plus+Is+Not+Space/%D0%A4%D0%B0%D0%B9%D0%BB.md",
|
||||
to: "branch/Plus+Is+Not+Space/%d0%a4%d0%b0%d0%b9%d0%bb.md",
|
||||
status: http.StatusOK,
|
||||
},
|
||||
{
|
||||
from: "ファイル.md",
|
||||
to: "branch/Plus+Is+Not+Space/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB.md",
|
||||
to: "branch/Plus+Is+Not+Space/%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab.md",
|
||||
status: http.StatusNotFound, // it's not on default branch
|
||||
},
|
||||
|
||||
|
@ -131,7 +131,7 @@ func TestNonAsciiBranches(t *testing.T) {
|
|||
},
|
||||
{
|
||||
from: "%E3%82%BF%E3%82%b0",
|
||||
to: "tag/%E3%82%BF%E3%82%B0",
|
||||
to: "tag/%E3%82%BF%E3%82%b0",
|
||||
status: http.StatusOK,
|
||||
},
|
||||
{
|
||||
|
@ -141,12 +141,12 @@ func TestNonAsciiBranches(t *testing.T) {
|
|||
},
|
||||
{
|
||||
from: "%D0%81%2F%E4%BA%BA",
|
||||
to: "tag/%D0%81/%E4%BA%BA",
|
||||
to: "tag/%D0%81%2F%E4%BA%BA",
|
||||
status: http.StatusOK,
|
||||
},
|
||||
{
|
||||
from: "Ё%2F%E4%BA%BA",
|
||||
to: "tag/%D0%81/%E4%BA%BA",
|
||||
to: "tag/%d0%81%2F%E4%BA%BA",
|
||||
status: http.StatusOK,
|
||||
},
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue