summaryrefslogtreecommitdiffstats
path: root/modules/avatar/identicon/identicon_test.go
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2021-11-20 01:10:41 +0800
committerGitHub <noreply@github.com>2021-11-20 01:10:41 +0800
commita8fd76557b9c878d5765382c02ee15202d1857f9 (patch)
treea3863134791b2cb70eae3a48dcb7013d9285d891 /modules/avatar/identicon/identicon_test.go
parent38347aa16f7cfb32bb984ade4518bd311d0aff12 (diff)
downloadgitea-a8fd76557b9c878d5765382c02ee15202d1857f9.tar.gz
gitea-a8fd76557b9c878d5765382c02ee15202d1857f9.zip
Better builtin avatar generator (#17707)
This PR fixes the builtin avatar generator. 1. The random background color makes some images very dirty. So now we only use white background for avatars. 2. We use left-right mirror avatars to satisfy #14799 3. Fix a small padding error in the algorithm
Diffstat (limited to 'modules/avatar/identicon/identicon_test.go')
-rw-r--r--modules/avatar/identicon/identicon_test.go42
1 files changed, 42 insertions, 0 deletions
diff --git a/modules/avatar/identicon/identicon_test.go b/modules/avatar/identicon/identicon_test.go
new file mode 100644
index 0000000000..ab54183a46
--- /dev/null
+++ b/modules/avatar/identicon/identicon_test.go
@@ -0,0 +1,42 @@
+// Copyright 2021 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+//go:build test_avatar_identicon
+// +build test_avatar_identicon
+
+package identicon
+
+import (
+ "image/color"
+ "image/png"
+ "os"
+ "strconv"
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func TestGenerate(t *testing.T) {
+ dir, _ := os.Getwd()
+ dir = dir + "/testdata"
+ if st, err := os.Stat(dir); err != nil || !st.IsDir() {
+ t.Errorf("can not save generated images to %s", dir)
+ }
+
+ backColor := color.White
+ imgMaker, err := New(64, backColor, DarkColors...)
+ assert.NoError(t, err)
+ for i := 0; i < 100; i++ {
+ s := strconv.Itoa(i)
+ img := imgMaker.Make([]byte(s))
+
+ f, err := os.Create(dir + "/" + s + ".png")
+ if !assert.NoError(t, err) {
+ continue
+ }
+ defer f.Close()
+ err = png.Encode(f, img)
+ assert.NoError(t, err)
+ }
+}