@@ -731,23 +731,23 @@ public function testRenderExceptionInBeforeRender()
731
731
*/
732
732
public function testMissingLayoutPathRenderSafe ()
733
733
{
734
+ $ eventTriggered = false ;
734
735
$ exception = new NotFoundException ();
735
736
$ ExceptionRenderer = new ExceptionRenderer ($ exception );
736
737
737
- $ ExceptionRenderer ->controller = $ this ->getMockBuilder ('Cake\Controller\Controller ' )
738
- ->setMethods (['render ' ])
739
- ->getMock ();
738
+ $ ExceptionRenderer ->controller = new Controller ();
740
739
$ ExceptionRenderer ->controller ->helpers = ['Fail ' , 'Boom ' ];
741
- $ ExceptionRenderer ->controller ->eventManager ()->on ('Controller.beforeRender ' , function (Event $ event ) {
742
- $ event ->subject ()->viewBuilder ()->layoutPath ('boom ' );
743
- });
740
+ $ ExceptionRenderer ->controller ->eventManager ()->on (
741
+ 'Controller.beforeRender ' ,
742
+ function (Event $ event ) use ($ exception , &$ eventTriggered ) {
743
+ $ eventTriggered = true ;
744
+ $ event ->subject ()->viewBuilder ()->layoutPath ('boom ' );
745
+
746
+ throw $ exception ;
747
+ }
748
+ );
744
749
$ ExceptionRenderer ->controller ->request = new Request ;
745
750
746
- $ ExceptionRenderer ->controller ->expects ($ this ->once ())
747
- ->method ('render ' )
748
- ->with ('error400 ' )
749
- ->will ($ this ->throwException ($ exception ));
750
-
751
751
$ response = $ this ->getMockBuilder ('Cake\Network\Response ' )->getMock ();
752
752
$ response ->expects ($ this ->once ())
753
753
->method ('body ' )
@@ -761,6 +761,9 @@ public function testMissingLayoutPathRenderSafe()
761
761
$ ExceptionRenderer ->render ();
762
762
$ this ->assertEquals ('' , $ ExceptionRenderer ->controller ->viewBuilder ()->layoutPath ());
763
763
$ this ->assertEquals ('Error ' , $ ExceptionRenderer ->controller ->viewBuilder ()->templatePath ());
764
+
765
+ // Just to ensure the callback has actually been triggered, so we're actually testing something:
766
+ $ this ->assertTrue ($ eventTriggered );
764
767
}
765
768
766
769
/**
0 commit comments