order-track-url.php

20260916-181749 轮 · 看它的历史
── A 正常路径 ──
✔ A1 {no} 被替换成单号   得 'https://t.example.com/track?no=EP12345' / 期望 'https://t.example.com/track?no=EP12345'
✔ A2 模板里多处 {no} 全部替换   得 'https://t.example.com/AB9/detail?ref=AB9' / 期望 'https://t.example.com/AB9/detail?ref=AB9'
── B 空值:不给死链,返回空串让调用方整块不渲染 ──
✔ B1 模板空 → 空串   得 '' / 期望 ''
✔ B2 单号空 → 空串   得 '' / 期望 ''
✔ B3 两个都空 → 空串   得 '' / 期望 ''
✔ B4 模板只有空白 → 空串   得 '' / 期望 ''
✔ B5 单号只有空白 → 空串   得 '' / 期望 ''
── C 边界 ──
✔ C1 模板里没有 {no} → 原样返回(不报错,管理员一眼看得出没替换)   得 'https://t.example.com/track' / 期望 'https://t.example.com/track'
✔ C2 单号里的特殊字符被转义(防把 query 劈开)   得 'https://t/?no=A%26B%3DC&x=1' / 期望 'https://t/?no=A%26B%3DC&x=1'
✔ C3 单号里的空格被转义   得 'https://t/?no=A%20B' / 期望 'https://t/?no=A%20B'
✔ C4 前后空白被剥掉   得 'https://t/EP1' / 期望 'https://t/EP1'
── D 🔴 守卫:该绿的绿着 ──
✔ D1 正常输入不会被判成空
✔ D2 不抛异常(它是展示辅助,绝不该挡住订单详情渲染)

PASS=13 FAIL=0