Skip to content

Commit ec2ba4b

Browse files
committed
Optimized implementation to support cookie folding
1 parent 09e8e40 commit ec2ba4b

File tree

6 files changed

+437
-327
lines changed

6 files changed

+437
-327
lines changed

src/AngleSharp.Io.Tests/Cookie/ClassicTests.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,22 +38,22 @@ public async Task PlainVersion1CookieIsCorrectlyTransformed()
3838
var cookie = await LoadDocumentWithCookie(
3939
"FGTServer=04E2E1A642B2BB49C6FE0115DE3976CB377263F3278BD6C8E2F8A24EE4DF7562F089BFAC5C0102; Version=1");
4040
Assert.AreEqual(
41-
"$Version=1; FGTServer=04E2E1A642B2BB49C6FE0115DE3976CB377263F3278BD6C8E2F8A24EE4DF7562F089BFAC5C0102",
41+
"FGTServer=04E2E1A642B2BB49C6FE0115DE3976CB377263F3278BD6C8E2F8A24EE4DF7562F089BFAC5C0102",
4242
cookie);
4343
}
4444

4545
[Test]
4646
public async Task Version1CookieIsAlreadyTransformed()
4747
{
4848
var cookie = await LoadDocumentWithCookie("Customer=\"WILE_E_COYOTE\"; Version=\"1\"");
49-
Assert.AreEqual("$Version=\"1\"; Customer=\"WILE_E_COYOTE\"", cookie);
49+
Assert.AreEqual("Customer=\"WILE_E_COYOTE\"", cookie);
5050
}
5151

5252
[Test]
5353
public async Task Version1CookieWithSingleEntryAlreadyTransformedCorrectly()
5454
{
5555
var cookie = await LoadDocumentWithCookie("Shipping=FedEx; Version=\"1\"");
56-
Assert.AreEqual("$Version=\"1\"; Shipping=FedEx", cookie);
56+
Assert.AreEqual("Shipping=FedEx", cookie);
5757
}
5858

5959
[Test]
@@ -106,14 +106,14 @@ public async Task SettingOtherCookieAddsCookie()
106106
var document = await LoadDocumentAloneWithCookie("cookie=two; Max-Age=36001");
107107
Assert.AreEqual("cookie=two", document.Cookie);
108108
document.Cookie = "foo=bar";
109-
Assert.AreEqual("cookie=two; foo=bar", document.Cookie);
109+
Assert.AreEqual("foo=bar; cookie=two", document.Cookie);
110110
}
111111

112112
[Test]
113113
public async Task InvalidatingCookieRemovesTheCookie()
114114
{
115115
var document = await LoadDocumentAloneWithCookie("cookie=two; Max-Age=36001, foo=bar");
116-
Assert.AreEqual("cookie=two; foo=bar", document.Cookie);
116+
Assert.AreEqual("foo=bar; cookie=two", document.Cookie);
117117
document.Cookie = "cookie=expiring; Expires=Tue, 10 Nov 2009 23:00:00 GMT";
118118
Assert.AreEqual("foo=bar", document.Cookie);
119119
}
@@ -245,13 +245,13 @@ public async Task SettingThreeCookiesInOneRequestAreTransportedToNextRequest()
245245

246246
var expected = @"{
247247
""cookies"": {
248-
""foo"": ""bar"",
249-
""k1"": ""v1"",
250-
""k2"": ""v2"",
248+
""foo"": ""bar"",
249+
""k1"": ""v1"",
250+
""k2"": ""v2"",
251251
""test"": ""baz""
252252
}
253253
}
254-
";
254+
".Replace(Environment.NewLine, "\n");
255255

256256
Assert.AreEqual(expected, document.Body.TextContent);
257257
}

src/AngleSharp.Io/Cookie/AdvancedCookieProvider.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,10 @@ String ICookieProvider.GetCookie(Url url)
8585
void ICookieProvider.SetCookie(Url url, String value)
8686
{
8787
var host = CanonicalDomain(url.HostName);
88-
var cookie = WebCookie.FromString(value);
88+
var parser = new CookieParser(value);
89+
var cookies = parser.Parse();
8990

90-
if (cookie != null)
91+
foreach (var cookie in cookies)
9192
{
9293
if (!String.IsNullOrEmpty(cookie.Domain))
9394
{

src/AngleSharp.Io/Cookie/CookieDateParser.cs

Lines changed: 0 additions & 196 deletions
This file was deleted.

0 commit comments

Comments
 (0)