utils_test.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. // Copyright 2014 Manu Martinez-Almeida. All rights reserved.
  2. // Use of this source code is governed by a MIT style
  3. // license that can be found in the LICENSE file.
  4. package gin
  5. import (
  6. "testing"
  7. "github.com/stretchr/testify/assert"
  8. )
  9. func init() {
  10. SetMode(TestMode)
  11. }
  12. func TestLastChar(t *testing.T) {
  13. assert.Equal(t, lastChar("hola"), uint8('a'))
  14. assert.Equal(t, lastChar("adios"), uint8('s'))
  15. assert.Panics(t, func() { lastChar("") })
  16. }
  17. func TestParseAccept(t *testing.T) {
  18. parts := parseAccept("text/html , application/xhtml+xml,application/xml;q=0.9, */* ;q=0.8")
  19. assert.Len(t, parts, 4)
  20. assert.Equal(t, parts[0], "text/html")
  21. assert.Equal(t, parts[1], "application/xhtml+xml")
  22. assert.Equal(t, parts[2], "application/xml")
  23. assert.Equal(t, parts[3], "*/*")
  24. }
  25. func TestChooseData(t *testing.T) {
  26. A := "a"
  27. B := "b"
  28. assert.Equal(t, chooseData(A, B), A)
  29. assert.Equal(t, chooseData(nil, B), B)
  30. assert.Panics(t, func() { chooseData(nil, nil) })
  31. }
  32. func TestFilterFlags(t *testing.T) {
  33. result := filterFlags("text/html ")
  34. assert.Equal(t, result, "text/html")
  35. result = filterFlags("text/html;")
  36. assert.Equal(t, result, "text/html")
  37. }
  38. func TestFunctionName(t *testing.T) {
  39. assert.Equal(t, nameOfFunction(somefunction), "github.com/gin-gonic/gin.somefunction")
  40. }
  41. func somefunction() {
  42. }
  43. func TestJoinPaths(t *testing.T) {
  44. assert.Equal(t, joinPaths("", ""), "")
  45. assert.Equal(t, joinPaths("", "/"), "/")
  46. assert.Equal(t, joinPaths("/a", ""), "/a")
  47. assert.Equal(t, joinPaths("/a/", ""), "/a/")
  48. assert.Equal(t, joinPaths("/a/", "/"), "/a/")
  49. assert.Equal(t, joinPaths("/a", "/"), "/a/")
  50. assert.Equal(t, joinPaths("/a", "/hola"), "/a/hola")
  51. assert.Equal(t, joinPaths("/a/", "/hola"), "/a/hola")
  52. assert.Equal(t, joinPaths("/a/", "/hola/"), "/a/hola/")
  53. assert.Equal(t, joinPaths("/a/", "/hola//"), "/a/hola/")
  54. }