@@ -238,6 +238,19 @@ function testWritePlainCookieArray() {
238
238
$ this ->Cookie ->delete ('tag ' );
239
239
}
240
240
241
+ /**
242
+ * test writing values that are not scalars
243
+ *
244
+ * @return void
245
+ */
246
+ function testWriteArrayValues () {
247
+ $ this ->Cookie ->secure = false ;
248
+ $ this ->Cookie ->expects ($ this ->once ())->method ('_setcookie ' )
249
+ ->with ('CakeTestCookie[Testing] ' , '[1,2,3] ' , time () + 10 , '/ ' , '' , false , false );
250
+
251
+ $ this ->Cookie ->write ('Testing ' , array (1 , 2 , 3 ), false );
252
+ }
253
+
241
254
/**
242
255
* testReadingCookieValue
243
256
*
@@ -359,7 +372,6 @@ function testReadingCookieArray() {
359
372
* @return void
360
373
*/
361
374
function testReadingCookieDataOnStartup () {
362
-
363
375
$ data = $ this ->Cookie ->read ('Encrytped_array ' );
364
376
$ this ->assertNull ($ data );
365
377
@@ -378,28 +390,29 @@ function testReadingCookieDataOnStartup() {
378
390
'name ' => $ this ->__encrypt ('CakePHP ' ),
379
391
'version ' => $ this ->__encrypt ('1.2.0.x ' ),
380
392
'tag ' => $ this ->__encrypt ('CakePHP Rocks! ' )),
381
- 'Plain_array ' => 'name| CakePHP, version| 1.2.0.x, tag| CakePHP Rocks! ' ,
393
+ 'Plain_array ' => '{" name":" CakePHP"," version":" 1.2.0.x"," tag":" CakePHP Rocks!"} ' ,
382
394
'Plain_multi_cookies ' => array (
383
395
'name ' => 'CakePHP ' ,
384
396
'version ' => '1.2.0.x ' ,
385
397
'tag ' => 'CakePHP Rocks! ' ));
398
+
386
399
$ this ->Cookie ->startup (null );
387
400
388
401
$ data = $ this ->Cookie ->read ('Encrytped_array ' );
389
402
$ expected = array ('name ' => 'CakePHP ' , 'version ' => '1.2.0.x ' , 'tag ' =>'CakePHP Rocks! ' );
390
- $ this ->assertEqual ( $ data , $ expected );
403
+ $ this ->assertEquals ( $ expected , $ data );
391
404
392
405
$ data = $ this ->Cookie ->read ('Encrytped_multi_cookies ' );
393
406
$ expected = array ('name ' => 'CakePHP ' , 'version ' => '1.2.0.x ' , 'tag ' =>'CakePHP Rocks! ' );
394
- $ this ->assertEqual ( $ data , $ expected );
407
+ $ this ->assertEquals ( $ expected , $ data );
395
408
396
409
$ data = $ this ->Cookie ->read ('Plain_array ' );
397
410
$ expected = array ('name ' => 'CakePHP ' , 'version ' => '1.2.0.x ' , 'tag ' =>'CakePHP Rocks! ' );
398
- $ this ->assertEqual ( $ data , $ expected );
411
+ $ this ->assertEquals ( $ expected , $ data );
399
412
400
413
$ data = $ this ->Cookie ->read ('Plain_multi_cookies ' );
401
414
$ expected = array ('name ' => 'CakePHP ' , 'version ' => '1.2.0.x ' , 'tag ' =>'CakePHP Rocks! ' );
402
- $ this ->assertEqual ( $ data , $ expected );
415
+ $ this ->assertEquals ( $ expected , $ data );
403
416
$ this ->Cookie ->destroy ();
404
417
unset($ _COOKIE ['CakeTestCookie ' ]);
405
418
}
@@ -413,47 +426,47 @@ function testReadingCookieDataOnStartup() {
413
426
function testReadingCookieDataWithoutStartup () {
414
427
$ data = $ this ->Cookie ->read ('Encrytped_array ' );
415
428
$ expected = null ;
416
- $ this ->assertEqual ( $ data , $ expected );
429
+ $ this ->assertEquals ( $ expected , $ data );
417
430
418
431
$ data = $ this ->Cookie ->read ('Encrytped_multi_cookies ' );
419
432
$ expected = null ;
420
- $ this ->assertEqual ( $ data , $ expected );
433
+ $ this ->assertEquals ( $ expected , $ data );
421
434
422
435
$ data = $ this ->Cookie ->read ('Plain_array ' );
423
436
$ expected = null ;
424
- $ this ->assertEqual ( $ data , $ expected );
437
+ $ this ->assertEquals ( $ expected , $ data );
425
438
426
439
$ data = $ this ->Cookie ->read ('Plain_multi_cookies ' );
427
440
$ expected = null ;
428
- $ this ->assertEqual ( $ data , $ expected );
441
+ $ this ->assertEquals ( $ expected , $ data );
429
442
430
443
$ _COOKIE ['CakeTestCookie ' ] = array (
431
444
'Encrytped_array ' => $ this ->__encrypt (array ('name ' => 'CakePHP ' , 'version ' => '1.2.0.x ' , 'tag ' =>'CakePHP Rocks! ' )),
432
445
'Encrytped_multi_cookies ' => array (
433
446
'name ' => $ this ->__encrypt ('CakePHP ' ),
434
447
'version ' => $ this ->__encrypt ('1.2.0.x ' ),
435
448
'tag ' => $ this ->__encrypt ('CakePHP Rocks! ' )),
436
- 'Plain_array ' => 'name| CakePHP, version| 1.2.0.x, tag| CakePHP Rocks! ' ,
449
+ 'Plain_array ' => '{" name":" CakePHP"," version":" 1.2.0.x"," tag":" CakePHP Rocks!"} ' ,
437
450
'Plain_multi_cookies ' => array (
438
451
'name ' => 'CakePHP ' ,
439
452
'version ' => '1.2.0.x ' ,
440
453
'tag ' => 'CakePHP Rocks! ' ));
441
454
442
455
$ data = $ this ->Cookie ->read ('Encrytped_array ' );
443
456
$ expected = array ('name ' => 'CakePHP ' , 'version ' => '1.2.0.x ' , 'tag ' =>'CakePHP Rocks! ' );
444
- $ this ->assertEqual ( $ data , $ expected );
457
+ $ this ->assertEquals ( $ expected , $ data );
445
458
446
459
$ data = $ this ->Cookie ->read ('Encrytped_multi_cookies ' );
447
460
$ expected = array ('name ' => 'CakePHP ' , 'version ' => '1.2.0.x ' , 'tag ' =>'CakePHP Rocks! ' );
448
- $ this ->assertEqual ( $ data , $ expected );
461
+ $ this ->assertEquals ( $ expected , $ data );
449
462
450
463
$ data = $ this ->Cookie ->read ('Plain_array ' );
451
464
$ expected = array ('name ' => 'CakePHP ' , 'version ' => '1.2.0.x ' , 'tag ' =>'CakePHP Rocks! ' );
452
- $ this ->assertEqual ( $ data , $ expected );
465
+ $ this ->assertEquals ( $ expected , $ data );
453
466
454
467
$ data = $ this ->Cookie ->read ('Plain_multi_cookies ' );
455
468
$ expected = array ('name ' => 'CakePHP ' , 'version ' => '1.2.0.x ' , 'tag ' =>'CakePHP Rocks! ' );
456
- $ this ->assertEqual ( $ data , $ expected );
469
+ $ this ->assertEquals ( $ expected , $ data );
457
470
$ this ->Cookie ->destroy ();
458
471
unset($ _COOKIE ['CakeTestCookie ' ]);
459
472
}
@@ -470,6 +483,22 @@ function testNoErrorOnNonArrayData() {
470
483
471
484
$ this ->assertNull ($ this ->Cookie ->read ('value ' ));
472
485
}
486
+
487
+ /**
488
+ * Implode method to keep keys are multidimensional arrays
489
+ *
490
+ * @param array $array Map of key and values
491
+ * @return string String in the form key1|value1,key2|value2
492
+ */
493
+ protected function _implode (array $ array ) {
494
+ return json_encode ($ array );
495
+
496
+ $ string = '' ;
497
+ foreach ($ array as $ key => $ value ) {
498
+ $ string .= ', ' . $ key . '| ' . $ value ;
499
+ }
500
+ return substr ($ string , 1 );
501
+ }
473
502
474
503
/**
475
504
* encrypt method
@@ -480,23 +509,9 @@ function testNoErrorOnNonArrayData() {
480
509
*/
481
510
function __encrypt ($ value ) {
482
511
if (is_array ($ value )) {
483
- $ value = $ this ->__implode ($ value );
512
+ $ value = $ this ->_implode ($ value );
484
513
}
485
514
return "Q2FrZQ==. " . base64_encode (Security::cipher ($ value , $ this ->Cookie ->key ));
486
515
}
487
516
488
- /**
489
- * implode method
490
- *
491
- * @param array $value
492
- * @return string
493
- * @access private
494
- */
495
- function __implode ($ array ) {
496
- $ string = '' ;
497
- foreach ($ array as $ key => $ value ) {
498
- $ string .= ', ' . $ key . '| ' . $ value ;
499
- }
500
- return substr ($ string , 1 );
501
- }
502
517
}
0 commit comments