30
30
/**
31
31
* AppController class
32
32
*
33
- * @package cake
33
+ * @package cake.tests
34
34
* @subpackage cake.tests.cases.libs.controller
35
35
*/
36
36
if (!class_exists ('AppController ' )) {
37
37
/**
38
38
* AppController class
39
39
*
40
- * @package cake
40
+ * @package cake.tests
41
41
* @subpackage cake.tests.cases.libs.controller
42
42
*/
43
43
class AppController extends Controller {
@@ -131,7 +131,7 @@ function find($type, $options = array()) {
131
131
/**
132
132
* ControllerPostsController class
133
133
*
134
- * @package cake
134
+ * @package cake.tests
135
135
* @subpackage cake.tests.cases.libs.controller
136
136
*/
137
137
class ControllerCommentsController extends AppController {
@@ -251,7 +251,7 @@ function paginateCount($conditions, $recursive, $extra) {
251
251
/**
252
252
* NameTest class
253
253
*
254
- * @package cake
254
+ * @package cake.tests
255
255
* @subpackage cake.tests.cases.libs.controller
256
256
*/
257
257
class NameTest extends CakeTestModel {
@@ -278,7 +278,7 @@ class NameTest extends CakeTestModel {
278
278
/**
279
279
* TestController class
280
280
*
281
- * @package cake
281
+ * @package cake.tests
282
282
* @subpackage cake.tests.cases.libs.controller
283
283
*/
284
284
class TestController extends AppController {
@@ -325,7 +325,7 @@ function index($testId, $test2Id) {
325
325
/**
326
326
* TestComponent class
327
327
*
328
- * @package cake
328
+ * @package cake.tests
329
329
* @subpackage cake.tests.cases.libs.controller
330
330
*/
331
331
class TestComponent extends Object {
@@ -336,13 +336,12 @@ class TestComponent extends Object {
336
336
* @return void
337
337
*/
338
338
function beforeRedirect () {
339
- return true ;
340
339
}
341
340
}
342
341
/**
343
342
* AnotherTestController class
344
343
*
345
- * @package cake
344
+ * @package cake.tests
346
345
* @subpackage cake.tests.cases.libs.controller
347
346
*/
348
347
class AnotherTestController extends AppController {
@@ -352,7 +351,6 @@ class AnotherTestController extends AppController {
352
351
* @access public
353
352
*/
354
353
var $ name = 'AnotherTest ' ;
355
-
356
354
/**
357
355
* uses property
358
356
*
@@ -417,7 +415,12 @@ function testConstructClasses() {
417
415
Configure::write ('pluginPaths ' , $ _back ['pluginPaths ' ]);
418
416
unset($ Controller );
419
417
}
420
-
418
+ /**
419
+ * testAliasName method
420
+ *
421
+ * @access public
422
+ * @return void
423
+ */
421
424
function testAliasName () {
422
425
$ Controller =& new Controller ();
423
426
$ Controller ->uses = array ('NameTest ' );
@@ -428,7 +431,6 @@ function testAliasName() {
428
431
429
432
unset($ Controller );
430
433
}
431
-
432
434
/**
433
435
* testPersistent method
434
436
*
@@ -735,7 +737,6 @@ function testToBeInheritedGuardmethods() {
735
737
* @return void
736
738
*/
737
739
function testRedirect () {
738
- $ url = 'cakephp.org ' ;
739
740
$ codes = array (
740
741
100 => "Continue " ,
741
742
101 => "Switching Protocols " ,
@@ -779,26 +780,85 @@ function testRedirect() {
779
780
);
780
781
781
782
Mock::generatePartial ('Controller ' , 'MockController ' , array ('header ' ));
783
+ Mock::generate ('TestComponent ' , 'MockTestComponent ' );
784
+ Mock::generate ('TestComponent ' , 'MockTestBComponent ' );
785
+
782
786
App::import ('Helper ' , 'Cache ' );
783
787
784
- // $codes = array_merge($codes, array_flip($codes));
785
788
foreach ($ codes as $ code => $ msg ) {
786
789
$ MockController =& new MockController ();
787
- $ MockController ->components = array ('Test ' );
788
790
$ MockController ->Component =& new Component ();
789
791
$ MockController ->Component ->init ($ MockController );
792
+ $ MockController ->expectAt (0 , 'header ' , array ("HTTP/1.1 {$ code } {$ msg }" ));
793
+ $ MockController ->expectAt (1 , 'header ' , array ('Location: http://cakephp.org ' ));
790
794
$ MockController ->expectCallCount ('header ' , 2 );
791
- $ MockController ->redirect ($ url , (int ) $ code , false );
795
+ $ MockController ->redirect ('http://cakephp.org ' , (int )$ code , false );
796
+ $ this ->assertFalse ($ MockController ->autoRender );
792
797
}
793
- $ codes = array_flip ($ codes );
794
798
foreach ($ codes as $ code => $ msg ) {
795
799
$ MockController =& new MockController ();
796
- $ MockController ->components = array ('Test ' );
797
800
$ MockController ->Component =& new Component ();
798
801
$ MockController ->Component ->init ($ MockController );
802
+ $ MockController ->expectAt (0 , 'header ' , array ("HTTP/1.1 {$ code } {$ msg }" ));
803
+ $ MockController ->expectAt (1 , 'header ' , array ('Location: http://cakephp.org ' ));
799
804
$ MockController ->expectCallCount ('header ' , 2 );
800
- $ MockController ->redirect ($ url , $ code , false );
805
+ $ MockController ->redirect ('http://cakephp.org ' , $ msg , false );
806
+ $ this ->assertFalse ($ MockController ->autoRender );
801
807
}
808
+
809
+ $ MockController =& new MockController ();
810
+ $ MockController ->Component =& new Component ();
811
+ $ MockController ->Component ->init ($ MockController );
812
+ $ MockController ->expectAt (0 , 'header ' , array ('Location: http://www.example.org/users/login ' ));
813
+ $ MockController ->expectCallCount ('header ' , 1 );
814
+ $ MockController ->redirect ('http://www.example.org/users/login ' , null , false );
815
+
816
+ $ MockController =& new MockController ();
817
+ $ MockController ->Component =& new Component ();
818
+ $ MockController ->Component ->init ($ MockController );
819
+ $ MockController ->expectAt (0 , 'header ' , array ('HTTP/1.1 301 Moved Permanently ' ));
820
+ $ MockController ->expectAt (1 , 'header ' , array ('Location: http://www.example.org/users/login ' ));
821
+ $ MockController ->expectCallCount ('header ' , 2 );
822
+ $ MockController ->redirect ('http://www.example.org/users/login ' , 301 , false );
823
+
824
+ $ MockController =& new MockController ();
825
+ $ MockController ->components = array ('MockTest ' );
826
+ $ MockController ->Component =& new Component ();
827
+ $ MockController ->Component ->init ($ MockController );
828
+ $ MockController ->MockTest ->setReturnValue ('beforeRedirect ' , null );
829
+ $ MockController ->expectAt (0 , 'header ' , array ('HTTP/1.1 301 Moved Permanently ' ));
830
+ $ MockController ->expectAt (1 , 'header ' , array ('Location: http://cakephp.org ' ));
831
+ $ MockController ->expectCallCount ('header ' , 2 );
832
+ $ MockController ->redirect ('http://cakephp.org ' , 301 , false );
833
+
834
+ $ MockController =& new MockController ();
835
+ $ MockController ->components = array ('MockTest ' );
836
+ $ MockController ->Component =& new Component ();
837
+ $ MockController ->Component ->init ($ MockController );
838
+ $ MockController ->MockTest ->setReturnValue ('beforeRedirect ' , 'http://book.cakephp.org ' );
839
+ $ MockController ->expectAt (0 , 'header ' , array ('HTTP/1.1 301 Moved Permanently ' ));
840
+ $ MockController ->expectAt (1 , 'header ' , array ('Location: http://book.cakephp.org ' ));
841
+ $ MockController ->expectCallCount ('header ' , 2 );
842
+ $ MockController ->redirect ('http://cakephp.org ' , 301 , false );
843
+
844
+ $ MockController =& new MockController ();
845
+ $ MockController ->components = array ('MockTest ' );
846
+ $ MockController ->Component =& new Component ();
847
+ $ MockController ->Component ->init ($ MockController );
848
+ $ MockController ->MockTest ->setReturnValue ('beforeRedirect ' , false );
849
+ $ MockController ->expectNever ('header ' );
850
+ $ MockController ->redirect ('http://cakephp.org ' , 301 , false );
851
+
852
+ $ MockController =& new MockController ();
853
+ $ MockController ->components = array ('MockTest ' , 'MockTestB ' );
854
+ $ MockController ->Component =& new Component ();
855
+ $ MockController ->Component ->init ($ MockController );
856
+ $ MockController ->MockTest ->setReturnValue ('beforeRedirect ' , 'http://book.cakephp.org ' );
857
+ $ MockController ->MockTestB ->setReturnValue ('beforeRedirect ' , 'http://bakery.cakephp.org ' );
858
+ $ MockController ->expectAt (0 , 'header ' , array ('HTTP/1.1 301 Moved Permanently ' ));
859
+ $ MockController ->expectAt (1 , 'header ' , array ('Location: http://bakery.cakephp.org ' ));
860
+ $ MockController ->expectCallCount ('header ' , 2 );
861
+ $ MockController ->redirect ('http://cakephp.org ' , 301 , false );
802
862
}
803
863
/**
804
864
* testMergeVars method
@@ -859,7 +919,7 @@ function testMergeVars() {
859
919
$ this ->assertTrue (isset ($ TestController ->ControllerComment ));
860
920
}
861
921
/**
862
- * Ensure that __mergeVars is not being greedy and merging with
922
+ * Ensure that __mergeVars is not being greedy and merging with
863
923
* AppController when you make an instance of Controller
864
924
*
865
925
* @return void
0 commit comments