|
| 1 | +package base |
| 2 | + |
| 3 | +import ( |
| 4 | + "testing" |
| 5 | + |
| 6 | + "github.com/go-gitea/gitea/modules/setting" |
| 7 | + "github.com/stretchr/testify/assert" |
| 8 | + "strk.kbt.io/projects/go/libravatar" |
| 9 | +) |
| 10 | + |
| 11 | +func TestEncodeMD5(t *testing.T) { |
| 12 | + assert.Equal(t, |
| 13 | + "3858f62230ac3c915f300c664312c63f", |
| 14 | + EncodeMD5("foobar"), |
| 15 | + ) |
| 16 | +} |
| 17 | + |
| 18 | +func TestEncodeSha1(t *testing.T) { |
| 19 | + assert.Equal(t, |
| 20 | + "8843d7f92416211de9ebb963ff4ce28125932878", |
| 21 | + EncodeSha1("foobar"), |
| 22 | + ) |
| 23 | +} |
| 24 | + |
| 25 | +func TestShortSha(t *testing.T) { |
| 26 | + assert.Equal(t, "veryverylo", ShortSha("veryverylong")) |
| 27 | +} |
| 28 | + |
| 29 | +// TODO: Test DetectEncoding() |
| 30 | + |
| 31 | +func TestBasicAuthDecode(t *testing.T) { |
| 32 | + _, _, err := BasicAuthDecode("?") |
| 33 | + assert.Equal(t, "illegal base64 data at input byte 0", err.Error()) |
| 34 | + |
| 35 | + user, pass, err := BasicAuthDecode("Zm9vOmJhcg==") |
| 36 | + assert.NoError(t, err) |
| 37 | + assert.Equal(t, "foo", user) |
| 38 | + assert.Equal(t, "bar", pass) |
| 39 | +} |
| 40 | + |
| 41 | +func TestBasicAuthEncode(t *testing.T) { |
| 42 | + assert.Equal(t, "Zm9vOmJhcg==", BasicAuthEncode("foo", "bar")) |
| 43 | +} |
| 44 | + |
| 45 | +func TestGetRandomString(t *testing.T) { |
| 46 | + assert.Len(t, GetRandomString(4), 4) |
| 47 | +} |
| 48 | + |
| 49 | +// TODO: Test PBKDF2() |
| 50 | +// TODO: Test VerifyTimeLimitCode() |
| 51 | +// TODO: Test CreateTimeLimitCode() |
| 52 | + |
| 53 | +func TestHashEmail(t *testing.T) { |
| 54 | + assert.Equal(t, |
| 55 | + "d41d8cd98f00b204e9800998ecf8427e", |
| 56 | + HashEmail(""), |
| 57 | + ) |
| 58 | + assert.Equal(t, |
| 59 | + "353cbad9b58e69c96154ad99f92bedc7", |
| 60 | + |
| 61 | + ) |
| 62 | +} |
| 63 | + |
| 64 | +func TestAvatarLink(t *testing.T) { |
| 65 | + setting.EnableFederatedAvatar = false |
| 66 | + setting.LibravatarService = nil |
| 67 | + setting.DisableGravatar = true |
| 68 | + |
| 69 | + assert.Equal(t, "/img/avatar_default.png", AvatarLink("")) |
| 70 | + |
| 71 | + setting.DisableGravatar = false |
| 72 | + assert.Equal(t, |
| 73 | + "353cbad9b58e69c96154ad99f92bedc7", |
| 74 | + |
| 75 | + ) |
| 76 | + |
| 77 | + setting.EnableFederatedAvatar = true |
| 78 | + assert.Equal(t, |
| 79 | + "353cbad9b58e69c96154ad99f92bedc7", |
| 80 | + |
| 81 | + ) |
| 82 | + setting.LibravatarService = libravatar.New() |
| 83 | + assert.Equal(t, |
| 84 | + "http://cdn.libravatar.org/avatar/353cbad9b58e69c96154ad99f92bedc7", |
| 85 | + |
| 86 | + ) |
| 87 | +} |
| 88 | + |
| 89 | +// TODO: computeTimeDiff() |
| 90 | +// TODO: TimeSincePro() |
| 91 | +// TODO: timeSince() |
| 92 | +// TODO: RawTimeSince() |
| 93 | +// TODO: TimeSince() |
| 94 | + |
| 95 | +func TestFileSize(t *testing.T) { |
| 96 | + var size int64 |
| 97 | + size = 512 |
| 98 | + assert.Equal(t, "512B", FileSize(size)) |
| 99 | + size = size * 1024 |
| 100 | + assert.Equal(t, "512KB", FileSize(size)) |
| 101 | + size = size * 1024 |
| 102 | + assert.Equal(t, "512MB", FileSize(size)) |
| 103 | + size = size * 1024 |
| 104 | + assert.Equal(t, "512GB", FileSize(size)) |
| 105 | + size = size * 1024 |
| 106 | + assert.Equal(t, "512TB", FileSize(size)) |
| 107 | + size = size * 1024 |
| 108 | + assert.Equal(t, "512PB", FileSize(size)) |
| 109 | + //size = size * 1024 TODO: Fix bug for EB |
| 110 | + //assert.Equal(t, "512EB", FileSize(size)) |
| 111 | +} |
| 112 | + |
| 113 | +// TODO: Subtract() |
| 114 | + |
| 115 | +func TestEllipsisString(t *testing.T) { |
| 116 | + assert.Equal(t, "...", EllipsisString("foobar", 0)) |
| 117 | + assert.Equal(t, "...", EllipsisString("foobar", 1)) |
| 118 | + assert.Equal(t, "...", EllipsisString("foobar", 2)) |
| 119 | + assert.Equal(t, "...", EllipsisString("foobar", 3)) |
| 120 | + assert.Equal(t, "f...", EllipsisString("foobar", 4)) |
| 121 | + assert.Equal(t, "fo...", EllipsisString("foobar", 5)) |
| 122 | + assert.Equal(t, "foobar", EllipsisString("foobar", 6)) |
| 123 | + assert.Equal(t, "foobar", EllipsisString("foobar", 10)) |
| 124 | +} |
| 125 | + |
| 126 | +func TestTruncateString(t *testing.T) { |
| 127 | + assert.Equal(t, "", TruncateString("foobar", 0)) |
| 128 | + assert.Equal(t, "f", TruncateString("foobar", 1)) |
| 129 | + assert.Equal(t, "fo", TruncateString("foobar", 2)) |
| 130 | + assert.Equal(t, "foo", TruncateString("foobar", 3)) |
| 131 | + assert.Equal(t, "foob", TruncateString("foobar", 4)) |
| 132 | + assert.Equal(t, "fooba", TruncateString("foobar", 5)) |
| 133 | + assert.Equal(t, "foobar", TruncateString("foobar", 6)) |
| 134 | + assert.Equal(t, "foobar", TruncateString("foobar", 7)) |
| 135 | +} |
| 136 | + |
| 137 | +func TestStringsToInt64s(t *testing.T) { |
| 138 | + assert.Equal(t, []int64{}, StringsToInt64s([]string{})) |
| 139 | + assert.Equal(t, |
| 140 | + []int64{1, 4, 16, 64, 256}, |
| 141 | + StringsToInt64s([]string{"1", "4", "16", "64", "256"}), |
| 142 | + ) |
| 143 | + |
| 144 | + // TODO: StringsToInt64s should return ([]int64, error) |
| 145 | + assert.Equal(t, []int64{-1, 0, 0}, StringsToInt64s([]string{"-1", "a", "$"})) |
| 146 | +} |
| 147 | + |
| 148 | +func TestInt64sToStrings(t *testing.T) { |
| 149 | + assert.Equal(t, []string{}, Int64sToStrings([]int64{})) |
| 150 | + assert.Equal(t, |
| 151 | + []string{"1", "4", "16", "64", "256"}, |
| 152 | + Int64sToStrings([]int64{1, 4, 16, 64, 256}), |
| 153 | + ) |
| 154 | +} |
| 155 | + |
| 156 | +func TestInt64sToMap(t *testing.T) { |
| 157 | + assert.Equal(t, map[int64]bool{}, Int64sToMap([]int64{})) |
| 158 | + assert.Equal(t, |
| 159 | + map[int64]bool{1: true, 4: true, 16: true}, |
| 160 | + Int64sToMap([]int64{1, 4, 16}), |
| 161 | + ) |
| 162 | +} |
| 163 | + |
| 164 | +func TestIsLetter(t *testing.T) { |
| 165 | + assert.True(t, IsLetter('a')) |
| 166 | + assert.True(t, IsLetter('e')) |
| 167 | + assert.True(t, IsLetter('q')) |
| 168 | + assert.True(t, IsLetter('z')) |
| 169 | + assert.True(t, IsLetter('A')) |
| 170 | + assert.True(t, IsLetter('E')) |
| 171 | + assert.True(t, IsLetter('Q')) |
| 172 | + assert.True(t, IsLetter('Z')) |
| 173 | + assert.True(t, IsLetter('_')) |
| 174 | + assert.False(t, IsLetter('-')) |
| 175 | + assert.False(t, IsLetter('1')) |
| 176 | + assert.False(t, IsLetter('$')) |
| 177 | +} |
| 178 | + |
| 179 | +func TestIsTextFile(t *testing.T) { |
| 180 | + assert.True(t, IsTextFile([]byte{})) |
| 181 | + assert.True(t, IsTextFile([]byte("lorem ipsum"))) |
| 182 | +} |
| 183 | + |
| 184 | +// TODO: IsImageFile(), currently no idea how to test |
| 185 | +// TODO: IsPDFFile(), currently no idea how to test |
0 commit comments