presets_test.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package optionsparser
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/suite"
  5. )
  6. type PresetsTestSuite struct {
  7. suite.Suite
  8. }
  9. func (s *PresetsTestSuite) newParser(presets ...string) (*Parser, error) {
  10. c := NewDefaultConfig()
  11. c.Presets = presets
  12. return New(&c)
  13. }
  14. func (s *PresetsTestSuite) TestParsePreset() {
  15. f, err := s.newParser("test=resize:fit:100:200/sharpen:2")
  16. s.Require().NoError(err)
  17. s.Require().Equal(urlOptions{
  18. urlOption{Name: "resize", Args: []string{"fit", "100", "200"}},
  19. urlOption{Name: "sharpen", Args: []string{"2"}},
  20. }, f.presets["test"])
  21. }
  22. func (s *PresetsTestSuite) TestParsePresetInvalidString() {
  23. presetStr := "resize:fit:100:200/sharpen:2"
  24. _, err := s.newParser(presetStr)
  25. s.Require().Error(err, "invalid preset string: %s", presetStr)
  26. }
  27. func (s *PresetsTestSuite) TestParsePresetEmptyName() {
  28. presetStr := "=resize:fit:100:200/sharpen:2"
  29. _, err := s.newParser(presetStr)
  30. s.Require().Error(err, "empty preset name: %s", presetStr)
  31. }
  32. func (s *PresetsTestSuite) TestParsePresetEmptyValue() {
  33. presetStr := "test="
  34. _, err := s.newParser(presetStr)
  35. s.Require().Error(err, "empty preset value: %s", presetStr)
  36. }
  37. func (s *PresetsTestSuite) TestParsePresetInvalidValue() {
  38. presetStr := "test=resize:fit:100:200/sharpen:2/blur"
  39. _, err := s.newParser(presetStr)
  40. s.Require().Error(err, "invalid preset value: %s", presetStr)
  41. }
  42. func (s *PresetsTestSuite) TestParsePresetEmptyString() {
  43. f, err := s.newParser(" ")
  44. s.Require().NoError(err)
  45. s.Require().Empty(f.presets)
  46. }
  47. func (s *PresetsTestSuite) TestParsePresetComment() {
  48. f, err := s.newParser("# test=resize:fit:100:200/sharpen:2")
  49. s.Require().NoError(err)
  50. s.Require().Empty(f.presets)
  51. }
  52. func (s *PresetsTestSuite) TestValidatePresets() {
  53. f, err := s.newParser("test=resize:fit:100:200/sharpen:2")
  54. s.Require().NoError(err)
  55. s.Require().NotEmpty(f.presets)
  56. }
  57. func (s *PresetsTestSuite) TestValidatePresetsInvalid() {
  58. _, err := s.newParser("test=resize:fit:-1:-2/sharpen:2")
  59. s.Require().Error(err)
  60. }
  61. func TestPresets(t *testing.T) {
  62. suite.Run(t, new(PresetsTestSuite))
  63. }