---
type: Reference
title: Readme
description: >-
  Este directório contém os testes unitários para a classe `Security_Manager` do Care API, focando nas funcionalidades crí…
timestamp: 2025-09-14T03:27:08.976803+00:00
layer: raw
---
# Security Manager Unit Tests

## Descrição

Este directório contém os testes unitários para a classe `Security_Manager` do Care API, focando nas funcionalidades críticas de segurança:

### 5 Testes Principais

1. **test_validate_endpoint_permissions()** - Validação de permissões de endpoints
   - Endpoints públicos (status, health, version)
   - Endpoints de autenticação (login, password reset)
   - Endpoints protegidos (require JWT)

2. **test_rate_limiting_enforcement()** - Aplicação de rate limiting
   - Diferentes limites por tipo de endpoint
   - Separação por endereço IP
   - Bloqueio quando limite excedido

3. **test_authentication_requirement_check()** - Verificação de autenticação
   - Headers Authorization obrigatórios
   - Formato Bearer válido
   - Disponibilidade do serviço JWT

4. **test_sql_injection_protection()** - Proteção contra SQL injection
   - Sanitização de inputs maliciosos
   - Validação por tipo de dados
   - Bloqueio de padrões perigosos

5. **test_xss_prevention()** - Prevenção XSS
   - Escape de outputs HTML
   - Sanitização recursiva de arrays/objects
   - Diferentes contextos (text, html, url, attribute, javascript)

## Como Executar

### Executar apenas testes de Security Manager:
```bash
vendor/bin/phpunit tests/unit/Security/SecurityManagerTest.php
```

### Executar todos os testes unitários:
```bash
vendor/bin/phpunit --testsuite="KiviCare API Unit Tests"
```

### Com coverage:
```bash
vendor/bin/phpunit tests/unit/Security/SecurityManagerTest.php --coverage-text
```

## Dependências

- **PHPUnit 10+** - Framework de testes
- **WordPress Test Framework** - Ambiente WordPress para testes
- **Care API Security Manager** - Classe sendo testada

## Estrutura dos Testes

Cada teste segue a estrutura:

1. **Setup** - Configuração do ambiente (transients, mocks, $_SERVER vars)
2. **Execute** - Execução da funcionalidade
3. **Assert** - Validação dos resultados
4. **Cleanup** - Limpeza automática no tearDown()

## Cobertura de Testes

Os testes cobrem:
- ✅ Cenários positivos (funcionamento correcto)
- ✅ Cenários negativos (falhas esperadas)
- ✅ Edge cases (valores limites, formatos inválidos)
- ✅ Casos de erro (serviços indisponíveis)

## Notas Técnicas

- **Transients Mockados**: Rate limiting usa sistema de transients mockado para testes isolados
- **WordPress Nonces**: Usa nonces reais do WordPress para autenticidade
- **PHP 8.1+ Compatible**: Sintaxe moderna com strict types
- **PSR-4 Autoloading**: Namespaces correctos para autoload
- **WordPress Coding Standards**: Segue WPCS para consistência

## Exemplo de Output

```
PHPUnit 10.5.0

testValidateEndpointPermissions     ✓
testRateLimitingEnforcement         ✓
testAuthenticationRequirementCheck ✓
testSqlInjectionProtection          ✓
testXssPrevention                   ✓

Time: 00:00.123, Memory: 10.00 MB

OK (5 tests, 47 assertions)
```

---

**Implementado**: 2025-09-14 | **Versão**: 1.0.0 | **Autor**: Descomplicar®