\Tests\FeatureSecurityConfigTest

测试基座(抽象基类)

被测对象:无(公共测试设施) 守护约定:Redis 直连用例在无 Redis 环境(如 CI)跳过而非失败(TEST_REQUIRE_REDIS=1 可强制失败); 缓存注册表最小 schema 供 sqlite :memory: 下凡走注册表的用例自建。

Summary

Methods
Properties
Constants
test_hsts_header_absent_by_default()
test_hsts_header_emitted_when_enabled()
test_json_body_guard_rejects_oversized_body()
test_json_body_guard_allows_within_limit()
test_password_min_rule_uses_config_value()
test_password_min_rule_falls_back_to_default()
test_login_request_password_min_driven_by_config()
test_fallback_exception_response_is_sanitized()
No public properties found
No constants found
requestErrors()
requireRedis()
buildCacheRegistry()
tearDown()
No protected properties found
N/A
mockConfig()
loginPasswordErrors()
No private properties found
N/A

Methods

test_hsts_header_absent_by_default()

test_hsts_header_absent_by_default() : void

验证 HSTS 默认关闭且既有安全头不受影响。

test_hsts_header_emitted_when_enabled()

test_hsts_header_emitted_when_enabled() : void

验证开启后 HSTS 下发 max-age。

test_json_body_guard_rejects_oversized_body()

test_json_body_guard_rejects_oversized_body() : void

验证 JSON 请求体超限返回 413。

test_json_body_guard_allows_within_limit()

test_json_body_guard_allows_within_limit() : void

验证 JSON 请求体在限内放行。

test_password_min_rule_uses_config_value()

test_password_min_rule_uses_config_value() : void

验证密码最小长度规则取配置值。

test_password_min_rule_falls_back_to_default()

test_password_min_rule_falls_back_to_default() : void

验证密码最小长度规则回落默认 min:6。

test_login_request_password_min_driven_by_config()

test_login_request_password_min_driven_by_config() : void

验证登录 Request 密码最小长度由配置驱动(默认 min:6 下 5 位拒、调 min:4 后通过)。

test_fallback_exception_response_is_sanitized()

test_fallback_exception_response_is_sanitized() : void

兜底异常响应不泄露消息原文(debug 开启时仅附异常类名;SQL/路径/凭据不入响应体)。

requestErrors()

requestErrors(\Illuminate\Foundation\Http\FormRequest  $request, string|null  $uri = null, string|null  $controller = null) : array<string,string[]>

独立校验 FormRequest 并返回错误集。

Parameters

\Illuminate\Foundation\Http\FormRequest $request
string|null $uri

路由模板(如 'templates/{id}');Request 的 withValidator 依赖 route 上下文时必传,否则可省略

string|null $controller

控制器@方法 串(路由绑定用,仅与 $uri 搭配)

Returns

array

校验错误集(通过时为空数组)

requireRedis()

requireRedis() : void

Redis 依赖探针:直连 Redis 的测试(限流/会话/验证码)在无 Redis 环境(如 CI) 跳过而非失败——其余用例不受影响。CI 可设 TEST_REQUIRE_REDIS=1 强制模式: Redis 不可达即失败而非跳过,安全回归套件不允许静默消失。

buildCacheRegistry()

buildCacheRegistry(array  $items) : void

建缓存注册表最小 schema(td_sys_cache)并灌入注册项。

测试跑 sqlite :memory:,生产迁移含 PostgreSQL 专属 DDL 跑不通(DataScopeServiceTest 同因自建 schema); 而 CacheManager::registry() 现已从数据库表读取——凡走注册表的测试(remember/get/key/失效推导) 必须在 setUp 先调用本方法,否则注册表为空、remember 未登记名会走「自动登记」路径。

Parameters

array $items

tearDown()

tearDown() : void

mockConfig()

mockConfig(array  $values) : void

以指定值 mock ConfigService

Parameters

array $values

loginPasswordErrors()

loginPasswordErrors(string  $password) : array<string,string[]>

Parameters

string $password

Returns

array