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.

processorhelper_codepreview_test.go 2.9KB

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