From e88fdb7d5f42bdca5d6a3cef0eb95103d2dd3721 Mon Sep 17 00:00:00 2001 From: fazal Date: Tue, 6 Jun 2017 02:22:58 +0500 Subject: [PATCH] client/manager_sql: return an empty slice if string is empty (#491) Signed-off-by: Mohamedh Fazal --- client/manager_sql.go | 8 ++++---- client/manager_test.go | 1 + pkg/split_string.go | 13 +++++++++++++ 3 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 pkg/split_string.go diff --git a/client/manager_sql.go b/client/manager_sql.go index 0ecb2a32f8b..e92617b4e9f 100644 --- a/client/manager_sql.go +++ b/client/manager_sql.go @@ -104,16 +104,16 @@ func (d *sqlData) ToClient() *Client { ID: d.ID, Name: d.Name, Secret: d.Secret, - RedirectURIs: strings.Split(d.RedirectURIs, "|"), - GrantTypes: strings.Split(d.GrantTypes, "|"), - ResponseTypes: strings.Split(d.ResponseTypes, "|"), + RedirectURIs: pkg.SplitNonEmpty(d.RedirectURIs, "|"), + GrantTypes: pkg.SplitNonEmpty(d.GrantTypes, "|"), + ResponseTypes: pkg.SplitNonEmpty(d.ResponseTypes, "|"), Scope: d.Scope, Owner: d.Owner, PolicyURI: d.PolicyURI, TermsOfServiceURI: d.TermsOfServiceURI, ClientURI: d.ClientURI, LogoURI: d.LogoURI, - Contacts: strings.Split(d.Contacts, "|"), + Contacts: pkg.SplitNonEmpty(d.Contacts, "|"), Public: d.Public, } } diff --git a/client/manager_test.go b/client/manager_test.go index fe2841400f6..c3a72e5aa1c 100644 --- a/client/manager_test.go +++ b/client/manager_test.go @@ -189,6 +189,7 @@ func TestCreateGetDeleteClient(t *testing.T) { assert.Equal(t, "bar", nc.TermsOfServiceURI, "%s", k) assert.Equal(t, "name-new", nc.Name, "%s", k) assert.EqualValues(t, []string{"http://redirect/new"}, nc.GetRedirectURIs(), "%s", k) + assert.Zero(t, len(nc.Contacts)) err = m.DeleteClient("1234") assert.Nil(t, err) diff --git a/pkg/split_string.go b/pkg/split_string.go new file mode 100644 index 00000000000..c9aa2da54be --- /dev/null +++ b/pkg/split_string.go @@ -0,0 +1,13 @@ +package pkg + +import "strings" + +// SplitNonEmpty is a special case of strings.Split +// which returns an empty slice if string is empty +func SplitNonEmpty(s, sep string) []string { + if s == "" { + return nil + } + + return strings.Split(s, sep) +}