mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-14 14:49:32 +01:00
a8fd76557b
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
125 lines
2.5 KiB
Go
125 lines
2.5 KiB
Go
// 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.
|
|
|
|
package codeformat
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestFormatImportsSimple(t *testing.T) {
|
|
formatted, err := formatGoImports([]byte(`
|
|
package codeformat
|
|
|
|
import (
|
|
"github.com/stretchr/testify/assert"
|
|
"testing"
|
|
)
|
|
`))
|
|
|
|
expected := `
|
|
package codeformat
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
`
|
|
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, expected, string(formatted))
|
|
}
|
|
|
|
func TestFormatImportsGroup(t *testing.T) {
|
|
// gofmt/goimports won't group the packages, for example, they produce such code:
|
|
// "bytes"
|
|
// "image"
|
|
// (a blank line)
|
|
// "fmt"
|
|
// "image/color/palette"
|
|
// our formatter does better, and these packages are grouped into one.
|
|
|
|
formatted, err := formatGoImports([]byte(`
|
|
package test
|
|
|
|
import (
|
|
"bytes"
|
|
"fmt"
|
|
"image"
|
|
"image/color"
|
|
|
|
_ "image/gif" // for processing gif images
|
|
_ "image/jpeg" // for processing jpeg images
|
|
_ "image/png" // for processing png images
|
|
|
|
"code.gitea.io/other/package"
|
|
|
|
"code.gitea.io/gitea/modules/setting"
|
|
"code.gitea.io/gitea/modules/util"
|
|
|
|
"xorm.io/the/package"
|
|
|
|
"github.com/issue9/identicon"
|
|
"github.com/nfnt/resize"
|
|
"github.com/oliamb/cutter"
|
|
)
|
|
`))
|
|
|
|
expected := `
|
|
package test
|
|
|
|
import (
|
|
"bytes"
|
|
"fmt"
|
|
"image"
|
|
"image/color"
|
|
|
|
_ "image/gif" // for processing gif images
|
|
_ "image/jpeg" // for processing jpeg images
|
|
_ "image/png" // for processing png images
|
|
|
|
"code.gitea.io/gitea/modules/setting"
|
|
"code.gitea.io/gitea/modules/util"
|
|
|
|
"code.gitea.io/other/package"
|
|
"github.com/issue9/identicon"
|
|
"github.com/nfnt/resize"
|
|
"github.com/oliamb/cutter"
|
|
"xorm.io/the/package"
|
|
)
|
|
`
|
|
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, expected, string(formatted))
|
|
}
|
|
|
|
func TestFormatImportsInvalidComment(t *testing.T) {
|
|
// why we shouldn't write comments between imports: it breaks the grouping of imports
|
|
// for example:
|
|
// "pkg1"
|
|
// "pkg2"
|
|
// // a comment
|
|
// "pkgA"
|
|
// "pkgB"
|
|
// the comment splits the packages into two groups, pkg1/2 are sorted separately, pkgA/B are sorted separately
|
|
// we don't want such code, so the code should be:
|
|
// "pkg1"
|
|
// "pkg2"
|
|
// "pkgA" // a comment
|
|
// "pkgB"
|
|
|
|
_, err := formatGoImports([]byte(`
|
|
package test
|
|
|
|
import (
|
|
"image/jpeg"
|
|
// for processing gif images
|
|
"image/gif"
|
|
)
|
|
`))
|
|
assert.ErrorIs(t, err, errInvalidCommentBetweenImports)
|
|
}
|