\Tests\FeatureFileSanitizerTest

上传文件净化

被测对象:FileSanitizer(sanitizeImage / thumbnail / verifyMime) 守护约定:重编码剥离嵌入载荷并等比缩放;缩略图按上限生成;净化关闭保持原图; MIME 校验拒绝伪造扩展。

Summary

Methods
Properties
Constants
test_sanitize_strips_embedded_metadata_and_resizes()
test_thumbnail_generated_and_skipped_for_small_images()
test_sanitize_disabled_keeps_original()
test_verify_mime_rejects_forged_extension()
No public properties found
No constants found
requireRedis()
buildCacheRegistry()
setUp()
tearDown()
No protected properties found
N/A
putJpegWithIptc()
$sanitizer
N/A

Properties

$sanitizer

$sanitizer : \App\Support\FileSanitizer

Type

FileSanitizer

Methods

test_sanitize_strips_embedded_metadata_and_resizes()

test_sanitize_strips_embedded_metadata_and_resizes() : void

验证净化剥离嵌入载荷并等比缩放至最大边。

test_thumbnail_generated_and_skipped_for_small_images()

test_thumbnail_generated_and_skipped_for_small_images() : void

验证缩略图按上限生成、原图不超过上限时不生成。

test_sanitize_disabled_keeps_original()

test_sanitize_disabled_keeps_original() : void

验证净化关闭时保持原图不变。

test_verify_mime_rejects_forged_extension()

test_verify_mime_rejects_forged_extension() : void

验证 MIME 校验拒绝伪造扩展、真实图片通过。

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

setUp()

setUp() : void

tearDown()

tearDown() : void

putJpegWithIptc()

putJpegWithIptc(string  $path, int  $w = 800, int  $h = 600) : string

生成带嵌入载荷(SOI 后注入 APP13 段,模拟 EXIF/IPTC/多态数据)的 JPEG 测试图

Parameters

string $path
int $w
int $h

Returns

string —