kityminder
Version:
110 lines (97 loc) • 6.86 kB
Markdown
测试要点
1. 操作模式
1.1 常规模式
1.1.1 只在该模式允许的操作:`节点选择`、`创建新节点`、`拖动到父节点`
1.2 拖动模式
1.1.2 只在该模式允许的操作:`画布拖放`
1.3 文本编辑模式
1.1.3 只在该模式允许的操作:`文本框选`、`文本编辑`
1.4 模式切换
1.4.1 常规模式下,在单个选中的节点上点击文字区域(多选的情况下不算),进入文本编辑模式,并且光标定在点击的位置上
1.4.2 常规模式下,在任意节点上双击文字区域,进入文本编辑模式,并且文本被选中
1.4.3 常规模式下,创建了新节点的时候,进入文本编辑模式,新节点文本被选中
1.4.4 常规模式下,有唯一选中的节点,按下字母和数字的按键会进入文本编辑模式,并且文字变为刚输入的字母或数字,或是弹出输入法框
1.4.5 文本编辑模式下,按 Tab 和 Enter 退出文本编辑模式,回到常规模式
1.4.6 文本编辑模式下,点击非文本区域的任何位置,退出文本编辑模式,回到常规模式
1.4.7 常规模式下,按 Space 或点击 UI 上的拖动图标进入拖动模式
1.4.8 拖动模式下,按 Space 或点击 UI 上的拖动图标退出拖动模式,回到常规模式
2. `节点选择` 交互
2.1 该交互只在常规模式下有效
2.2 点击任意未被选中的节点,会使其选中
2.3 点击空白处,会取消节点的选择
2.4 按着 Shift 键,点击的节点会切换选择状态
2.5 在空白处按下鼠标并移动10像素后,会显示选框;当选框跟节点有重合的时候,节点会被选中,没有重合的节点不被选中
2.6 按键盘方向键的时候:
2.6.1 对于一个节点“方向”的定义为:
2.6.1.1 以节点为坐标原点的直角坐标系顺时针旋转45度,第一象限为“上”,第二象限为“左”,第三象限为“右”,第四象限为“下”
2.6.2 假如当前没有节点被选中,任何方向键都将选中根节点
2.6.3 假如当前有唯一选中的节点,将导航至指定方向区域的最近的节点
2.6.4 假如有多个选择的节点,以选择顺序第一个节点为参照,导航至其指定方向区域的最近的节点
2.6.5 假如被导航的区域中没有节点,选区保持不变
3. `创建新节点` 交互
3.1 目标节点定义为:
3.1.1 如果有唯一选中的节点,其为目标节点
3.1.2 如果有多个选中的节点,则首个(时间上)被选中的节点为目标节点
3.2 如果存在目标节点:
3.2.1 按下键盘的 Tab 键,会创建一个目标节点的子节点,并且新节点在唯一选中状态,模式变为文本编辑模式
3.2.2 按下键盘的 Enter 键,并且目标节点不是根节点,会创建一个目标节点的兄弟节点(紧邻的位置上),并且新节点在唯一选中,模式变为文本编辑模式
3.3 如果存在目标节点:
3.3.1 创建子节点的 UI 是可用的,否则不可用
3.3.2 如果目标节点是根节点,则创建兄弟节点的 UI 是不可用的,否则是可用的
3.4 该交互只在常规模式下有效
4. `拖放到父节点` 交互
4.1 该交互只在常规模式下有效
4.2 在任意节点上 mousedown,并且移动10像素以上,确定拖放对象:
4.2.1 如果节点没被选中,则节点被选中,并且作为拖动对象
4.2.2 如果节点是被选中的,则所有选中的节点作为拖放对象
4.3 排除无效拖放对象:
4.3.1 如果存在一个拖放对象A和另一个拖放对象B,A是B的祖先,则B被排除
4.3.2 排除后剩余的对象成为真正的拖放对象
4.4 拖放对象表示为一个拖放图形,并且显示拖放对象的数量
4.5 拖放图形随鼠标移动,并且每次移动会判断是否遇到拖放目标:
4.5.1 拖放对象本身以及整棵子树都不能作为拖放目标
4.5.2 如果拖放图形和拖放目标的图形有重合,拖放目标会高亮,否则不会高亮
4.6 如果在遇到拖放目标的时候释放鼠标(mouseup),会让拖放对象成为拖放目标的子节点,并且:
4.6.1 保持之前拖放目标的选中状态
4.6.2 保证拖放目标的顺序与拖放之前保持一致
5. `画布导航` 交互
5.1 该交互只在拖动模式下有效
5.2 在任意位置鼠标按下(mousedown)之后画布可以随鼠标移动
5.3 鼠标释放(mouseup)之后画布不再随鼠标移动
5.4 按下方向键会让画布用动画朝反方向移动一定的距离
6. `画布缩放` 交互
6.1 在非文本编辑模式下,点击 `+` 和 `-` 分别可以拉近视野(放大画布)和拉远视野(缩小画布)
6.2 在任意模式下,使用鼠标滚轮可以缩放视野
6.2.1 往上滚动拉近视野
6.2.3 往下滚动拉远视野
6.3 在任意模式下,UI 上的 zoom-in 和 zoom-out 分别可以拉近视野和拉远视野
6.4 视野拉远和拉近都有最值,不能无限操作;当每个操作不可用的时候,UI 上的按钮呈不可用状态
7. `文本框选` 和 `文本编辑` 和默认行为一致即可
8. `字体样式` 功能
8.1 该功能在 `拖放模式` 下不可用
8.2 包括的子功能:
8.2.1 加粗
8.2.2 斜体
8.2.3 字体
8.2.4 字号
8.2.5 颜色
8.3 所有的子功能以节点为单位设置和读取
8.4 对于选中的节点在 UI 上应该反映当前的样式状态
8.5 UI 上设置样式针对所有选中的节点生效
8.6 没有选中节点的时候,UI 上的功能按钮应该呈不可用状态
9. `子节点收缩功能`
9.1 在一级节点及以上,如果存在子节点,显示收缩功能的图标,否则不显示
9.2 收缩图标显示 `-` 的时候,子节点显示;收缩图标显示 `+` 的时候,子节点不显示;点击图标切换这两种状态
10. `节点删除功能`
10.1 目标节点的计算方法同拖放到父节点的拖放目标的计算方法
10.2 如果目标节点包含根,把根从目标节点中移除
10.3 如果包含删除目标,删除操作的 UI 是可用的,否则是不可用的
10.4 把所有目标节点从其父节点中移除
11. `标签功能`
11.1 对于选中的节点,点击优先级标签和完成度标签可以在节点文本前添加标签图形
11.2 对于同一类的标签,只能添加一个标签
11.3 选中单个节点的时候,标签面板显示选中节点的当前标签;
11.4 多选的情况下,如果标签一致以任意一个节点为准来显示状态;标签不一致显示所有包含的状态
12. `导入导出功能`
12.1 导出数据应该能下载一个文件
12.2 下载的文件拖动到画布上,可以还原原来的数据