1- // Copyright (c) .NET Foundation. All rights reserved.
1+ // Copyright (c) .NET Foundation. All rights reserved.
22// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33
4+ using System ;
45using System . Linq ;
56using Microsoft . AspNetCore . Http . Internal ;
67using Microsoft . Extensions . Primitives ;
@@ -10,30 +11,32 @@ namespace Microsoft.AspNetCore.Http.Tests
1011{
1112 public class RequestCookiesCollectionTests
1213 {
13- public static TheoryData UnEscapesKeyValues_Data
14+ [ Theory ]
15+ [ InlineData ( "key=value" , "key" , "value" ) ]
16+ [ InlineData ( "__secure-key=value" , "__secure-key" , "value" ) ]
17+ [ InlineData ( "key%2C=%21value" , "key," , "!value" ) ]
18+ [ InlineData ( "ke%23y%2C=val%5Eue" , "ke#y," , "val^ue" ) ]
19+ [ InlineData ( "base64=QUI%2BREU%2FRw%3D%3D" , "base64" , "QUI+REU/Rw==" ) ]
20+ [ InlineData ( "base64=QUI+REU/Rw==" , "base64" , "QUI+REU/Rw==" ) ]
21+ public void UnEscapesValues ( string input , string expectedKey , string expectedValue )
1422 {
15- get
16- {
17- // key, value, expected
18- return new TheoryData < string , string , string >
19- {
20- { "key=value" , "key" , "value" } ,
21- { "key%2C=%21value" , "key," , "!value" } ,
22- { "ke%23y%2C=val%5Eue" , "ke#y," , "val^ue" } ,
23- { "base64=QUI%2BREU%2FRw%3D%3D" , "base64" , "QUI+REU/Rw==" } ,
24- { "base64=QUI+REU/Rw==" , "base64" , "QUI+REU/Rw==" } ,
25- } ;
26- }
23+ var cookies = RequestCookieCollection . Parse ( new StringValues ( input ) ) ;
24+
25+ Assert . Equal ( 1 , cookies . Count ) ;
26+ Assert . Equal ( Uri . EscapeDataString ( expectedKey ) , cookies . Keys . Single ( ) ) ;
27+ Assert . Equal ( expectedValue , cookies [ expectedKey ] ) ;
2728 }
2829
2930 [ Theory ]
30- [ MemberData ( nameof ( UnEscapesKeyValues_Data ) ) ]
31- public void UnEscapesKeyValues (
32- string input ,
33- string expectedKey ,
34- string expectedValue )
31+ [ InlineData ( "key=value" , "key" , "value" ) ]
32+ [ InlineData ( "__secure-key=value" , "__secure-key" , "value" ) ]
33+ [ InlineData ( "key%2C=%21value" , "key," , "!value" ) ]
34+ [ InlineData ( "ke%23y%2C=val%5Eue" , "ke#y," , "val^ue" ) ]
35+ [ InlineData ( "base64=QUI%2BREU%2FRw%3D%3D" , "base64" , "QUI+REU/Rw==" ) ]
36+ [ InlineData ( "base64=QUI+REU/Rw==" , "base64" , "QUI+REU/Rw==" ) ]
37+ public void AppContextSwitchUnEscapesKeyValues ( string input , string expectedKey , string expectedValue )
3538 {
36- var cookies = RequestCookieCollection . Parse ( new StringValues ( input ) ) ;
39+ var cookies = RequestCookieCollection . ParseInternal ( new StringValues ( input ) , enableCookieNameDecoding : true ) ;
3740
3841 Assert . Equal ( 1 , cookies . Count ) ;
3942 Assert . Equal ( expectedKey , cookies . Keys . Single ( ) ) ;
0 commit comments