diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2021-11-20 01:10:41 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-20 01:10:41 +0800 |
commit | a8fd76557b9c878d5765382c02ee15202d1857f9 (patch) | |
tree | a3863134791b2cb70eae3a48dcb7013d9285d891 /modules/avatar/identicon/identicon_test.go | |
parent | 38347aa16f7cfb32bb984ade4518bd311d0aff12 (diff) | |
download | gitea-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.go | 42 |
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) + } +} |