From da199846d2813467ab8bae629336f3989f285ce9 Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Thu, 20 Jun 2013 14:34:58 +0000 Subject: [PATCH] use strconv.ParseBool in getBoolParam --- api.go | 9 ++++----- api_test.go | 24 ++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/api.go b/api.go index 4f08b2aae6..ea26ba2921 100644 --- a/api.go +++ b/api.go @@ -59,14 +59,13 @@ func writeJSON(w http.ResponseWriter, b []byte) { w.Write(b) } -// FIXME: Use stvconv.ParseBool() instead? func getBoolParam(value string) (bool, error) { - if value == "1" || strings.ToLower(value) == "true" { - return true, nil - } - if value == "" || value == "0" || strings.ToLower(value) == "false" { + if value == "" { return false, nil } + if ret, err := strconv.ParseBool(value); err == nil { + return ret, err + } return false, fmt.Errorf("Bad parameter") } diff --git a/api_test.go b/api_test.go index 40b31d4961..12ea5ee962 100644 --- a/api_test.go +++ b/api_test.go @@ -17,6 +17,30 @@ import ( "time" ) +func TestGetBoolParam(t *testing.T) { + if ret, err := getBoolParam("true"); err != nil || !ret { + t.Fatalf("true -> true, nil | got %b %s", ret, err) + } + if ret, err := getBoolParam("True"); err != nil || !ret { + t.Fatalf("True -> true, nil | got %b %s", ret, err) + } + if ret, err := getBoolParam("1"); err != nil || !ret { + t.Fatalf("1 -> true, nil | got %b %s", ret, err) + } + if ret, err := getBoolParam(""); err != nil || ret { + t.Fatalf("\"\" -> false, nil | got %b %s", ret, err) + } + if ret, err := getBoolParam("false"); err != nil || ret { + t.Fatalf("false -> false, nil | got %b %s", ret, err) + } + if ret, err := getBoolParam("0"); err != nil || ret { + t.Fatalf("0 -> false, nil | got %b %s", ret, err) + } + if ret, err := getBoolParam("faux"); err == nil || ret { + t.Fatalf("faux -> false, err | got %b %s", ret, err) + } +} + func TestPostAuth(t *testing.T) { runtime, err := newTestRuntime() if err != nil {