mirror of
https://github.com/go-gitea/gitea
synced 2024-08-27 12:35:25 +02:00
The permlink in markdown will be rendered as a code preview block, like GitHub Co-authored-by: silverwind <me@silverwind.io>
83 lines
2.9 KiB
Go
83 lines
2.9 KiB
Go
// 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/services/contexttest"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestProcessorHelperCodePreview(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="muted" rel="nofollow">/README.md</a>
|
|
repo.code_preview_line_from_to:1,2,<a href="/user2/repo1/src/commit/65f1bf27bc3bf70f64657658635e66094edbcb4d" 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"><code class="code-inner"><span class="gh"># repo1</code></td>
|
|
</tr><tr>
|
|
<td class="lines-num"><span data-line-number="2"></span></td>
|
|
<td class="lines-code chroma"><code class="code-inner"></span><span class="gh"></span></code></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="muted" rel="nofollow">/README.md</a>
|
|
repo.code_preview_line_in:1,<a href="/user2/repo1/src/commit/65f1bf27bc3bf70f64657658635e66094edbcb4d" 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"><code class="code-inner"><span class="gh"># repo1</code></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.ErrorContains(t, err, "no permission")
|
|
}
|