2012-08-24 6 views
6

Aquí está mi UsersController caso prueba:SecurityComponent-negro que agujerea mi caso prueba del controlador

<?php 
App::uses('UsersController', 'Controller'); 

class TestUsersController extends UsersController { 

    public $autoRender = false; 

    public function redirect($url, $status = null, $exit = true) { 
     $this->redirectUrl = $url; 
    } 

    public function render($action = null, $layout = null, $file = null) { 
     $this->renderedAction = $action; 
    } 

    public function _stop($status = 0) { 
     $this->stopped = $status; 
    } 
} 

class UsersControllerTestCase extends ControllerTestCase { 

    public $fixtures = array('app.user'); 

    public function setUp() { 
     parent::setUp(); 
     $this->Users = new TestUsersController(); 
     $this->Users->constructClasses(); 
    } 

    public function tearDown() { 
     unset($this->Users); 

     parent::tearDown(); 
    } 

    public function testAdminSearchStudents() { 
     $data = array('User' => array('search' => 'Ipsum')); 
     $result = $this->testAction('/admin', array('return' => 'vars', 'method' => 'post', 'data' => $data)); 
     $this->assertCount(1, $result['users']); 
    } 

} 

No hay nada de especial en mi UsersController, pero utiliza el SecurityComponent (heredado de AppController).

Y cuando corro las pruebas, me sale el famoso:

La solicitud ha sido estuche negro de baches prueba: UsersControllerTestCase (testAdminSearchStudents)

Creo que es porque soy falsificando una solicitud POST sin el token CSRF y referal?

¿Qué debo hacer para que esto funcione sin quitar el componente de seguridad de mi controlador?

no estoy seguro de si esto ayuda, pero aquí es la parte importante del seguimiento de la pila:

/var/www/source/cakephp/lib/Cake/Controller/Component/SecurityComponent.php : 230 
SecurityComponent::startup 
/var/www/source/cakephp/lib/Cake/Utility/ObjectCollection.php : 130 
ObjectCollection::trigger 
/var/www/source/cakephp/lib/Cake/Event/CakeEventManager.php : 246 
/var/www/source/cakephp/lib/Cake/Controller/Controller.php : 671 
/var/www/source/cakephp/lib/Cake/Routing/Dispatcher.php : 183 
/var/www/source/cakephp/lib/Cake/Routing/Dispatcher.php : 161 
/var/www/source/cakephp/lib/Cake/TestSuite/ControllerTestCase.php : 271 
ControllerTestCase::_testAction 
/var/www/source/cakephp/lib/Cake/TestSuite/ControllerTestCase.php : 189 

Saludos

+0

Hola, tengo el mismo problema, pero creo que el problema no está relacionado con la solicitud posterior, sino con el tipo de devolución. Recibo el mismo error en cualquier solicitud de obtención, cuando cambio el tipo de devolución del "resultado" predeterminado a "vars" u otro, las solicitudes de publicación funcionan sin problemas, incluso cuando el componente de seguridad está activo. = / –

Respuesta

Cuestiones relacionadas