2012-08-24 11 views
6

Ecco la mia UsersController caso prova:SecurityComponent nero-fora il mio banco di prova regolatore

<?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']); 
    } 

} 

Non c'è niente di speciale per il mio UsersController, ma utilizza la SecurityComponent (ereditato da AppController).

E quando ho eseguito il test, ottengo l'infame:

La richiesta è stata nero caso-forato Test: UsersControllerTestCase (testAdminSearchStudents)

Penso che sia perché io sono falsificare una richiesta POST senza il token CSRF e il riferimento?

Cosa devo fare per rendere questo lavoro senza rimuovere il componente di sicurezza dal mio controller?

io non sono sicuro se questo aiuterà, ma qui è la parte importante della traccia dello stack:

/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 

saluti

+0

Ciao, ho lo stesso problema, ma penso che il problema non sia correlato alla richiesta di post, ma al tipo di ritorno. Ricevo lo stesso errore su ogni richiesta di ricezione, quando cambio il tipo di ritorno dal "risultato" predefinito a "vars" o altro, le richieste di posta funzionano senza problemi, anche quando il componente di sicurezza è attivo. = / –

risposta

Problemi correlati