From 5fa55ca2d3ec0e73c02ac83e208bd43aa77e9f67 Mon Sep 17 00:00:00 2001 From: pylemon Date: Fri, 27 Mar 2015 13:30:59 +0800 Subject: [PATCH 1/2] bugfix: if a form field type is bool, valid Required should always return true instead of return its value. --- validation/validators.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/validation/validators.go b/validation/validators.go index 25415bdd..725b1f7a 100644 --- a/validation/validators.go +++ b/validation/validators.go @@ -64,8 +64,8 @@ func (r Required) IsSatisfied(obj interface{}) bool { if str, ok := obj.(string); ok { return len(str) > 0 } - if b, ok := obj.(bool); ok { - return b + if _, ok := obj.(bool); ok { + return true } if i, ok := obj.(int); ok { return i != 0 From caa260f053de2b5ea5c0e33e8dd8cb70e008329d Mon Sep 17 00:00:00 2001 From: pylemon Date: Fri, 27 Mar 2015 13:43:20 +0800 Subject: [PATCH 2/2] add tests to ensure bool value require test always return true. --- validation/validation_test.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/validation/validation_test.go b/validation/validation_test.go index be63ac93..0727fda4 100644 --- a/validation/validation_test.go +++ b/validation/validation_test.go @@ -26,6 +26,12 @@ func TestRequired(t *testing.T) { if valid.Required(nil, "nil").Ok { t.Error("nil object should be false") } + if !valid.Required(true, "bool").Ok { + t.Error("Bool value should always return true") + } + if !valid.Required(false, "bool").Ok { + t.Error("Bool value should always return true") + } if valid.Required("", "string").Ok { t.Error("\"'\" string should be false") }