MCDVoiceCooldown 集中测试清单

用途：后续每次结构优化后，可按此清单集中测试，避免遗漏关键功能。

============================================================
一、基础启动测试
============================================================
1. 插件是否能正常加载，无 Lua 报错。
2. 小地图按钮是否显示/隐藏正常。
3. /mcd 或插件入口是否能打开主窗口。
4. 主窗口关闭、再次打开是否正常。
5. 切换语言后主窗口、编辑弹窗、按钮文字是否刷新。

============================================================
二、新增 / 编辑 / 删除语音测试
============================================================
1. 新增 CD 提示。
2. 新增施法成功提示。
3. CD 提示与施法成功提示的输入内容是否互不串联。
4. 编辑已有语音后保存。
5. 删除已有语音后不会自动恢复。
6. 删除后已保存列表是否刷新。
7. 技能 ID 自动填充名称 / 图标 / 基础 CD 是否正常。
8. 天赋 ID 自动填充名称是否正常。
9. 物品 ID 名称 / 图标 / 触发法术 ID 是否能补全。

============================================================
三、TTS / 音效测试
============================================================
1. TTS 文本保存。
2. TTS 语速保存。
3. TTS 测试按钮能播放。
4. 内置音效选择后能试听。
5. SharedMedia 音效选择后能试听。
6. 自定义音效路径保存后能播放。
7. 切换声音来源后，已输入的延时秒数、TTS 文本、CD 等字段不会消失。

============================================================
四、合集测试
============================================================
1. 新增合集。
2. 重命名合集。
3. 删除合集。
4. 新增子合集。
5. 展开 / 收拢合集。
6. 合集内大量条目时展开/收拢是否卡顿。
7. 拖入合集。
8. 拖出合集。
9. 合集排序。
10. 合集嵌套排序。
11. 折叠状态下红 / 黄 / 绿载入状态是否正确。

============================================================
五、导入 / 导出测试
============================================================
1. 单条语音导出 / 导入。
2. 合集导出 / 导入。
3. 嵌套合集导出 / 导入。
4. 完整配置导出 / 导入。
5. 导入后列表是否刷新。
6. 导入后是否明显卡顿。
7. 导入后物品触发法术 ID 是否能自动补全。
8. 导入后固定 CD、施法成功、嗜血提醒是否仍能触发。

============================================================
六、战斗触发测试
============================================================
1. 固定 CD 到期提醒是否正常。
2. 充能类技能提醒是否正常。
3. 施法成功提醒是否正常。
4. 勾选延时播放后是否按秒数延迟。
5. 嗜血 / 英勇 / 时间扭曲疲劳触发时是否播放提醒。
6. 战斗中不应触发秘密值/污染报错。

============================================================
七、专精 / 天赋 / 作用域测试
============================================================
1. 当前职业当前专精配置是否载入。
2. 当前职业全专精配置是否载入。
3. 全职业配置是否载入。
4. 切换专精后运行时配置是否重建。
5. 切换天赋后配置是否刷新。
6. 带天赋条件的条目是否按预期启用/禁用。

============================================================
八、大量数据性能测试
============================================================
1. 大量普通语音条目下打开主窗口是否流畅。
2. 大量合集下展开/收拢是否流畅。
3. 大量配置导入是否比旧版本更少卡顿。
4. 选择条目是否只局部刷新，不触发全量重建。
5. 拖拽排序是否流畅。

============================================================
九、旧版本数据库兼容测试
============================================================
1. 老版本普通 CD 配置是否还能读取。
2. 老版本 castSuccessConfigs 是否还能触发。
3. 老版本没有合集数据时是否能自动初始化。
4. 删除标记是否能防止旧条目恢复。
5. 配置升级后是否不会丢数据。

[1.0.112 UI拆分专项测试]
- 下拉菜单：语言、职业、专精、音效来源、内置音效、SharedMedia。
- 下拉滚动：选项很多时是否能滚动，是否从当前选中项附近打开。
- 滚动容器：主列表、编辑弹窗内容区是否能滚动。
- 弹窗层级：下拉菜单是否显示在编辑弹窗上层，不被遮挡。
- 基础控件：按钮、输入框、勾选框是否仍保持原生外观。
- 新增 UI/EditorDrafts.lua：拆出新增 CD提示/施法成功 时的临时草稿保存、恢复、空白字段初始化。


[1.0.113 UI 拆分后补充测试]
- 已保存列表：加载、滚动、选中、右键菜单、拖拽排序、拖入/拖出合集。
- 列表标题：已载入/未载入展开收拢，数量是否正确。
- 合集行：展开、收拢、右键导出、右键删除、右键重命名、新建子合集。
- 编辑弹窗：打开新增、打开编辑、关闭、拖动窗口。
- 标签页：CD提示、施法成功、嗜血切换。
- 字段：技能ID、技能名、固定CD、天赋ID、天赋CD、延时播放秒数。
- 通知：TTS、内置音效、SharedMedia、自定义路径、测试按钮。


[1.0.114 追加测试]
- 编辑弹窗标签切换：CD提示 / 施法成功 / 嗜血。
- 编辑弹窗保存、测试、检查天赋、延时播放。
- 已保存列表已载入/未载入标题展开收拢。

[1.0.115 新增测试点]
- 已保存列表行点击、右键、拖拽。
- 普通语音行、合集行、空合集提示行显示。
- 导入/导出弹窗多行文本框输入、滚动、全选。



1.0.116 额外测试：
- 已保存列表普通行/合集行/空合集提示行显示是否正常。
- 行选中、拖拽、右键菜单是否正常。
- 新增合集、重命名合集、在合集中新建语音是否正常。
- 导入/导出弹窗是否仍然正常。

- 主窗口新增、编辑、删除、刷新、导入、导出按钮是否正常。
- 点击列表选择条目后，编辑/删除按钮状态是否正常。


[1.0.117 集中测试补充]
- 主界面 EnsureFrame / Open / Close。
- 主窗口按钮：新增语音、新增合集、编辑、删除、刷新、导入、导出完整配置。
- 列表拖拽：语音排序、拖入合集、拖出合集、合集排序、合集跨范围移动。
- AceOptions 旧入口兼容：GetState、GetEntryMap、GetSavedListLayoutForScope、MoveSavedListItem。

[1.0.118 拖拽修复专项测试]
- 合集内语音拖到合集标题中间：应放入合集。
- 合集内语音拖到合集标题上边缘：应移动到合集外，并位于合集前。
- 合集内语音拖到合集标题下边缘：应移动到合集外，并位于合集后。
- 子合集内语音拖到父层是否正常。
- 子合集内语音拖到根列表是否正常。
- 普通语音拖入合集、语音排序、合集排序、合集嵌套是否仍然正常。

[1.0.119 拖拽系统收尾专项测试]
- 普通语音拖到普通语音上方/下方：应排序到目标前/后。
- 普通语音拖到合集标题中间：应放入该合集。
- 普通语音拖到合集标题上边缘/下边缘：应移动到合集同级前/后。
- 合集内语音拖回根列表：应不丢失、不重复。
- 子合集内语音拖回父合集或根列表：应不丢失、不重复。
- 合集拖到合集标题中间：应变成子合集。
- 合集拖到合集标题上/下边缘：应同级排序。
- 不允许把父合集拖入自己的子合集；操作应安全失败，不导致合集消失。

## 1.0.120 记录
- 完成 SavedList 刷新性能优化。
- 新增 UI/SavedListRefresh.lua，统一刷新、缓存渲染、展开/收拢逻辑。
- SavedListBuilder 增加单次刷新内的 scope layout 缓存。
- SavedListLayout 增加配置表、职业/专精名、载入状态、折叠计数缓存。
- SavedListRows 增加行文本缓存，减少缓存重绘时重复拼接文本。
- 后续测试重点：大合集展开/收拢、导入完整配置后列表刷新、拖拽后刷新、删除/新增后刷新。



[1.0.121 重点测试]
1. 空合集左键点击后，编辑/删除按钮是否可用。
2. 合集内语音拖到列表空白处，是否能移出合集。
3. 合集内语音拖到合集标题上/下边缘，是否能移出并排序。
4. 大合集展开是否比之前更流畅。
5. 固定 CD、施法成功、延时播放、嗜血提醒是否不受影响。

[1.0.122 拖拽重点测试]
- 合集内普通语音 -> 拖到列表空白区域：应移出合集，进入该职业/专精根列表末尾。
- 合集内普通语音 -> 拖到父合集标题上半区：应移出合集，排在父合集前面。
- 合集内普通语音 -> 拖到父合集标题下半区：应移出合集，排在父合集后面。
- 合集内普通语音 -> 拖到其它合集标题中间：应放入其它合集。
- 合集内普通语音 -> 拖到其它合集标题上/下边缘：应移到其它合集外层前/后。
- 根列表普通语音 -> 拖入合集：应仍然正常。
- 合集 -> 拖入其它合集 / 拖回根列表：应仍然正常，不应消失。
