mirror of
https://github.com/imgproxy/imgproxy.git
synced 2026-04-23 19:41:06 +02:00
91 lines
1.6 KiB
Go
91 lines
1.6 KiB
Go
package processing_test
|
|
|
|
import (
|
|
"bytes"
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/suite"
|
|
)
|
|
|
|
type PaddingTestSuite struct {
|
|
testSuite
|
|
}
|
|
|
|
type paddingTestCase struct {
|
|
dpr float64
|
|
paddingTop int
|
|
paddingRight int
|
|
paddingBottom int
|
|
paddingLeft int
|
|
}
|
|
|
|
func (r paddingTestCase) ImagePath() string {
|
|
return "geometry.png"
|
|
}
|
|
|
|
func (r paddingTestCase) URLOptions() string {
|
|
return fmt.Sprintf(
|
|
"dpr:%f/padding:%d:%d:%d:%d/background:f00/enlarge:1", // enlarge:1 for dpr > 1
|
|
r.dpr,
|
|
r.paddingTop,
|
|
r.paddingRight,
|
|
r.paddingBottom,
|
|
r.paddingLeft,
|
|
)
|
|
}
|
|
|
|
func (r paddingTestCase) String() string {
|
|
var b bytes.Buffer
|
|
|
|
fmt.Fprintf(&b, "dpr_%g", r.dpr)
|
|
fmt.Fprintf(&b, "_pad_%d_%d_%d_%d", r.paddingTop, r.paddingRight, r.paddingBottom, r.paddingLeft)
|
|
|
|
return b.String()
|
|
}
|
|
|
|
func (s *PaddingTestSuite) TestPadding() {
|
|
testCases := []testCase[paddingTestCase]{
|
|
{
|
|
opts: paddingTestCase{
|
|
dpr: 0.5,
|
|
paddingLeft: 10,
|
|
paddingTop: 20,
|
|
paddingRight: 30,
|
|
paddingBottom: 40,
|
|
},
|
|
outSize: testSize{120, 80},
|
|
},
|
|
{
|
|
opts: paddingTestCase{
|
|
dpr: 1,
|
|
paddingLeft: 10,
|
|
paddingTop: 20,
|
|
paddingRight: 30,
|
|
paddingBottom: 40,
|
|
},
|
|
outSize: testSize{240, 160},
|
|
},
|
|
{
|
|
opts: paddingTestCase{
|
|
dpr: 2,
|
|
paddingLeft: 10,
|
|
paddingTop: 20,
|
|
paddingRight: 30,
|
|
paddingBottom: 40,
|
|
},
|
|
outSize: testSize{480, 320},
|
|
},
|
|
}
|
|
|
|
for _, tc := range testCases {
|
|
s.Run(tc.opts.String(), func() {
|
|
s.processImageAndCheck(tc)
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestPadding(t *testing.T) {
|
|
suite.Run(t, new(PaddingTestSuite))
|
|
}
|