Documentación de Proyecto Sincro

AutorizacionTest extends ApiTestCase

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
see
api::requirePermisos
requires

PHP 8.0 Uso de tipado estricto y funciones de strings

requires

PHPUnit.

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

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
throws
GuzzleException
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
throws
GuzzleException
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
throws
GuzzleException

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|null

iniciarSesion()

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
throws
GuzzleException

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
Client

post()

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
throws
GuzzleException
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


        
On this page

Search results