Files
ElyOffice/tasks/reviews/C07.3-r3.md
T

6 lines
1.7 KiB
Markdown

FAIL
crates/ely-lok/src/worker/input.rs:180 — HTML 仅验证 UTF-8(:161),随后以撤销深度增加判定导入成功;内嵌图片解码失败仍返回成功,并丢失原选区,违反 LOK-06 与失败保留输入要求。场景:固定引擎加载正文为 `Hello 世界` 的 FODT,执行 `.uno:SelectAll`,再粘贴 MIME `text/html`、载荷 `<html><body><img src="data:image/png;base64,dGhpcyBpcyBub3QgYSBwbmc="></body></html>`(图片数据为 `this is not a png`)。worker 回复 `OK`,保存后的段落为 `[""]`、`<draw:image` 数量为 0,原选区消失;将同一 HTML 的图片数据换成有效 PNG,导入后图片数量为 1。隔离回归的失败回传与正文保留断言失败。修复方向:验证 HTML 中实际导入的载荷与内核导入结果,对失败执行完整回滚并恢复选区;补充有选区时损坏 HTML 内嵌图片的回归。
crates/ely-lok/src/worker/input.rs:178 — 使用 `UndoCount` 的长度差判断成功及计算回滚步数,在撤销历史达到容量后将成功粘贴判成失败,回滚循环执行 0 次,文档已被修改。场景:固定引擎加载 `Hello 世界`,在正文开头连续粘贴 100 次 MIME `text/plain;charset=utf-8`、载荷依次为 `paste1 ` 至 `paste100 `,均成功;第 101 次粘贴 `paste101 ` 返回 `the engine did not paste text/plain;charset=utf-8`。保存正文已包含 `paste101 `,日志为 `failed, 0 steps undone`;两个独立 worker 均复现,隔离回归的有效粘贴成功断言失败。修复方向:按实际操作结果确认粘贴,以能识别历史容量变化的事务边界记录回滚范围;补充撤销历史满时的粘贴成功及失败回滚回归。