mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	1. Add the color on the link to the referenced file, which is the more likely thing the user wants to click 2. Use monospace font on the SHA 3. Tweak text colors 4. Change SHA link to go to the commit instead of the repo root with commit filter set 5. Added the repo name to the file link text 6. Fix broken line numbering rendering
		
			
				
	
	
		
			85 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			3.0 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/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><span class="gh"></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)
 | |
| }
 |