mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
net/url: add Values.Has
Adds a method within Values for detecting whether a query parameter is set.
Fixes #45100
Change-Id: I6bb49417e8547e11cc7e8d55c5211d24ee436ec1
GitHub-Last-Rev: 0b27cdab90
GitHub-Pull-Request: golang/go#45835
Reviewed-on: https://go-review.googlesource.com/c/go/+/314850
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Trust: Cherry Zhang <cherryyz@google.com>
This commit is contained in:
parent
3366556d1c
commit
a893682d83
2 changed files with 21 additions and 3 deletions
|
|
@ -909,6 +909,12 @@ func (v Values) Del(key string) {
|
||||||
delete(v, key)
|
delete(v, key)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Has checks whether a given key is set.
|
||||||
|
func (v Values) Has(key string) bool {
|
||||||
|
_, ok := v[key]
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
// ParseQuery parses the URL-encoded query string and returns
|
// ParseQuery parses the URL-encoded query string and returns
|
||||||
// a map listing the values specified for each key.
|
// a map listing the values specified for each key.
|
||||||
// ParseQuery always returns a non-nil map containing all the
|
// ParseQuery always returns a non-nil map containing all the
|
||||||
|
|
|
||||||
|
|
@ -1295,10 +1295,10 @@ func TestResolveReference(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestQueryValues(t *testing.T) {
|
func TestQueryValues(t *testing.T) {
|
||||||
u, _ := Parse("http://x.com?foo=bar&bar=1&bar=2")
|
u, _ := Parse("http://x.com?foo=bar&bar=1&bar=2&baz")
|
||||||
v := u.Query()
|
v := u.Query()
|
||||||
if len(v) != 2 {
|
if len(v) != 3 {
|
||||||
t.Errorf("got %d keys in Query values, want 2", len(v))
|
t.Errorf("got %d keys in Query values, want 3", len(v))
|
||||||
}
|
}
|
||||||
if g, e := v.Get("foo"), "bar"; g != e {
|
if g, e := v.Get("foo"), "bar"; g != e {
|
||||||
t.Errorf("Get(foo) = %q, want %q", g, e)
|
t.Errorf("Get(foo) = %q, want %q", g, e)
|
||||||
|
|
@ -1313,6 +1313,18 @@ func TestQueryValues(t *testing.T) {
|
||||||
if g, e := v.Get("baz"), ""; g != e {
|
if g, e := v.Get("baz"), ""; g != e {
|
||||||
t.Errorf("Get(baz) = %q, want %q", g, e)
|
t.Errorf("Get(baz) = %q, want %q", g, e)
|
||||||
}
|
}
|
||||||
|
if h, e := v.Has("foo"), true; h != e {
|
||||||
|
t.Errorf("Has(foo) = %t, want %t", h, e)
|
||||||
|
}
|
||||||
|
if h, e := v.Has("bar"), true; h != e {
|
||||||
|
t.Errorf("Has(bar) = %t, want %t", h, e)
|
||||||
|
}
|
||||||
|
if h, e := v.Has("baz"), true; h != e {
|
||||||
|
t.Errorf("Has(baz) = %t, want %t", h, e)
|
||||||
|
}
|
||||||
|
if h, e := v.Has("noexist"), false; h != e {
|
||||||
|
t.Errorf("Has(noexist) = %t, want %t", h, e)
|
||||||
|
}
|
||||||
v.Del("bar")
|
v.Del("bar")
|
||||||
if g, e := v.Get("bar"), ""; g != e {
|
if g, e := v.Get("bar"), ""; g != e {
|
||||||
t.Errorf("second Get(bar) = %q, want %q", g, e)
|
t.Errorf("second Get(bar) = %q, want %q", g, e)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue