code.gitea.io/gitea@v1.22.3/services/markup/processorhelper_codepreview_test.go (about) 1 // Copyright 2024 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package markup 5 6 import ( 7 "testing" 8 9 "code.gitea.io/gitea/models/unittest" 10 "code.gitea.io/gitea/modules/markup" 11 "code.gitea.io/gitea/modules/templates" 12 "code.gitea.io/gitea/services/contexttest" 13 14 "github.com/stretchr/testify/assert" 15 ) 16 17 func TestProcessorHelperCodePreview(t *testing.T) { 18 assert.NoError(t, unittest.PrepareTestDatabase()) 19 20 ctx, _ := contexttest.MockContext(t, "/", contexttest.MockContextOption{Render: templates.HTMLRenderer()}) 21 htm, err := renderRepoFileCodePreview(ctx, markup.RenderCodePreviewOptions{ 22 FullURL: "http://full", 23 OwnerName: "user2", 24 RepoName: "repo1", 25 CommitID: "65f1bf27bc3bf70f64657658635e66094edbcb4d", 26 FilePath: "/README.md", 27 LineStart: 1, 28 LineStop: 2, 29 }) 30 assert.NoError(t, err) 31 assert.Equal(t, `<div class="code-preview-container file-content"> 32 <div class="code-preview-header"> 33 <a href="http://full" class="muted" rel="nofollow">/README.md</a> 34 repo.code_preview_line_from_to:1,2,<a href="/user2/repo1/src/commit/65f1bf27bc3bf70f64657658635e66094edbcb4d" rel="nofollow">65f1bf27bc</a> 35 </div> 36 <table class="file-view"> 37 <tbody><tr> 38 <td class="lines-num"><span data-line-number="1"></span></td> 39 <td class="lines-code chroma"><div class="code-inner"><span class="gh"># repo1</div></td> 40 </tr><tr> 41 <td class="lines-num"><span data-line-number="2"></span></td> 42 <td class="lines-code chroma"><div class="code-inner"></span><span class="gh"></span></div></td> 43 </tr></tbody> 44 </table> 45 </div> 46 `, string(htm)) 47 48 ctx, _ = contexttest.MockContext(t, "/", contexttest.MockContextOption{Render: templates.HTMLRenderer()}) 49 htm, err = renderRepoFileCodePreview(ctx, markup.RenderCodePreviewOptions{ 50 FullURL: "http://full", 51 OwnerName: "user2", 52 RepoName: "repo1", 53 CommitID: "65f1bf27bc3bf70f64657658635e66094edbcb4d", 54 FilePath: "/README.md", 55 LineStart: 1, 56 }) 57 assert.NoError(t, err) 58 assert.Equal(t, `<div class="code-preview-container file-content"> 59 <div class="code-preview-header"> 60 <a href="http://full" class="muted" rel="nofollow">/README.md</a> 61 repo.code_preview_line_in:1,<a href="/user2/repo1/src/commit/65f1bf27bc3bf70f64657658635e66094edbcb4d" rel="nofollow">65f1bf27bc</a> 62 </div> 63 <table class="file-view"> 64 <tbody><tr> 65 <td class="lines-num"><span data-line-number="1"></span></td> 66 <td class="lines-code chroma"><div class="code-inner"><span class="gh"># repo1</div></td> 67 </tr></tbody> 68 </table> 69 </div> 70 `, string(htm)) 71 72 ctx, _ = contexttest.MockContext(t, "/", contexttest.MockContextOption{Render: templates.HTMLRenderer()}) 73 _, err = renderRepoFileCodePreview(ctx, markup.RenderCodePreviewOptions{ 74 FullURL: "http://full", 75 OwnerName: "user15", 76 RepoName: "big_test_private_1", 77 CommitID: "65f1bf27bc3bf70f64657658635e66094edbcb4d", 78 FilePath: "/README.md", 79 LineStart: 1, 80 LineStop: 10, 81 }) 82 assert.ErrorContains(t, err, "no permission") 83 }