SesionTest
extends ApiTestCase
in package
Sección SESIÓN de la API — reglas de autenticación propias del modelo usuario_web (login único, usuarios deshabilitados, no enumeración).
El ciclo genérico de login/logout se cubre en tests/general/AuthTest.php; aquí solo lo específico de la tabla.
Tags
Attributes
- #[Group]
- 'trackingweb'
- #[Group]
- 'sesion'
Table of Contents
Properties
- $cookieJar : CookieJar
- $debug : bool
- $http : Client
Methods
- testErrorDeLoginNoDistingueUsuarioInexistenteDeClaveIncorrecta() : void
- El mensaje de error debe ser idéntico tanto si el usuario no existe como si la contraseña es incorrecta. De lo contrario se podrían enumerar los logins válidos del sistema.
- testLoginCorrectoDevuelveDatosDeSesion() : void
- La respuesta de un login correcto debe traer los datos de sesión esperados y nada más relacionado con credenciales.
- testUsuarioDeshabilitadoNoPuedeIniciarSesion() : void
- Un usuario con habilitado = 0 no debe poder iniciar sesión.
- assertNoFiltraDetallesInternos() : void
- Verifica que un mensaje de error no filtra detalles internos del servidor (SQL, rutas de archivo, clases o trazas de excepción).
- assertRespuestaApi() : void
- Verifica que la respuesta cumple el contrato mínimo de la API: JSON válido con una clave booleana 'ok'.
- credenciales() : array{0: string, 1: string}
- Devuelve las credenciales de test del entorno.
- idSesion() : string|null
- Devuelve el identificador de sesión actual del cookieJar, si existe.
- iniciarSesion() : void
- Inicia sesión con las credenciales del entorno.
- nuevoCliente() : Client
- Crea un cliente HTTP que comparte el cookieJar del test.
- post() : array{0: int, 1: array}
- Ejecuta un POST contra la API y devuelve [statusCode, bodyArray].
- setUp() : void
- Carga el entorno de test, el cookieJar y el cliente HTTP.
- trace() : void
- Imprime una traza de ejecución con contexto, dirección y payload.
Properties
$cookieJar
protected
CookieJar
$cookieJar
$debug
protected
bool
$debug
= \false
$http
protected
Client
$http
Methods
testErrorDeLoginNoDistingueUsuarioInexistenteDeClaveIncorrecta()
El mensaje de error debe ser idéntico tanto si el usuario no existe como si la contraseña es incorrecta. De lo contrario se podrían enumerar los logins válidos del sistema.
public
testErrorDeLoginNoDistingueUsuarioInexistenteDeClaveIncorrecta() : void
Tags
testLoginCorrectoDevuelveDatosDeSesion()
La respuesta de un login correcto debe traer los datos de sesión esperados y nada más relacionado con credenciales.
public
testLoginCorrectoDevuelveDatosDeSesion() : void
Tags
testUsuarioDeshabilitadoNoPuedeIniciarSesion()
Un usuario con habilitado = 0 no debe poder iniciar sesión.
public
testUsuarioDeshabilitadoNoPuedeIniciarSesion() : void
Crea un usuario temporal deshabilitado, comprueba el login y lo elimina.
Tags
Attributes
- #[Group]
- 'escritura'
assertNoFiltraDetallesInternos()
Verifica que un mensaje de error no filtra detalles internos del servidor (SQL, rutas de archivo, clases o trazas de excepción).
protected
assertNoFiltraDetallesInternos(array<string|int, mixed> $body[, string $contexto = '' ]) : void
Parameters
- $body : array<string|int, mixed>
-
: Cuerpo decodificado
- $contexto : string = ''
-
: Texto identificativo para el mensaje de fallo
assertRespuestaApi()
Verifica que la respuesta cumple el contrato mínimo de la API: JSON válido con una clave booleana 'ok'.
protected
assertRespuestaApi(array<string|int, mixed> $body[, string $contexto = '' ]) : void
Parameters
- $body : array<string|int, mixed>
-
: Cuerpo decodificado
- $contexto : string = ''
-
: Texto identificativo para el mensaje de fallo
credenciales()
Devuelve las credenciales de test del entorno.
protected
credenciales([bool $admin = false ]) : array{0: string, 1: string}
Parameters
- $admin : bool = false
-
: true para las credenciales de administrador
Return values
array{0: string, 1: string}idSesion()
Devuelve el identificador de sesión actual del cookieJar, si existe.
protected
idSesion() : string|null
Se busca por coincidencia parcial para soportar session.name personalizado.
Return values
string|nulliniciarSesion()
Inicia sesión con las credenciales del entorno.
protected
iniciarSesion([bool $admin = false ]) : void
Marca el test como skipped si no están configuradas.
Parameters
- $admin : bool = false
-
: true para iniciar como administrador
Tags
nuevoCliente()
Crea un cliente HTTP que comparte el cookieJar del test.
protected
nuevoCliente([array<string|int, mixed> $headers = [] ]) : Client
Permite sobreescribir cabeceras (útil para probar el binding de UA).
Parameters
- $headers : array<string|int, mixed> = []
-
: Cabeceras adicionales o sobreescritas
Return values
Clientpost()
Ejecuta un POST contra la API y devuelve [statusCode, bodyArray].
protected
post(string $endpoint, array<string|int, mixed> $params) : array{0: int, 1: array}
Parameters
- $endpoint : string
-
: Punto de entrada
- $params : array<string|int, mixed>
-
: Parametros de la peticion
Tags
Return values
array{0: int, 1: array}setUp()
Carga el entorno de test, el cookieJar y el cliente HTTP.
protected
setUp() : void
El cookieJar se recrea en cada test para garantizar aislamiento.
trace()
Imprime una traza de ejecución con contexto, dirección y payload.
protected
trace(string $contexto, string $mensaje[, mixed|null $payload = null ]) : void
Los valores sensibles se sustituyen por '***'.
Parameters
- $contexto : string
-
: Contexto del mensaje
- $mensaje : string
-
: Mensaje
- $payload : mixed|null = null
-
: Carga del mensaje