AutorizacionTest
extends ApiTestCase
in package
Autorización de la API: acceso a acciones protegidas sin sesión y validación del parámetro conexion_ids que gobierna sobre qué base tracking se opera.
Tags
Attributes
- #[Group]
- 'general'
- #[Group]
- 'autorizacion'
Table of Contents
Properties
- $cookieJar : CookieJar
- $debug : bool
- $http : Client
Methods
- accionesProtegidasProvider() : array<string|int, mixed>
- conexionIdsInvalidosProvider() : array<string|int, mixed>
- testAccionesProtegidasSinSesionDevuelvenNoAutorizado() : void
- Toda acción protegida debe rechazar una petición sin sesión.
- testConexionIdsInvalidoDevuelve400() : void
- Un conexion_ids ausente o malformado debe devolver 400, nunca un error 5xx ni ejecutarse sobre una conexión arbitraria.
- testUsuarioNoPuedeOperarSobreConexionAjena() : void
- Un usuario autenticado no debe poder operar sobre una conexión que no tiene asignada.
- 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
accionesProtegidasProvider()
public
static accionesProtegidasProvider() : array<string|int, mixed>
Return values
array<string|int, mixed>conexionIdsInvalidosProvider()
public
static conexionIdsInvalidosProvider() : array<string|int, mixed>
Return values
array<string|int, mixed>testAccionesProtegidasSinSesionDevuelvenNoAutorizado()
Toda acción protegida debe rechazar una petición sin sesión.
public
testAccionesProtegidasSinSesionDevuelvenNoAutorizado(string $accion, array<string|int, mixed> $params) : void
Parameters
- $accion : string
- $params : array<string|int, mixed>
Tags
Attributes
- #[DataProvider]
- 'accionesProtegidasProvider'
testConexionIdsInvalidoDevuelve400()
Un conexion_ids ausente o malformado debe devolver 400, nunca un error 5xx ni ejecutarse sobre una conexión arbitraria.
public
testConexionIdsInvalidoDevuelve400(mixed $conexionIds) : void
Parameters
- $conexionIds : mixed
Tags
Attributes
- #[DataProvider]
- 'conexionIdsInvalidosProvider'
testUsuarioNoPuedeOperarSobreConexionAjena()
Un usuario autenticado no debe poder operar sobre una conexión que no tiene asignada.
public
testUsuarioNoPuedeOperarSobreConexionAjena() : void
Nota: si esta prueba devuelve 500 en lugar de 4xx, indica que la conexión inexistente escapa como excepción no controlada.
Tags
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