diff --git a/src/Microsoft.AspNet.Http/ResponseCookies.cs b/src/Microsoft.AspNet.Http/ResponseCookies.cs
index cd6b9c6ee9..185540eb50 100644
--- a/src/Microsoft.AspNet.Http/ResponseCookies.cs
+++ b/src/Microsoft.AspNet.Http/ResponseCookies.cs
@@ -80,36 +80,7 @@ namespace Microsoft.AspNet.Http.Internal
///
public void Delete(string key)
{
- var encodedKeyPlusEquals = UrlEncoder.Default.Encode(key) + "=";
- Func predicate = (value, encKeyPlusEquals) => value.StartsWith(encKeyPlusEquals, StringComparison.OrdinalIgnoreCase);
-
- StringValues deleteCookies = $"{encodedKeyPlusEquals}; expires=Thu, 01-Jan-1970 00:00:00 GMT";
- var existingValues = Headers[HeaderNames.SetCookie];
- if (StringValues.IsNullOrEmpty(existingValues))
- {
- Headers[HeaderNames.SetCookie] = deleteCookies;
- }
- else
- {
- var values = existingValues.ToArray();
- var newValues = new List();
-
- for (var i = 0; i < values.Length; i++)
- {
- if (!predicate(values[i], encodedKeyPlusEquals))
- {
- newValues.Add(values[i]);
- }
- }
-
- values = deleteCookies.ToArray();
- for (var i = 0; i < values.Length; i++)
- {
- newValues.Add(values[i]);
- }
-
- Headers[HeaderNames.SetCookie] = new StringValues(newValues.ToArray());
- }
+ Delete(key, new CookieOptions() { Path = "/" });
}
///
diff --git a/test/Microsoft.AspNet.Http.Tests/ResponseCookiesTest.cs b/test/Microsoft.AspNet.Http.Tests/ResponseCookiesTest.cs
new file mode 100644
index 0000000000..e22d4f338a
--- /dev/null
+++ b/test/Microsoft.AspNet.Http.Tests/ResponseCookiesTest.cs
@@ -0,0 +1,46 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using Xunit;
+using Microsoft.Net.Http.Headers;
+using Microsoft.AspNet.Http.Internal;
+
+namespace Microsoft.AspNet.Http.Tests
+{
+ public class ResponseCookiesTest
+ {
+ [Fact]
+ public void DeleteCookieShouldSetDefaultPath()
+ {
+ var headers = new HeaderDictionary();
+ var cookies = new ResponseCookies(headers);
+ var testcookie = "TestCookie";
+
+ cookies.Delete(testcookie);
+
+ var cookieHeaderValues = headers[HeaderNames.SetCookie];
+ Assert.Equal(1, cookieHeaderValues.Count);
+ Assert.StartsWith(testcookie, cookieHeaderValues[0]);
+ Assert.Contains("path=/", cookieHeaderValues[0]);
+ Assert.Contains("expires=Thu, 01 Jan 1970 00:00:00 GMT", cookieHeaderValues[0]);
+ }
+
+ [Fact]
+ public void NoParamsDeleteRemovesCookieCreatedByAdd()
+ {
+ var headers = new HeaderDictionary();
+ var cookies = new ResponseCookies(headers);
+ var testcookie = "TestCookie";
+
+ cookies.Append(testcookie, testcookie);
+ cookies.Delete(testcookie);
+
+ var cookieHeaderValues = headers[HeaderNames.SetCookie];
+ Assert.Equal(1, cookieHeaderValues.Count);
+ Assert.StartsWith(testcookie, cookieHeaderValues[0]);
+ Assert.Contains("path=/", cookieHeaderValues[0]);
+ Assert.Contains("expires=Thu, 01 Jan 1970 00:00:00 GMT", cookieHeaderValues[0]);
+ }
+
+ }
+}