
Implement basic interfaces to write custom routers that can be plugged to the server. Remove server coupling with the daemon. Signed-off-by: David Calavera <david.calavera@gmail.com>
70 lines
1.3 KiB
Go
70 lines
1.3 KiB
Go
package httputils
|
|
|
|
import (
|
|
"net/http"
|
|
"net/url"
|
|
"testing"
|
|
)
|
|
|
|
func TestBoolValue(t *testing.T) {
|
|
cases := map[string]bool{
|
|
"": false,
|
|
"0": false,
|
|
"no": false,
|
|
"false": false,
|
|
"none": false,
|
|
"1": true,
|
|
"yes": true,
|
|
"true": true,
|
|
"one": true,
|
|
"100": true,
|
|
}
|
|
|
|
for c, e := range cases {
|
|
v := url.Values{}
|
|
v.Set("test", c)
|
|
r, _ := http.NewRequest("POST", "", nil)
|
|
r.Form = v
|
|
|
|
a := BoolValue(r, "test")
|
|
if a != e {
|
|
t.Fatalf("Value: %s, expected: %v, actual: %v", c, e, a)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestBoolValueOrDefault(t *testing.T) {
|
|
r, _ := http.NewRequest("GET", "", nil)
|
|
if !BoolValueOrDefault(r, "queryparam", true) {
|
|
t.Fatal("Expected to get true default value, got false")
|
|
}
|
|
|
|
v := url.Values{}
|
|
v.Set("param", "")
|
|
r, _ = http.NewRequest("GET", "", nil)
|
|
r.Form = v
|
|
if BoolValueOrDefault(r, "param", true) {
|
|
t.Fatal("Expected not to get true")
|
|
}
|
|
}
|
|
|
|
func TestInt64ValueOrZero(t *testing.T) {
|
|
cases := map[string]int64{
|
|
"": 0,
|
|
"asdf": 0,
|
|
"0": 0,
|
|
"1": 1,
|
|
}
|
|
|
|
for c, e := range cases {
|
|
v := url.Values{}
|
|
v.Set("test", c)
|
|
r, _ := http.NewRequest("POST", "", nil)
|
|
r.Form = v
|
|
|
|
a := Int64ValueOrZero(r, "test")
|
|
if a != e {
|
|
t.Fatalf("Value: %s, expected: %v, actual: %v", c, e, a)
|
|
}
|
|
}
|
|
}
|