mirror of https://github.com/go-gitea/gitea
Test views of LFS files (#22196)
parent
ea5a752ee6
commit
a2779def36
@ -0,0 +1,32 @@ |
|||||||
|
# These are the LFS objects in user2/lfs.git |
||||||
|
- |
||||||
|
|
||||||
|
id: 1 |
||||||
|
oid: 0b8d8b5f15046343fd32f451df93acc2bdd9e6373be478b968e4cad6b6647351 |
||||||
|
size: 107 |
||||||
|
repository_id: 54 |
||||||
|
created_unix: 1671607299 |
||||||
|
|
||||||
|
- |
||||||
|
|
||||||
|
id: 2 |
||||||
|
oid: 2eccdb43825d2a49d99d542daa20075cff1d97d9d2349a8977efe9c03661737c |
||||||
|
size: 107 |
||||||
|
repository_id: 54 |
||||||
|
created_unix: 1671607299 |
||||||
|
|
||||||
|
- |
||||||
|
|
||||||
|
id: 3 |
||||||
|
oid: 7b6b2c88dba9f760a1a58469b67fee2b698ef7e9399c4ca4f34a14ccbe39f623 |
||||||
|
size: 27 |
||||||
|
repository_id: 54 |
||||||
|
created_unix: 1671607299 |
||||||
|
|
||||||
|
- |
||||||
|
|
||||||
|
id: 4 |
||||||
|
oid: 9d172e5c64b4f0024b9901ec6afe9ea052f3c9b6ff9f4b07956d8c48c86fca82 |
||||||
|
size: 25 |
||||||
|
repository_id: 54 |
||||||
|
created_unix: 1671607299 |
After Width: | Height: | Size: 107 B |
Binary file not shown.
@ -0,0 +1 @@ |
|||||||
|
# Testing documents in LFS |
@ -0,0 +1 @@ |
|||||||
|
# Testing READMEs in LFS |
@ -0,0 +1 @@ |
|||||||
|
ref: refs/heads/master |
@ -0,0 +1,4 @@ |
|||||||
|
[core] |
||||||
|
repositoryformatversion = 0 |
||||||
|
filemode = true |
||||||
|
bare = true |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1 @@ |
|||||||
|
73cf03db6ece34e12bf91e8853dc58f678f2f82d |
@ -0,0 +1,83 @@ |
|||||||
|
// Copyright 2022 The Gitea Authors. All rights reserved.
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
package integration |
||||||
|
|
||||||
|
import ( |
||||||
|
"net/http" |
||||||
|
"testing" |
||||||
|
|
||||||
|
"code.gitea.io/gitea/tests" |
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert" |
||||||
|
) |
||||||
|
|
||||||
|
// check that files stored in LFS render properly in the web UI
|
||||||
|
func TestLFSRender(t *testing.T) { |
||||||
|
defer tests.PrepareTestEnv(t)() |
||||||
|
|
||||||
|
session := loginUser(t, "user2") |
||||||
|
|
||||||
|
// check that a markup file is flagged with "Stored in Git LFS" and shows its text
|
||||||
|
t.Run("Markup", func(t *testing.T) { |
||||||
|
defer tests.PrintCurrentTest(t)() |
||||||
|
|
||||||
|
req := NewRequest(t, "GET", "/user2/lfs/src/branch/master/CONTRIBUTING.md") |
||||||
|
resp := session.MakeRequest(t, req, http.StatusOK) |
||||||
|
|
||||||
|
doc := NewHTMLParser(t, resp.Body).doc |
||||||
|
|
||||||
|
fileInfo := doc.Find("div.file-info-entry").First().Text() |
||||||
|
assert.Contains(t, fileInfo, "Stored with Git LFS") |
||||||
|
|
||||||
|
content := doc.Find("div.file-view").Text() |
||||||
|
assert.Contains(t, content, "Testing documents in LFS") |
||||||
|
}) |
||||||
|
|
||||||
|
// check that an image is flagged with "Stored in Git LFS" and renders inline
|
||||||
|
t.Run("Image", func(t *testing.T) { |
||||||
|
defer tests.PrintCurrentTest(t)() |
||||||
|
|
||||||
|
req := NewRequest(t, "GET", "/user2/lfs/src/branch/master/jpeg.jpg") |
||||||
|
resp := session.MakeRequest(t, req, http.StatusOK) |
||||||
|
|
||||||
|
doc := NewHTMLParser(t, resp.Body).doc |
||||||
|
|
||||||
|
fileInfo := doc.Find("div.file-info-entry").First().Text() |
||||||
|
assert.Contains(t, fileInfo, "Stored with Git LFS") |
||||||
|
|
||||||
|
src, exists := doc.Find(".file-view img").Attr("src") |
||||||
|
assert.True(t, exists, "The image should be in an <img> tag") |
||||||
|
assert.Equal(t, "/user2/lfs/media/branch/master/jpeg.jpg", src, "The image should use the /media link because it's in LFS") |
||||||
|
}) |
||||||
|
|
||||||
|
// check that a binary file is flagged with "Stored in Git LFS" and renders a /media/ link instead of a /raw/ link
|
||||||
|
t.Run("Binary", func(t *testing.T) { |
||||||
|
defer tests.PrintCurrentTest(t)() |
||||||
|
|
||||||
|
req := NewRequest(t, "GET", "/user2/lfs/src/branch/master/crypt.bin") |
||||||
|
resp := session.MakeRequest(t, req, http.StatusOK) |
||||||
|
|
||||||
|
doc := NewHTMLParser(t, resp.Body).doc |
||||||
|
|
||||||
|
fileInfo := doc.Find("div.file-info-entry").First().Text() |
||||||
|
assert.Contains(t, fileInfo, "Stored with Git LFS") |
||||||
|
|
||||||
|
rawLink, exists := doc.Find("div.file-view > div.view-raw > a").Attr("href") |
||||||
|
assert.True(t, exists, "Download link should render instead of content because this is a binary file") |
||||||
|
assert.Equal(t, "/user2/lfs/media/branch/master/crypt.bin", rawLink, "The download link should use the proper /media link because it's in LFS") |
||||||
|
}) |
||||||
|
|
||||||
|
// check that a directory with a README file shows its text
|
||||||
|
t.Run("Readme", func(t *testing.T) { |
||||||
|
defer tests.PrintCurrentTest(t)() |
||||||
|
|
||||||
|
req := NewRequest(t, "GET", "/user2/lfs/src/branch/master/subdir") |
||||||
|
resp := session.MakeRequest(t, req, http.StatusOK) |
||||||
|
|
||||||
|
doc := NewHTMLParser(t, resp.Body).doc |
||||||
|
|
||||||
|
content := doc.Find("div.file-view").Text() |
||||||
|
assert.Contains(t, content, "Testing READMEs in LFS") |
||||||
|
}) |
||||||
|
} |
Loading…
Reference in new issue