Files
ElyOffice/tasks/reviews/C08.4-r1.md
T

12 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
FAIL
patches/libreoffice/0008-lok-toc-caption-formula-without-dialogs.patch:240 — [P1] 公式转换用 UTF-16 长度作为向左选择的字符数;补充平面字符会使选区越过刚插入的公式,吞入前面的正文并改变公式内容,违反 DOC-10。实测:在正文先键入 `PREFIX`,随后执行 `formula.insert(["𝑥 + 1"])`;命令返回成功,`.uno:Formula` 读回 `X𝑥 + 1`,落盘正文只剩 `PREFI`。现有公式测试仅覆盖 ASCII。修复方向:按实际插入范围选中文字,统一字符串长度与内核光标移动的计数单位,并验证正文及原式在补充平面字符和组合字符下完整保留。
apps/ely-doc/src/refs.rs:103 — [P1] 所有提示框统一设置 `max_len(1000)`,公式编辑预填时静默截断已有原式,违反 DOC-10 和出错即暴露规则。临时副本中先通过内核插入 `"x + ".repeat(300) + "1"`(1201 字符),选中公式调用 `on_formula`;内核原式完整,编辑框实际只剩前 1000 字符,末尾的 `1` 已丢失。用户直接点击 Apply 会以截断值替换原公式。修复方向:完整保留已加载公式的预填内容;任何长度限制均在提交前明确校验,加入超过 1000 字符的预填与保存回归。
patches/libreoffice/0008-lok-toc-caption-formula-without-dialogs.patch:238 — [P2] 修改选中公式先删除整个对象,再以默认属性创建新对象,导致原有锚点和布局属性丢失,破坏 DOC-10 的公式修改及对象定位。实测:插入 `a over b`,执行 `image.anchor_page`,落盘有 `text:anchor-type="page"` 和 `text:anchor-page-number="1"`;保持该公式选中,修改为 `c over d` 后保存,锚点变成 `text:anchor-type="as-char"`,页锚点消失,公式回到正文流中。现有回归只检查对象数量和公式文字。修复方向:在选中公式的嵌入对象上更新原式,保留框架、锚点及布局属性,并验证一次撤销恢复原式和对象属性。
crates/ely-lok/src/commands/refs.rs:47 — [P2] 题注对话框允许空正文提交(`apps/ely-doc/src/refs.rs:246`),命令表却将 Text 作为必填文本;可提交的编号题注操作必然失败,违反 DOC-09。实测:选中公式,以空题注提交,`caption.insert(["Figure", ""])` 返回 `caption.insert needs Text`,对话框已经关闭,文档中没有题注。补丁中的题注入口支持空正文,现有测试只提交 `ratio`。修复方向:统一题注表单与命令参数的空正文约束,让编号题注的有效提交走通,并增加实际提交路径回归。
crates/ely-lok/src/review.rs:140 — [P2] 批注 HTML 转正文时同时把 `<br/>` 与其外层空段落的 `</div>` 计作换行,重复增加空行,审阅面板显示的正文偏离原批注(DOC-11)。实测:通过内核插入含 `a\n\nNext` 的批注,`.uno:ViewAnnotations` 给出 `<div>a</div><div><br/></div><div>Next</div>`;`review::notes` 返回 `a\n\n\nNext`。每个空段落都多出一次换行,当前单测仅覆盖连续非空段落。修复方向:按段落边界转换正文,正确处理空段落内的占位 br,并用内核实际返回的多段批注验证空行数量。