mirror of https://github.com/go-gitea/gitea.git
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.
84 lines
3.0 KiB
84 lines
3.0 KiB
// Copyright 2024 The Gitea Authors. All rights reserved. |
|
// SPDX-License-Identifier: MIT |
|
|
|
package markup |
|
|
|
import ( |
|
"testing" |
|
|
|
"code.gitea.io/gitea/models/unittest" |
|
"code.gitea.io/gitea/modules/markup" |
|
"code.gitea.io/gitea/modules/templates" |
|
"code.gitea.io/gitea/modules/util" |
|
"code.gitea.io/gitea/services/contexttest" |
|
|
|
"github.com/stretchr/testify/assert" |
|
) |
|
|
|
func TestRenderHelperCodePreview(t *testing.T) { |
|
assert.NoError(t, unittest.PrepareTestDatabase()) |
|
|
|
ctx, _ := contexttest.MockContext(t, "/", contexttest.MockContextOption{Render: templates.HTMLRenderer()}) |
|
htm, err := renderRepoFileCodePreview(ctx, markup.RenderCodePreviewOptions{ |
|
FullURL: "http://full", |
|
OwnerName: "user2", |
|
RepoName: "repo1", |
|
CommitID: "65f1bf27bc3bf70f64657658635e66094edbcb4d", |
|
FilePath: "README.md", |
|
LineStart: 1, |
|
LineStop: 2, |
|
}) |
|
assert.NoError(t, err) |
|
assert.Equal(t, `<div class="code-preview-container file-content"> |
|
<div class="code-preview-header"> |
|
<a href="http://full" class="tw-font-semibold" rel="nofollow">repo1/README.md</a> |
|
repo.code_preview_line_from_to:1,2,<a href="/user2/repo1/commit/65f1bf27bc3bf70f64657658635e66094edbcb4d" class="muted tw-font-mono tw-text-text" rel="nofollow">65f1bf27bc</a> |
|
</div> |
|
<table class="file-view"> |
|
<tbody><tr> |
|
<td class="lines-num"><span data-line-number="1"></span></td> |
|
<td class="lines-code chroma"><div class="code-inner"><span class="gh"># repo1</div></td> |
|
</tr><tr> |
|
<td class="lines-num"><span data-line-number="2"></span></td> |
|
<td class="lines-code chroma"><div class="code-inner"></span></div></td> |
|
</tr></tbody> |
|
</table> |
|
</div> |
|
`, string(htm)) |
|
|
|
ctx, _ = contexttest.MockContext(t, "/", contexttest.MockContextOption{Render: templates.HTMLRenderer()}) |
|
htm, err = renderRepoFileCodePreview(ctx, markup.RenderCodePreviewOptions{ |
|
FullURL: "http://full", |
|
OwnerName: "user2", |
|
RepoName: "repo1", |
|
CommitID: "65f1bf27bc3bf70f64657658635e66094edbcb4d", |
|
FilePath: "README.md", |
|
LineStart: 1, |
|
}) |
|
assert.NoError(t, err) |
|
assert.Equal(t, `<div class="code-preview-container file-content"> |
|
<div class="code-preview-header"> |
|
<a href="http://full" class="tw-font-semibold" rel="nofollow">repo1/README.md</a> |
|
repo.code_preview_line_in:1,<a href="/user2/repo1/commit/65f1bf27bc3bf70f64657658635e66094edbcb4d" class="muted tw-font-mono tw-text-text" rel="nofollow">65f1bf27bc</a> |
|
</div> |
|
<table class="file-view"> |
|
<tbody><tr> |
|
<td class="lines-num"><span data-line-number="1"></span></td> |
|
<td class="lines-code chroma"><div class="code-inner"><span class="gh"># repo1</div></td> |
|
</tr></tbody> |
|
</table> |
|
</div> |
|
`, string(htm)) |
|
|
|
ctx, _ = contexttest.MockContext(t, "/", contexttest.MockContextOption{Render: templates.HTMLRenderer()}) |
|
_, err = renderRepoFileCodePreview(ctx, markup.RenderCodePreviewOptions{ |
|
FullURL: "http://full", |
|
OwnerName: "user15", |
|
RepoName: "big_test_private_1", |
|
CommitID: "65f1bf27bc3bf70f64657658635e66094edbcb4d", |
|
FilePath: "README.md", |
|
LineStart: 1, |
|
LineStop: 10, |
|
}) |
|
assert.ErrorIs(t, err, util.ErrPermissionDenied) |
|
}
|
|
|