aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMáximo Cuadros <mcuadros@gmail.com>2015-11-17 07:50:32 +0100
committerMáximo Cuadros <mcuadros@gmail.com>2015-11-17 07:50:32 +0100
commit491de646e625801d2f809ed4a99c7ace019a3f15 (patch)
tree8a5ff1e0425a1da8ca8fd4875ba20227961d228b
parent49f40d9f410a6fc0a9c89ba228d16cd570ec711a (diff)
downloadgo-git-491de646e625801d2f809ed4a99c7ace019a3f15.tar.gz
client/common: fix empty panic on set at empty capability
-rw-r--r--clients/common/common.go5
-rw-r--r--clients/common/common_test.go7
2 files changed, 11 insertions, 1 deletions
diff --git a/clients/common/common.go b/clients/common/common.go
index ef35440..a6f6166 100644
--- a/clients/common/common.go
+++ b/clients/common/common.go
@@ -99,7 +99,10 @@ func (c *Capabilities) Get(capability string) *Capability {
// Set sets a capability removing the values
func (c *Capabilities) Set(capability string, values ...string) {
- delete(c.m, capability)
+ if _, ok := c.m[capability]; ok {
+ delete(c.m, capability)
+ }
+
c.Add(capability, values...)
}
diff --git a/clients/common/common_test.go b/clients/common/common_test.go
index dac15b6..c8dafe9 100644
--- a/clients/common/common_test.go
+++ b/clients/common/common_test.go
@@ -82,6 +82,13 @@ func (s *SuiteCommon) TestCapabilitiesSet(c *C) {
c.Assert(cap.Get("symref").Values, DeepEquals, []string{"bar"})
}
+func (s *SuiteCommon) TestCapabilitiesSetEmpty(c *C) {
+ cap := NewCapabilities()
+ cap.Set("foo", "bar")
+
+ c.Assert(cap.Get("foo").Values, HasLen, 1)
+}
+
func (s *SuiteCommon) TestCapabilitiesAdd(c *C) {
cap := NewCapabilities()
cap.Add("symref", "foo", "qux")