123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- package options
- import (
- "fmt"
- "testing"
- "github.com/stretchr/testify/suite"
- "github.com/imgproxy/imgproxy/v3/config"
- )
- type PresetsTestSuite struct{ suite.Suite }
- func (s *PresetsTestSuite) SetupTest() {
- config.Reset()
- // Reset presets
- presets = make(map[string]urlOptions)
- }
- func (s *PresetsTestSuite) TestParsePreset() {
- err := parsePreset("test=resize:fit:100:200/sharpen:2")
- s.Require().NoError(err)
- s.Require().Equal(urlOptions{
- urlOption{Name: "resize", Args: []string{"fit", "100", "200"}},
- urlOption{Name: "sharpen", Args: []string{"2"}},
- }, presets["test"])
- }
- func (s *PresetsTestSuite) TestParsePresetInvalidString() {
- presetStr := "resize:fit:100:200/sharpen:2"
- err := parsePreset(presetStr)
- s.Require().Equal(fmt.Errorf("Invalid preset string: %s", presetStr), err)
- s.Require().Empty(presets)
- }
- func (s *PresetsTestSuite) TestParsePresetEmptyName() {
- presetStr := "=resize:fit:100:200/sharpen:2"
- err := parsePreset(presetStr)
- s.Require().Equal(fmt.Errorf("Empty preset name: %s", presetStr), err)
- s.Require().Empty(presets)
- }
- func (s *PresetsTestSuite) TestParsePresetEmptyValue() {
- presetStr := "test="
- err := parsePreset(presetStr)
- s.Require().Equal(fmt.Errorf("Empty preset value: %s", presetStr), err)
- s.Require().Empty(presets)
- }
- func (s *PresetsTestSuite) TestParsePresetInvalidValue() {
- presetStr := "test=resize:fit:100:200/sharpen:2/blur"
- err := parsePreset(presetStr)
- s.Require().Equal(fmt.Errorf("Invalid preset value: %s", presetStr), err)
- s.Require().Empty(presets)
- }
- func (s *PresetsTestSuite) TestParsePresetEmptyString() {
- err := parsePreset(" ")
- s.Require().NoError(err)
- s.Require().Empty(presets)
- }
- func (s *PresetsTestSuite) TestParsePresetComment() {
- err := parsePreset("# test=resize:fit:100:200/sharpen:2")
- s.Require().NoError(err)
- s.Require().Empty(presets)
- }
- func (s *PresetsTestSuite) TestValidatePresets() {
- presets = map[string]urlOptions{
- "test": {
- urlOption{Name: "resize", Args: []string{"fit", "100", "200"}},
- urlOption{Name: "sharpen", Args: []string{"2"}},
- },
- }
- err := ValidatePresets()
- s.Require().NoError(err)
- }
- func (s *PresetsTestSuite) TestValidatePresetsInvalid() {
- presets = map[string]urlOptions{
- "test": {
- urlOption{Name: "resize", Args: []string{"fit", "-1", "-2"}},
- urlOption{Name: "sharpen", Args: []string{"2"}},
- },
- }
- err := ValidatePresets()
- s.Require().Error(err)
- }
- func TestPresets(t *testing.T) {
- suite.Run(t, new(PresetsTestSuite))
- }
|