2012-08-24 7 views
6

Oto mój UsersController Test case:SecurityComponent czarno-dziurkami mój przypadek testowy kontroler

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

} 

Nie ma nic szczególnego w moim UsersController, ale korzysta z SecurityComponent (dziedziczona z AppController).

I kiedy uruchomić testy, pojawia się niesławny:

wniosek został czarno-otworami przypadek testowy: UsersControllerTestCase (testAdminSearchStudents)

myślę, że to dlatego, że jestem fałszowanie żądania POST bez tokena CSRF i odsyłania?

Co należy zrobić, aby wykonać tę pracę bez usuwania komponentu Security z mojego kontrolera?

Nie jestem pewien, czy to pomoże, ale tutaj jest ważną częścią ślad stosu:

/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 

Pozdrowienia

+0

Witam, mam ten sam problem, ale myślę, że problem nie jest związany z żądaniem, ale z typem zwracanym. Otrzymuję ten sam błąd na każdym żądaniu pobierania, kiedy zmieniam typ zwracania z domyślnego "wyniku" na "vars" lub inny, post żądania działają bez problemów, nawet gdy aktywny jest komponent bezpieczeństwa. = / –

Odpowiedz