svg_test.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package svg
  2. import (
  3. "os"
  4. "path/filepath"
  5. "testing"
  6. "github.com/stretchr/testify/suite"
  7. "github.com/imgproxy/imgproxy/v3/config"
  8. "github.com/imgproxy/imgproxy/v3/fetcher"
  9. "github.com/imgproxy/imgproxy/v3/imagedata"
  10. "github.com/imgproxy/imgproxy/v3/testutil"
  11. )
  12. type SvgTestSuite struct {
  13. idf *imagedata.Factory
  14. suite.Suite
  15. }
  16. func (s *SvgTestSuite) SetupSuite() {
  17. config.Reset()
  18. c := fetcher.NewDefaultConfig()
  19. f, err := fetcher.New(&c)
  20. s.Require().NoError(err)
  21. s.idf = imagedata.NewFactory(f)
  22. }
  23. func (s *SvgTestSuite) readTestFile(name string) imagedata.ImageData {
  24. wd, err := os.Getwd()
  25. s.Require().NoError(err)
  26. data, err := os.ReadFile(filepath.Join(wd, "..", "testdata", name))
  27. s.Require().NoError(err)
  28. d, err := s.idf.NewFromBytes(data)
  29. s.Require().NoError(err)
  30. return d
  31. }
  32. func (s *SvgTestSuite) TestSanitize() {
  33. origin := s.readTestFile("test1.svg")
  34. expected := s.readTestFile("test1.sanitized.svg")
  35. actual, err := Sanitize(origin)
  36. s.Require().NoError(err)
  37. s.Require().True(testutil.ReadersEqual(s.T(), expected.Reader(), actual.Reader()))
  38. }
  39. func TestSvg(t *testing.T) {
  40. suite.Run(t, new(SvgTestSuite))
  41. }