| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 | package optionsimport (	"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))}
 |