gitea源码

render_link_test.go 1.1KB

123456789101112131415161718192021222324252627
  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/modules/setting"
  7. "github.com/stretchr/testify/assert"
  8. )
  9. func TestResolveLinkRelative(t *testing.T) {
  10. ctx := t.Context()
  11. setting.AppURL = "http://localhost:3000"
  12. assert.Equal(t, "/a", resolveLinkRelative(ctx, "/a", "", "", false))
  13. assert.Equal(t, "/a/b", resolveLinkRelative(ctx, "/a", "b", "", false))
  14. assert.Equal(t, "/a/b/c", resolveLinkRelative(ctx, "/a", "b", "c", false))
  15. assert.Equal(t, "/a/c", resolveLinkRelative(ctx, "/a", "b", "/c", false))
  16. assert.Equal(t, "http://localhost:3000/a", resolveLinkRelative(ctx, "/a", "", "", true))
  17. // some users might have used absolute paths a lot, so if the prefix overlaps and has enough slashes, we should tolerate it
  18. assert.Equal(t, "/owner/repo/foo/owner/repo/foo/bar/xxx", resolveLinkRelative(ctx, "/owner/repo/foo", "", "/owner/repo/foo/bar/xxx", false))
  19. assert.Equal(t, "/owner/repo/foo/bar/xxx", resolveLinkRelative(ctx, "/owner/repo/foo/bar", "", "/owner/repo/foo/bar/xxx", false))
  20. }