form_test.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package server
  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("POST", "", 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("GET", "", 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("GET", "", 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("POST", "", 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. }