@@ -283,7 +283,7 @@ describe('browser', function() {
283283 expect ( oldVal ) . not . toBeDefined ( ) ;
284284 } ) ;
285285
286- it ( 'should escape both name and value' , function ( ) {
286+ it ( 'should encode both name and value' , function ( ) {
287287 browser . cookies ( 'cookie1=' , 'val;ue' ) ;
288288 browser . cookies ( 'cookie2=bar;baz' , 'val=ue' ) ;
289289
@@ -359,7 +359,7 @@ describe('browser', function() {
359359 expect ( browser . cookies ( ) [ 'foo' ] ) . toBe ( '"first"' ) ;
360360 } ) ;
361361
362- it ( 'should unescape cookie values that were escaped by puts' , function ( ) {
362+ it ( 'should decode cookie values that were encoded by puts' , function ( ) {
363363 document . cookie = "cookie2%3Dbar%3Bbaz=val%3Due;path=/" ;
364364 expect ( browser . cookies ( ) [ 'cookie2=bar;baz' ] ) . toEqual ( 'val=ue' ) ;
365365 } ) ;
@@ -371,10 +371,16 @@ describe('browser', function() {
371371 expect ( browser . cookies ( ) [ 'cookie name' ] ) . not . toBeDefined ( ) ;
372372 } ) ;
373373
374- it ( 'should unscape special characters in cookie values' , function ( ) {
374+ it ( 'should decode special characters in cookie values' , function ( ) {
375375 document . cookie = 'cookie_name=cookie_value_%E2%82%AC' ;
376376 expect ( browser . cookies ( ) [ 'cookie_name' ] ) . toEqual ( 'cookie_value_€' ) ;
377377 } ) ;
378+
379+ it ( 'should not decode cookie values that do not appear to be encoded' , function ( ) {
380+ // see #9211 - sometimes cookies contain a value that causes decodeURIComponent to throw
381+ document . cookie = 'cookie_name=cookie_value_%XX' ;
382+ expect ( browser . cookies ( ) [ 'cookie_name' ] ) . toEqual ( 'cookie_value_%XX' ) ;
383+ } ) ;
378384 } ) ;
379385
380386
0 commit comments