svg_test.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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. "github.com/imgproxy/imgproxy/v3/transport"
  12. )
  13. type SvgTestSuite struct {
  14. idf *imagedata.Factory
  15. suite.Suite
  16. }
  17. func (s *SvgTestSuite) SetupSuite() {
  18. config.Reset()
  19. trc := transport.NewDefaultConfig()
  20. tr, err := transport.New(trc)
  21. s.Require().NoError(err)
  22. fc := fetcher.NewDefaultConfig()
  23. f, err := fetcher.New(tr, fc)
  24. s.Require().NoError(err)
  25. s.idf = imagedata.NewFactory(f)
  26. }
  27. func (s *SvgTestSuite) readTestFile(name string) imagedata.ImageData {
  28. wd, err := os.Getwd()
  29. s.Require().NoError(err)
  30. data, err := os.ReadFile(filepath.Join(wd, "..", "testdata", name))
  31. s.Require().NoError(err)
  32. d, err := s.idf.NewFromBytes(data)
  33. s.Require().NoError(err)
  34. return d
  35. }
  36. func (s *SvgTestSuite) TestSanitize() {
  37. origin := s.readTestFile("test1.svg")
  38. expected := s.readTestFile("test1.sanitized.svg")
  39. actual, err := Sanitize(origin)
  40. s.Require().NoError(err)
  41. s.Require().True(testutil.ReadersEqual(s.T(), expected.Reader(), actual.Reader()))
  42. }
  43. func TestSvg(t *testing.T) {
  44. suite.Run(t, new(SvgTestSuite))
  45. }