From f710c2d3209abfd10d4e44e385cfbb4792faa332 Mon Sep 17 00:00:00 2001 From: anshul-jain-aws <40903975+anshul-jain-aws@users.noreply.github.com> Date: Tue, 24 Nov 2020 00:18:38 -0800 Subject: [PATCH] Fixing deletion of headers/queryargs having multiple values. (#918) --- args.go | 1 + args_test.go | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/args.go b/args.go index b3ad7e0..d1e57cf 100644 --- a/args.go +++ b/args.go @@ -391,6 +391,7 @@ func delAllArgs(args []argsKV, key string) []argsKV { tmp := *kv copy(args[i:], args[i+1:]) n-- + i-- args[n] = tmp args = args[:n] } diff --git a/args_test.go b/args_test.go index f6c62ae..b2e1954 100644 --- a/args_test.go +++ b/args_test.go @@ -583,3 +583,17 @@ func testArgsParse(t *testing.T, a *Args, s string, expectedLen int, expectedArg } } } + +func TestArgsDeleteAll(t *testing.T) { + t.Parallel() + var a Args + a.Add("q1", "foo") + a.Add("q1", "bar") + a.Add("q1", "baz") + a.Add("q1", "quux") + a.Add("q2", "1234") + a.Del("q1") + if a.Len() != 1 || a.Has("q1") { + t.Fatalf("Expected q1 arg to be completely deleted. Current Args: %s", a.String()) + } +} \ No newline at end of file