presets_test.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package main
  2. import (
  3. "fmt"
  4. "testing"
  5. "github.com/stretchr/testify/assert"
  6. "github.com/stretchr/testify/require"
  7. "github.com/stretchr/testify/suite"
  8. )
  9. type PresetsTestSuite struct{ MainTestSuite }
  10. func (s *PresetsTestSuite) TestParsePreset() {
  11. p := make(presets)
  12. err := parsePreset(p, "test=resize:fit:100:200/sharpen:2")
  13. require.Nil(s.T(), err)
  14. assert.Equal(s.T(), urlOptions{
  15. urlOption{Name: "resize", Args: []string{"fit", "100", "200"}},
  16. urlOption{Name: "sharpen", Args: []string{"2"}},
  17. }, p["test"])
  18. }
  19. func (s *PresetsTestSuite) TestParsePresetInvalidString() {
  20. p := make(presets)
  21. presetStr := "resize:fit:100:200/sharpen:2"
  22. err := parsePreset(p, presetStr)
  23. assert.Equal(s.T(), fmt.Errorf("Invalid preset string: %s", presetStr), err)
  24. assert.Empty(s.T(), p)
  25. }
  26. func (s *PresetsTestSuite) TestParsePresetEmptyName() {
  27. p := make(presets)
  28. presetStr := "=resize:fit:100:200/sharpen:2"
  29. err := parsePreset(p, presetStr)
  30. assert.Equal(s.T(), fmt.Errorf("Empty preset name: %s", presetStr), err)
  31. assert.Empty(s.T(), p)
  32. }
  33. func (s *PresetsTestSuite) TestParsePresetEmptyValue() {
  34. p := make(presets)
  35. presetStr := "test="
  36. err := parsePreset(p, presetStr)
  37. assert.Equal(s.T(), fmt.Errorf("Empty preset value: %s", presetStr), err)
  38. assert.Empty(s.T(), p)
  39. }
  40. func (s *PresetsTestSuite) TestParsePresetInvalidValue() {
  41. p := make(presets)
  42. presetStr := "test=resize:fit:100:200/sharpen:2/blur"
  43. err := parsePreset(p, presetStr)
  44. assert.Equal(s.T(), fmt.Errorf("Invalid preset value: %s", presetStr), err)
  45. assert.Empty(s.T(), p)
  46. }
  47. func (s *PresetsTestSuite) TestParsePresetEmptyString() {
  48. p := make(presets)
  49. err := parsePreset(p, " ")
  50. assert.Nil(s.T(), err)
  51. assert.Empty(s.T(), p)
  52. }
  53. func (s *PresetsTestSuite) TestParsePresetComment() {
  54. p := make(presets)
  55. err := parsePreset(p, "# test=resize:fit:100:200/sharpen:2")
  56. assert.Nil(s.T(), err)
  57. assert.Empty(s.T(), p)
  58. }
  59. func (s *PresetsTestSuite) TestCheckPresets() {
  60. p := presets{
  61. "test": urlOptions{
  62. urlOption{Name: "resize", Args: []string{"fit", "100", "200"}},
  63. urlOption{Name: "sharpen", Args: []string{"2"}},
  64. },
  65. }
  66. err := checkPresets(p)
  67. assert.Nil(s.T(), err)
  68. }
  69. func (s *PresetsTestSuite) TestCheckPresetsInvalid() {
  70. p := presets{
  71. "test": urlOptions{
  72. urlOption{Name: "resize", Args: []string{"fit", "-1", "-2"}},
  73. urlOption{Name: "sharpen", Args: []string{"2"}},
  74. },
  75. }
  76. err := checkPresets(p)
  77. assert.Error(s.T(), err)
  78. }
  79. func TestPresets(t *testing.T) {
  80. suite.Run(t, new(PresetsTestSuite))
  81. }