form_test.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. package httputils // import "github.com/docker/docker/api/server/httputils"
  2. import (
  3. "net/http"
  4. "net/url"
  5. "testing"
  6. )
  7. func TestBoolValue(t *testing.T) {
  8. cases := map[string]bool{
  9. "": false,
  10. "0": false,
  11. "no": false,
  12. "false": false,
  13. "none": false,
  14. "1": true,
  15. "yes": true,
  16. "true": true,
  17. "one": true,
  18. "100": true,
  19. }
  20. for c, e := range cases {
  21. v := url.Values{}
  22. v.Set("test", c)
  23. r, _ := http.NewRequest(http.MethodPost, "", nil)
  24. r.Form = v
  25. a := BoolValue(r, "test")
  26. if a != e {
  27. t.Fatalf("Value: %s, expected: %v, actual: %v", c, e, a)
  28. }
  29. }
  30. }
  31. func TestBoolValueOrDefault(t *testing.T) {
  32. r, _ := http.NewRequest(http.MethodGet, "", nil)
  33. if !BoolValueOrDefault(r, "queryparam", true) {
  34. t.Fatal("Expected to get true default value, got false")
  35. }
  36. v := url.Values{}
  37. v.Set("param", "")
  38. r, _ = http.NewRequest(http.MethodGet, "", nil)
  39. r.Form = v
  40. if BoolValueOrDefault(r, "param", true) {
  41. t.Fatal("Expected not to get true")
  42. }
  43. }
  44. func TestInt64ValueOrZero(t *testing.T) {
  45. cases := map[string]int64{
  46. "": 0,
  47. "asdf": 0,
  48. "0": 0,
  49. "1": 1,
  50. }
  51. for c, e := range cases {
  52. v := url.Values{}
  53. v.Set("test", c)
  54. r, _ := http.NewRequest(http.MethodPost, "", nil)
  55. r.Form = v
  56. a := Int64ValueOrZero(r, "test")
  57. if a != e {
  58. t.Fatalf("Value: %s, expected: %v, actual: %v", c, e, a)
  59. }
  60. }
  61. }
  62. func TestInt64ValueOrDefault(t *testing.T) {
  63. cases := map[string]int64{
  64. "": -1,
  65. "-1": -1,
  66. "42": 42,
  67. }
  68. for c, e := range cases {
  69. v := url.Values{}
  70. v.Set("test", c)
  71. r, _ := http.NewRequest(http.MethodPost, "", nil)
  72. r.Form = v
  73. a, err := Int64ValueOrDefault(r, "test", -1)
  74. if a != e {
  75. t.Fatalf("Value: %s, expected: %v, actual: %v", c, e, a)
  76. }
  77. if err != nil {
  78. t.Fatalf("Error should be nil, but received: %s", err)
  79. }
  80. }
  81. }
  82. func TestInt64ValueOrDefaultWithError(t *testing.T) {
  83. v := url.Values{}
  84. v.Set("test", "invalid")
  85. r, _ := http.NewRequest(http.MethodPost, "", nil)
  86. r.Form = v
  87. _, err := Int64ValueOrDefault(r, "test", -1)
  88. if err == nil {
  89. t.Fatal("Expected an error.")
  90. }
  91. }