You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

tool_test.go 3.2 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. package base
  2. import (
  3. "testing"
  4. "github.com/go-gitea/gitea/modules/setting"
  5. "github.com/stretchr/testify/assert"
  6. "strk.kbt.io/projects/go/libravatar"
  7. )
  8. func TestEncodeMD5(t *testing.T) {
  9. assert.Equal(t, "3858f62230ac3c915f300c664312c63f", EncodeMD5("foobar"))
  10. }
  11. func TestEncodeSha1(t *testing.T) {
  12. assert.Equal(t, "8843d7f92416211de9ebb963ff4ce28125932878", EncodeSha1("foobar"))
  13. }
  14. func TestShortSha(t *testing.T) {
  15. assert.Equal(t, "veryverylo", ShortSha("veryverylong"))
  16. }
  17. // TODO: Test DetectEncoding()
  18. func TestBasicAuthDecode(t *testing.T) {
  19. _, _, err := BasicAuthDecode("?")
  20. assert.Equal(t, "illegal base64 data at input byte 0", err.Error())
  21. user, pass, err := BasicAuthDecode("Zm9vOmJhcg==")
  22. assert.NoError(t, err)
  23. assert.Equal(t, "foo", user)
  24. assert.Equal(t, "bar", pass)
  25. }
  26. func TestBasicAuthEncode(t *testing.T) {
  27. assert.Equal(t, "Zm9vOmJhcg==", BasicAuthEncode("foo", "bar"))
  28. }
  29. func TestGetRandomString(t *testing.T) {
  30. assert.Len(t, GetRandomString(4), 4)
  31. }
  32. // TODO: Test PBKDF2()
  33. // TODO: Test VerifyTimeLimitCode()
  34. // TODO: Test CreateTimeLimitCode()
  35. func TestHashEmail(t *testing.T) {
  36. assert.Equal(t, "d41d8cd98f00b204e9800998ecf8427e", HashEmail(""))
  37. assert.Equal(t, "353cbad9b58e69c96154ad99f92bedc7", HashEmail("gitea@example.com"))
  38. }
  39. func TestAvatarLink(t *testing.T) {
  40. setting.EnableFederatedAvatar = false
  41. setting.LibravatarService = nil
  42. setting.DisableGravatar = true
  43. assert.Equal(t, "/img/avatar_default.png", AvatarLink(""))
  44. setting.DisableGravatar = false
  45. assert.Equal(t, "353cbad9b58e69c96154ad99f92bedc7", AvatarLink("gitea@example.com"))
  46. setting.EnableFederatedAvatar = true
  47. assert.Equal(t, "353cbad9b58e69c96154ad99f92bedc7", AvatarLink("gitea@example.com"))
  48. setting.LibravatarService = libravatar.New()
  49. assert.Equal(t,
  50. "http://cdn.libravatar.org/avatar/353cbad9b58e69c96154ad99f92bedc7",
  51. AvatarLink("gitea@example.com"),
  52. )
  53. }
  54. // TODO: computeTimeDiff()
  55. // TODO: TimeSincePro()
  56. // TODO: timeSince()
  57. // TODO: RawTimeSince()
  58. // TODO: TimeSince()
  59. func TestFileSize(t *testing.T) {
  60. var size int64
  61. size = 512
  62. assert.Equal(t, "512B", FileSize(size))
  63. size = size * 1024
  64. assert.Equal(t, "512KB", FileSize(size))
  65. size = size * 1024
  66. assert.Equal(t, "512MB", FileSize(size))
  67. size = size * 1024
  68. assert.Equal(t, "512GB", FileSize(size))
  69. size = size * 1024
  70. assert.Equal(t, "512TB", FileSize(size))
  71. size = size * 1024
  72. assert.Equal(t, "512PB", FileSize(size))
  73. //size = size * 1024 TODO: Fix bug for EB
  74. //assert.Equal(t, "512EB", FileSize(size))
  75. }
  76. // TODO: Subtract()
  77. func TestEllipsisString(t *testing.T) {
  78. assert.Equal(t, "...", EllipsisString("foobar", 0))
  79. assert.Equal(t, "...", EllipsisString("foobar", 1))
  80. assert.Equal(t, "...", EllipsisString("foobar", 2))
  81. assert.Equal(t, "...", EllipsisString("foobar", 3))
  82. assert.Equal(t, "f...", EllipsisString("foobar", 4))
  83. assert.Equal(t, "fo...", EllipsisString("foobar", 5))
  84. assert.Equal(t, "foobar", EllipsisString("foobar", 6))
  85. assert.Equal(t, "foobar", EllipsisString("foobar", 10))
  86. }
  87. // TODO: TruncateString()
  88. // TODO: StringsToInt64s()
  89. // TODO: Int64sToStrings()
  90. // TODO: Int64sToMap()
  91. // TODO: IsLetter()
  92. // TODO: IsTextFile()
  93. // TODO: IsImageFile()
  94. // TODO: IsPDFFile()