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  }