2011-03-29 11 views
6

Quiero probar la función de inicio de sesión si funciona propperly y sólo permite a los usuarios válidos y activos enCakephp las pruebas de acceso

Mi accesorio de usuario contiene:

array(
     'password' => '*emptyPasswordHash*', // empty password 
     'username' => 'Lorem', 
     'balance' => 0, 
     'currency' => 'USD', 
     'id' => 1, 
     'user_group_id' => 3, //Customer 
     'active' => 1, 
     'hash' => 'LoremHash' 
    ), 

Mi función de prueba es el siguiente:

function testLogin() { 
      //test valid login 
      $result = $this->testAction('/users/login', array(
       'data' => array(
        'User' => array(
         'username' => 'Lorem', 
         'pass' => '', 
         'remember' => true 
       )), 
       'method' => 'post', 
       'return' => 'view' 
      )); 

      debug($result); 

}

La forma de la conexión tiene 3 entradas: username, password y remember

he puesto $this->Auth->autoRedirect = false; en el UsersController::beforeFilter y estoy haciendo algunas cosas de configuración de cookies

cuando debug($this->data); en UsersController::login() que muestra los mismos datos cuando se prueba exacta y al iniciar la sesión normaly. Pero al probar el inicio de sesión falla y obtengo el mensaje $this->Auth->loginError en lugar de un inicio de sesión.

¿Cómo puedo probar la acción de inicio de sesión adecuadamente?

Respuesta

1

si utiliza tortas componente de autenticación y no te entrar ilegalmente en él hasta que no tienes que ...

https://github.com/cakephp/cakephp/blob/master/cake/tests/cases/libs/controller/components/auth.test.php#L545

y si realmente quiere, ver cómo los pros lo hacen :)

+0

El enlace ya no funciona ... :( –

+0

https://github.com/cakephp/cakephp/blob/26d526f6240239094aa714b86093cd36fbb9a1f3/cake/tests/cases/libs/controller/components/auth.test.php#L561 – dogmatic69

0

¿También configura la función personalizada, como se describe en el CakePHP manual:

Normalmente, el AuthComponent se intento de verificar que los de inicio de sesión credenciales que ha introducido son precisa comparándolos con lo que es almacenado en su modelo de usuario. Sin embargo, hay ocasiones en las que podría querer hacer un trabajo adicional para determinar las credenciales adecuadas. Por estableciendo esta variable en uno de varios valores diferentes, puede hacer cosas diferentes.

Cuestiones relacionadas