summaryrefslogtreecommitdiffstats
path: root/models/repo_test.go
diff options
context:
space:
mode:
authorSergey Dryabzhinsky <sergey.dryabzhinsky+github@gmail.com>2019-05-30 05:22:26 +0300
committertechknowlogick <techknowlogick@gitea.io>2019-05-29 22:22:26 -0400
commit3fd18838aa5c549842e88b770b8718f693614c75 (patch)
tree614d7aeeb9419f187fa39e9ff7a664afe67ca593 /models/repo_test.go
parentd7494046ac8aaf3b01f0eae0039e38c6c4f9c246 (diff)
downloadgitea-3fd18838aa5c549842e88b770b8718f693614c75.tar.gz
gitea-3fd18838aa5c549842e88b770b8718f693614c75.zip
Repository avatars (#6986)
* Repository avatars - first variant of code from old work for gogs - add migration 87 - add new option in app.ini - add en-US locale string - add new class in repository.less * Add changed index.css, remove unused template name * Update en-us doc about configuration options * Add comments to new functions, add new option to docker app.ini * Add comment for lint * Remove variable, not needed * Fix formatting * Update swagger api template * Check if avatar exists * Fix avatar link/path checks * Typo * TEXT column can't have a default value * Fixes: - remove old avatar file on upload - use ID in name of avatar file - users may upload same files - add simple tests * Fix fmt check * Generate PNG instead of "static" GIF * More informative comment * Fix error message * Update avatar upload checks: - add file size check - add new option - update config docs - add new string to en-us locale * Fixes: - use FileHEader field for check file size - add new test - upload big image * Fix formatting * Update comments * Update log message * Removed wrong style - not needed * Use Sync2 to migrate * Update repos list view - bigger avatar - fix html blocks alignment * A little adjust avatar size * Use small icons for explore/repo list * Use new cool avatar preparation func by @lafriks * Missing changes for new function * Remove unused import, move imports * Missed new option definition in app.ini Add file size check in user/profile avatar upload * Use smaller field length for Avatar * Use session to update repo DB data, update DeleteAvatar - use session too * Fix err variable definition * As suggested @lafriks - return as soon as possible, code readability
Diffstat (limited to 'models/repo_test.go')
-rw-r--r--models/repo_test.go53
1 files changed, 53 insertions, 0 deletions
diff --git a/models/repo_test.go b/models/repo_test.go
index eee3997868..8411536d70 100644
--- a/models/repo_test.go
+++ b/models/repo_test.go
@@ -5,6 +5,11 @@
package models
import (
+ "bytes"
+ "crypto/md5"
+ "fmt"
+ "image"
+ "image/png"
"testing"
"code.gitea.io/gitea/modules/markup"
@@ -158,3 +163,51 @@ func TestTransferOwnership(t *testing.T) {
CheckConsistencyFor(t, &Repository{}, &User{}, &Team{})
}
+
+func TestUploadAvatar(t *testing.T) {
+
+ // Generate image
+ myImage := image.NewRGBA(image.Rect(0, 0, 1, 1))
+ var buff bytes.Buffer
+ png.Encode(&buff, myImage)
+
+ assert.NoError(t, PrepareTestDatabase())
+ repo := AssertExistsAndLoadBean(t, &Repository{ID: 10}).(*Repository)
+
+ err := repo.UploadAvatar(buff.Bytes())
+ assert.NoError(t, err)
+ assert.Equal(t, fmt.Sprintf("%d-%x", 10, md5.Sum(buff.Bytes())), repo.Avatar)
+}
+
+func TestUploadBigAvatar(t *testing.T) {
+
+ // Generate BIG image
+ myImage := image.NewRGBA(image.Rect(0, 0, 5000, 1))
+ var buff bytes.Buffer
+ png.Encode(&buff, myImage)
+
+ assert.NoError(t, PrepareTestDatabase())
+ repo := AssertExistsAndLoadBean(t, &Repository{ID: 10}).(*Repository)
+
+ err := repo.UploadAvatar(buff.Bytes())
+ assert.Error(t, err)
+}
+
+func TestDeleteAvatar(t *testing.T) {
+
+ // Generate image
+ myImage := image.NewRGBA(image.Rect(0, 0, 1, 1))
+ var buff bytes.Buffer
+ png.Encode(&buff, myImage)
+
+ assert.NoError(t, PrepareTestDatabase())
+ repo := AssertExistsAndLoadBean(t, &Repository{ID: 10}).(*Repository)
+
+ err := repo.UploadAvatar(buff.Bytes())
+ assert.NoError(t, err)
+
+ err = repo.DeleteAvatar()
+ assert.NoError(t, err)
+
+ assert.Equal(t, "", repo.Avatar)
+}