interactive_test.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package cmd
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. )
  6. func TestExtractFilenames(t *testing.T) {
  7. // Unix style paths
  8. input := ` some preamble
  9. ./relative\ path/one.png inbetween1 ./not a valid two.jpg inbetween2 ./1.svg
  10. /unescaped space /three.jpeg inbetween3 /valid\ path/dir/four.png "./quoted with spaces/five.JPG`
  11. res := extractFileNames(input)
  12. assert.Len(t, res, 5)
  13. assert.Contains(t, res[0], "one.png")
  14. assert.Contains(t, res[1], "two.jpg")
  15. assert.Contains(t, res[2], "three.jpeg")
  16. assert.Contains(t, res[3], "four.png")
  17. assert.Contains(t, res[4], "five.JPG")
  18. assert.NotContains(t, res[4], '"')
  19. assert.NotContains(t, res, "inbetween1")
  20. assert.NotContains(t, res, "./1.svg")
  21. // Windows style paths
  22. input = ` some preamble
  23. c:/users/jdoe/one.png inbetween1 c:/program files/someplace/two.jpg inbetween2
  24. /absolute/nospace/three.jpeg inbetween3 /absolute/with space/four.png inbetween4
  25. ./relative\ path/five.JPG inbetween5 "./relative with/spaces/six.png inbetween6
  26. d:\path with\spaces\seven.JPEG inbetween7 c:\users\jdoe\eight.png inbetween8
  27. d:\program files\someplace\nine.png inbetween9 "E:\program files\someplace\ten.PNG some ending
  28. `
  29. res = extractFileNames(input)
  30. assert.Len(t, res, 10)
  31. assert.NotContains(t, res, "inbetween2")
  32. assert.Contains(t, res[0], "one.png")
  33. assert.Contains(t, res[0], "c:")
  34. assert.Contains(t, res[1], "two.jpg")
  35. assert.Contains(t, res[1], "c:")
  36. assert.Contains(t, res[2], "three.jpeg")
  37. assert.Contains(t, res[3], "four.png")
  38. assert.Contains(t, res[4], "five.JPG")
  39. assert.Contains(t, res[5], "six.png")
  40. assert.Contains(t, res[6], "seven.JPEG")
  41. assert.Contains(t, res[6], "d:")
  42. assert.Contains(t, res[7], "eight.png")
  43. assert.Contains(t, res[7], "c:")
  44. assert.Contains(t, res[8], "nine.png")
  45. assert.Contains(t, res[8], "d:")
  46. assert.Contains(t, res[9], "ten.PNG")
  47. assert.Contains(t, res[9], "E:")
  48. }