diff --git a/tests/at/at-spi-implementation-checklist.md b/tests/at/at-spi-implementation-checklist.md new file mode 100644 index 00000000..6e4aa7f3 --- /dev/null +++ b/tests/at/at-spi-implementation-checklist.md @@ -0,0 +1,85 @@ +# AT-SPI Implementation Checklist — Deepin Reader + +> Static gap analysis via remote-codebase MCP +> Naming convention: `Reader.` + +--- + +## Gap Statistics + +| Metric | Value | +|--------|-------| +| Total app-specific widget classes | 14 (registered in accessible.h) | +| Total interactive elements analyzed | 45+ | +| ✅ Already with setAccessibleName | ~30 | +| ⚠️ objectName fallback only (brittle) | ~10 | +| 🔴 No AT anchor at all (high priority) | 5 | +| 🔴 No AT anchor (medium priority) | 2 | + +--- + +## ⚠️ 仅 objectName fallback 元素(建议改进) + +这些元素依赖 `SET_FORM_ACCESSIBLE(DWidget/DLabel, m_w->objectName())` 或 `SET_BUTTON_ACCESSIBLE(DIconButton, m_w->objectName())` 生成 AT-SPI 名,objectName 是翻译非友好名,建议增加直接 setAccessibleName。 + +| # | 位置(文件:行号) | 当前 AT 名 (fallback) | 建议 | 已验证编译 | +|---|-------------------|----------------------|------|-----------| +| G1 | reader/widgets/ScaleWidget.cpp:42 | DLineEdit "scaleEdit_P" | `scaleEdit->setAccessibleName("ScaleInput")` | — | +| G2 | reader/widgets/ScaleWidget.cpp:52 | DIconButton "editArrowBtn" | `m_arrowBtn->setAccessibleName("Button_ScaleMenuToggle")` | — | +| G3 | reader/widgets/ScaleWidget.cpp:72 | DIconButton objectName match | `pPreBtn->setAccessibleName("Button_ZoomOut")` | — | +| G4 | reader/widgets/ScaleWidget.cpp:79 | DIconButton objectName match | `pNextBtn->setAccessibleName("Button_ZoomIn")` | — | +| G5 | reader/widgets/FindWidget.cpp:129 | DIconButton "SP_ArrowUpBtn" | `m_findPrevButton->setAccessibleName("Button_FindPrev")` | — | +| G6 | reader/widgets/FindWidget.cpp:136 | DIconButton "SP_ArrowDownBtn" | `m_findNextButton->setAccessibleName("Button_FindNext")` | — | +| G7 | reader/widgets/FindWidget.cpp:143 | DDialogCloseButton "closeButton" | `closeButton->setAccessibleName("Button_FindClose")` | — | +| G8 | reader/widgets/EncryptionPage.cpp:46 | QLineEdit "passwdEdit" | `edit->setAccessibleName("PasswordInput")` | — | +| G9 | reader/widgets/EncryptionPage.cpp:50 | DPushButton "ensureBtn" | `m_nextbutton->setAccessibleName("Button_PasswordConfirm")` | — | +| G10 | reader/eyeprotection/EyeProtectionAction.cpp:64 | RoundColorWidget "eye_0~3" | 每组 `btn->setAccessibleName("ColorTheme_N")` | — | + +--- + +## 🔴 无 AT 锚点(高优先级) + +这些类既无 class-level AT 注册,也无 setAccessibleName/setObjectName 调用,AT-SPI 名会退化为 Qt 内部生成的不可靠名称。 + +| # | 文件:行号范围 | 类名 | 问题 | 修改模板 | +|---|---------------|------|------|----------| +| H1 | reader/widgets/SlidePlayWidget.cpp:156-166 | SlidePlayWidget | 按钮createBtn只设objectName | 在createBtn内增加 `btn->setAccessibleName("Button_Slide" + strname)` | +| H2 | reader/widgets/HandleMenu.cpp:19-41 | HandleMenu | m_textAction, m_handAction 只有objectName | 在initActions中新增 `m_textAction->setAccessibleName("Action_SelectText")`; `m_handAction->setAccessibleName("Action_HandTool")` | +| H3 | reader/browser/BrowserMenu.cpp:223-232 | BrowserMenu::createAction | action只设objectName | 增加 `action->setAccessibleName("Action_" + objectname)` | +| H4 | reader/uiframe/TitleMenu.cpp:144-153 | TitleMenu::createAction | action只设objectName | 增加 `action->setAccessibleName("Action_" + objName)` | +| H5 | reader/widgets/ScaleMenu.cpp:113-122 | ScaleMenu::createAction | action只设objectName | 增加 `action->setAccessibleName("Action_" + objName)` | + +--- + +## ✅ 无需修改(已有类级注册或显式名) + +| 类名 | 文件 | 已有机制 | +|------|------|----------| +| MainWindow | reader/MainWindow.cpp | ✅ SET_FORM_ACCESSIBLE + Menu_Title | +| Central | reader/uiframe/Central.cpp | ✅ SET_FORM_ACCESSIBLE | +| CentralDocPage | reader/uiframe/CentralDocPage.cpp | ✅ SET_FORM_ACCESSIBLE | +| CentralNavPage | reader/uiframe/CentralNavPage.cpp | ✅ SET_FORM_ACCESSIBLE + 4个显式名 | +| DocSheet | reader/uiframe/DocSheet.cpp | ✅ SET_FORM_ACCESSIBLE | +| DocTabBar | reader/uiframe/DocTabBar.cpp | ✅ SET_FORM_ACCESSIBLE | +| TitleWidget | reader/uiframe/TitleWidget.cpp | ✅ SET_FORM_ACCESSIBLE + Button_ThumbnailToggle | +| SheetSidebar | reader/sidebar/SheetSidebar.cpp | ✅ SET_FORM_ACCESSIBLE + createBtn动态名 | +| SheetBrowser | reader/browser/SheetBrowser.cpp | ✅ SET_FORM_ACCESSIBLE + Tips/scrollBars | +| BrowserMenu | reader/browser/BrowserMenu.cpp | ✅ Menu_Browser | +| CatalogWidget | reader/sidebar/CatalogWidget.cpp | ✅ SET_FORM_ACCESSIBLE + 2个显式名 | +| BookMarkWidget | reader/sidebar/BookMarkWidget.cpp | ✅ SET_FORM_ACCESSIBLE + 3个显式名 | +| NotesWidget | reader/sidebar/NotesWidget.cpp | ✅ SET_FORM_ACCESSIBLE + 3个显式名 | +| SearchResWidget | reader/sidebar/SearchResWidget.cpp | ✅ SET_FORM_ACCESSIBLE + View_ImageList | +| ThumbnailWidget | reader/sidebar/ThumbnailWidget.cpp | ✅ SET_FORM_ACCESSIBLE + 3个显式名 | +| PagingWidget | reader/widgets/PagingWidget.cpp | ✅ 6个显式setAccessibleName | +| FindWidget | reader/widgets/FindWidget.cpp | ✅ Form_findSearchEdit + DLineEditChildLineEdit (部分) | + +--- + +## 动态风险提示 + +| 风险 | 说明 | +|------|------| +| 翻译文本作 AT 名 | `CentralNavPage` 中 `Label_Drag documents here` 和 `Label_format supported...` 使用翻译文本作为 accessibleName,不同语言下 AT-SPI 名称不一致 | +| 同名消歧 `_N` | 侧栏 4 个 Widget 共享 `View_ImageList` 名,运行时可能出现 `View_ImageList` / `View_ImageList_1` / ... 需验证 | +| createBtn 动态名 | `Button_Catalog` / `Button_BookMark` / `Button_Note` / `Button_Thumbnail` / `Button_search` 通过拼接生成,需确认每个 objName 唯一 | +| 菜单项无 AT 名 | 所有菜单项(TitleMenu/BrowserMenu/ScaleMenu/HandleMenu)的 action 只有 objectName,无 accessibleName → 菜单项可通过 `` + `` 定位 | \ No newline at end of file diff --git a/tests/at/at-tree-annotated.yaml b/tests/at/at-tree-annotated.yaml new file mode 100644 index 00000000..7d3d6970 --- /dev/null +++ b/tests/at/at-tree-annotated.yaml @@ -0,0 +1,603 @@ +version: '1.0' +tree: +- id: n0 + role: form + name: Form_DMainWindow + object_name: '' + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + children: + - id: n1 + role: form + name: Form_DMainWindowTitlebar + object_name: '' + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + children: + - id: n5 + role: form + name: Form_DTitlebarLeftArea + object_name: '' + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + children: + - id: n6 + role: button + name: DTitlebarIconLabel + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏左侧 | 功能: 应用图标/标题' + annotation_status: draft + - id: n7 + role: form + name: Form_TitleWidget + object_name: '' + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + children: + - id: n8 + role: check box + name: Button_ThumbnailToggle + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏左侧(缩略图切换按钮) | 功能: 显示/隐藏左侧栏缩略图面板' + annotation_status: draft + - id: n9 + role: form + name: Form_widget + object_name: '' + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + children: + - id: n10 + role: form + name: Form_scaleEdit_P + object_name: '' + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + children: + - id: n11 + role: text + name: DLineEditChildLineEdit + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏缩放输入框内 | 功能: 输入缩放百分比跳转' + annotation_status: draft + - id: n16 + role: form + name: Form_DTitlebarRightArea + object_name: '' + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + children: + - id: n17 + role: form + name: Form_DTitlebarButtonArea + object_name: '' + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + children: + - id: n18 + role: button + name: DTitlebarDWindowOptionButton + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏右侧(选项按钮) | 功能: 打开主菜单' + annotation_status: draft + - id: n19 + role: button + name: DTitlebarDWindowMinButton + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏右侧(最小化按钮) | 功能: 最小化窗口' + annotation_status: draft + - id: n20 + role: button + name: DTitlebarDWindowMaxButton + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏右侧(最大化按钮) | 功能: 最大化/还原窗口' + annotation_status: draft + - id: n21 + role: button + name: DTitlebarDWindowQuitFullscreenButton + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏右侧(退出全屏按钮) | 功能: 退出全屏模式' + annotation_status: draft + - id: n22 + role: button + name: DTitlebarDWindowCloseButton + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏右侧(关闭按钮) | 功能: 关闭窗口' + annotation_status: draft + - id: n23 + role: form + name: Form_Central + object_name: '' + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + children: + - id: n24 + role: form + name: Form_widget_1 + object_name: '' + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + children: + - id: n25 + role: form + name: Form_CentralDocPage + object_name: '' + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + children: + - id: n26 + role: form + name: Form_DocTabBar + object_name: '' + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + children: + - id: n27 + role: page tab list + name: '' + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏下方标签页栏 | 功能: 文档标签切换' + annotation_status: draft + children: + - id: n28 + role: button + name: 向左滚动 + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标签页栏左侧 | 功能: 向左滚动标签' + annotation_status: draft + - id: n29 + role: button + name: 向右滚动 + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标签页栏右侧 | 功能: 向右滚动标签' + annotation_status: draft + - id: n30 + role: button + name: DTabBarAddButton + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标签页栏右侧(添加按钮) | 功能: 打开新文档' + annotation_status: draft + - id: n33 + role: form + name: Form_CentralNavPage + object_name: '' + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + children: + - id: n36 + role: button + name: Button_SelectFile + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 中央导航页(选择文件按钮) | 功能: 打开文件选择对话框' + annotation_status: draft + - id: n37 + role: image + name: Label_Icon + object_name: '' + accessible_id: '' + classification: container + comment: '' + annotation_status: draft +- id: n39 + role: popup menu + name: DTitlebarMainMenu + object_name: '' + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + children: + - id: n40 + role: menu item + name: 新窗口 + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏主菜单->新窗口 | 功能: 打开新阅读窗口' + annotation_status: draft + - id: n41 + role: menu item + name: 新标签页 + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏主菜单->新标签页 | 功能: 当前窗口打开新标签页' + annotation_status: draft + - id: n42 + role: menu item + name: 保存 + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏主菜单->保存 | 功能: 保存当前文档' + annotation_status: draft + - id: n43 + role: menu item + name: 另存为 + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏主菜单->另存为 | 功能: 另存当前文档' + annotation_status: draft + - id: n44 + role: menu item + name: 在文件管理器中显示 + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏主菜单->在文件管理器中显示 | 功能: 打开文件所在位置' + annotation_status: draft + - id: n45 + role: menu item + name: 放大镜 + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏主菜单->放大镜 | 功能: 开启放大镜工具' + annotation_status: draft + - id: n46 + role: menu item + name: 工具 + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏主菜单->工具 | 功能: 工具子菜单(选择/手型)' + annotation_status: draft + children: + - id: n47 + role: popup menu + name: Menu_Hand + object_name: '' + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + children: + - id: n48 + role: menu item + name: 选择工具 + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏主菜单->工具->选择文本 | 功能: 切换为文本选择模式' + annotation_status: draft + - id: n49 + role: menu item + name: 手形工具 + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏主菜单->工具->手形工具 | 功能: 切换为手形滚动模式' + annotation_status: draft + - id: n50 + role: menu item + name: 搜索 + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏主菜单->搜索 | 功能: 打开文档内查找框' + annotation_status: draft + - id: n51 + role: menu item + name: 打印 + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏主菜单->打印 | 功能: 打印当前文档' + annotation_status: draft + - id: n52 + role: menu item + name: 主题 + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏主菜单->主题 | 功能: 主题子菜单' + annotation_status: draft + children: + - id: n53 + role: popup menu + name: DTitlebarThemeMenu + object_name: '' + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + children: + - id: n54 + role: menu item + name: 浅色 + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏主菜单->主题->浅色 | 功能: 切换为浅色主题' + annotation_status: draft + - id: n55 + role: menu item + name: 深色 + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏主菜单->主题->深色 | 功能: 切换为深色主题' + annotation_status: draft + - id: n56 + role: menu item + name: 跟随系统 + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏主菜单->主题->跟随系统 | 功能: 跟随系统主题' + annotation_status: draft + - id: n57 + role: menu item + name: 帮助 + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏主菜单->帮助 | 功能: 打开帮助文档' + annotation_status: draft + - id: n58 + role: menu item + name: 关于 + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏主菜单->关于 | 功能: 显示关于信息' + annotation_status: draft + - id: n59 + role: menu item + name: 退出 + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 标题栏主菜单->退出 | 功能: 退出应用' + annotation_status: draft +- id: n60 + role: popup menu + name: Menu_Hand + object_name: '' + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + children: + - id: n61 + role: menu item + name: 选择工具 + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 文档区域右键菜单 | 功能: 选择文本模式(右键菜单)' + annotation_status: draft + - id: n62 + role: menu item + name: 手形工具 + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 文档区域右键菜单 | 功能: 手形工具模式(右键菜单)' + annotation_status: draft +- id: n63 + role: popup menu + name: DTitlebarThemeMenu + object_name: '' + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + children: + - id: n64 + role: menu item + name: 浅色 + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 文档区域右键菜单->主题->浅色 | 功能: 切换浅色主题' + annotation_status: draft + - id: n65 + role: menu item + name: 深色 + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 文档区域右键菜单->主题->深色 | 功能: 切换深色主题' + annotation_status: draft + - id: n66 + role: menu item + name: 跟随系统 + object_name: '' + accessible_id: '' + classification: interactive + comment: 'GUI位置: 文档区域右键菜单->主题->跟随系统 | 功能: 跟随系统主题' + annotation_status: draft +- id: '' + role: panel + name: SideBarImageListView + object_name: '' + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + children: + - id: '' + role: panel + name: sideBarImageListView + object_name: sideBarImageListView + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + - id: '' + role: panel + name: sideBarImageListViewViewport + object_name: sideBarImageListViewViewport + accessible_id: '' + classification: container + comment: '' + annotation_status: draft +- id: '' + role: panel + name: BrowserMenu + object_name: BrowserMenu + accessible_id: '' + classification: container + comment: '' + annotation_status: draft +- id: '' + role: panel + name: EncryptionPage + object_name: '' + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + children: + - id: '' + role: panel + name: ensureBtn + object_name: ensureBtn + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + - id: '' + role: panel + name: passwdEdit + object_name: passwdEdit + accessible_id: '' + classification: container + comment: '' + annotation_status: draft +- id: '' + role: panel + name: HandleMenu + object_name: '' + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + children: + - id: '' + role: panel + name: defaultshape + object_name: defaultshape + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + - id: '' + role: panel + name: handleshape + object_name: handleshape + accessible_id: '' + classification: container + comment: '' + annotation_status: draft +- id: '' + role: panel + name: PagingWidget + object_name: '' + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + children: + - id: '' + role: panel + name: Edit_Page + object_name: Edit_Page + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + - id: '' + role: panel + name: Edit_Page_P + object_name: Edit_Page_P + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + - id: '' + role: panel + name: thumbnailNextBtn + object_name: thumbnailNextBtn + accessible_id: '' + classification: container + comment: '' + annotation_status: draft + - id: '' + role: panel + name: thumbnailPreBtn + object_name: thumbnailPreBtn + accessible_id: '' + classification: container + comment: '' + annotation_status: draft +- id: '' + role: panel + name: TextEditShadowWidget + object_name: TextEditShadowWidget + accessible_id: '' + classification: container + comment: '' + annotation_status: draft +- id: '' + role: panel + name: TransparentTextEdit + object_name: TransparentTextEdit + accessible_id: '' + classification: container + comment: '' + annotation_status: draft diff --git a/tests/at/at-tree.yaml b/tests/at/at-tree.yaml index c14bd246..437960a8 100644 --- a/tests/at/at-tree.yaml +++ b/tests/at/at-tree.yaml @@ -1,468 +1,1312 @@ version: '1.0' +app: '' tree: -- id: n0 - role: form +- role: form name: Form_DMainWindow object_name: '' accessible_id: '' - classification: container - comment: '' - annotation_status: draft + description: '' + actions: + - SetFocus + index_in_parent: 0 + states: + - active + - enabled + - focusable + - focused + - resizable + - sensitive + - showing + - visible + source: runtime children: - - id: n1 - role: form - name: Form_Central + - role: form + name: Form_DMainWindowTitlebar object_name: '' accessible_id: '' - classification: container - comment: '' - annotation_status: draft + description: '' + actions: [] + index_in_parent: 0 + states: + - enabled + - sensitive + - showing + - visible + source: runtime children: - - id: n2 - role: form - name: Form_widget_1 + - role: form + name: Form_DTitlebarLeftArea object_name: '' accessible_id: '' - classification: container - comment: '' - annotation_status: draft + description: '' + actions: [] + index_in_parent: 3 + states: + - enabled + - sensitive + - showing + - visible + source: runtime children: - - id: n3 - role: form - name: Form_CentralNavPage + - role: button + name: DTitlebarIconLabel object_name: '' accessible_id: '' - classification: container + description: '' + actions: + - Press + index_in_parent: 0 + states: + - enabled + - sensitive + - showing + - visible + source: runtime + id: n6 + classification: interactive + state_labels: &id001 [] + class_name: '' comment: '' annotation_status: draft + - role: form + name: Form_TitleWidget + object_name: '' + accessible_id: '' + description: '' + actions: [] + index_in_parent: 1 + states: + - enabled + - sensitive + - showing + - visible + source: runtime children: - - id: n6 - role: button - name: Button_SelectFile + - role: check box + name: Button_ThumbnailToggle object_name: '' accessible_id: '' + description: 缩略图 + actions: [] + index_in_parent: 0 + states: + - checkable + - focusable + - showing + - visible + source: runtime + id: n8 classification: interactive - comment: 'GUI位置: 中央空白页(无文件打开时) | 功能: 打开文件选择对话框' - annotation_status: reviewed - - id: n7 - role: image - name: Label_Icon - object_name: '' - accessible_id: '' - classification: container + state_labels: *id001 + class_name: '' comment: '' annotation_status: draft - - id: n8 - role: form - name: Form_CentralDocPage - object_name: '' - accessible_id: '' - classification: container - comment: '' - annotation_status: draft - children: - - id: n9 - role: form - name: Form_DocSheet + - role: form + name: Form_widget object_name: '' accessible_id: '' - classification: container - comment: '' - annotation_status: draft + description: '' + actions: [] + index_in_parent: 1 + states: + - showing + - visible + source: runtime children: - - id: n10 - role: form - name: Form_SheetSidebar + - role: form + name: Form_scaleEdit_P object_name: '' accessible_id: '' - classification: container - comment: '' - annotation_status: draft + description: '' + actions: [] + index_in_parent: 0 + states: + - focusable + - showing + - visible + source: runtime children: - - id: n11 - role: form - name: Form_SearchResWidget - object_name: '' - accessible_id: '' - classification: container - comment: '' - annotation_status: draft - children: - - id: n13 - role: list - name: View_ImageList - object_name: '' - accessible_id: '' - classification: container - comment: '' - annotation_status: draft - - id: n14 - role: check box - name: Button_thumbnail - object_name: '' - accessible_id: '' - classification: interactive - comment: 'GUI位置: 左侧栏顶部按钮组 | 功能: 切换到缩略图视图' - annotation_status: reviewed - - id: n15 - role: check box - name: Button_catalog - object_name: '' - accessible_id: '' - classification: interactive - comment: 'GUI位置: 左侧栏顶部按钮组 | 功能: 切换到目录视图' - annotation_status: reviewed - - id: n16 - role: check box - name: Button_bookmark - object_name: '' - accessible_id: '' - classification: interactive - comment: 'GUI位置: 左侧栏顶部按钮组 | 功能: 切换到书签视图' - annotation_status: reviewed - - id: n17 - role: check box - name: Button_annotation - object_name: '' - accessible_id: '' - classification: interactive - comment: 'GUI位置: 左侧栏顶部按钮组 | 功能: 切换到批注视图' - annotation_status: reviewed - - id: n18 - role: check box - name: Button_search + - role: text + name: DLineEditChildLineEdit object_name: '' accessible_id: '' + description: '' + actions: [] + index_in_parent: 0 + states: + - editable + - focusable + - showing + - visible + source: runtime + id: n11 classification: interactive - comment: 'GUI位置: 左侧栏顶部按钮组 | 功能: 切换到搜索视图' - annotation_status: reviewed - - id: n19 - role: form - name: Form_BookMarkWidget - object_name: '' - accessible_id: '' - classification: container - comment: '' - annotation_status: draft - children: - - id: n20 - role: list - name: View_ImageList - object_name: '' - accessible_id: '' - classification: container - comment: '' - annotation_status: draft - - id: n22 - role: button - name: Button_BookmarkAdd - object_name: '' - accessible_id: '' - classification: interactive - comment: 'GUI位置: 左侧栏书签视图底部 | 功能: 添加书签' - annotation_status: reviewed - - id: n24 - role: form - name: Form_NotesWidget - object_name: '' - accessible_id: '' - classification: container - comment: '' - annotation_status: draft - children: - - id: n25 - role: list - name: View_ImageList - object_name: '' - accessible_id: '' - classification: container - comment: '' - annotation_status: draft - - id: n49 - role: button - name: Button_NotesAdd - object_name: '' - accessible_id: '' - classification: interactive - comment: 'GUI位置: 左侧栏批注视图底部 | 功能: 添加批注' - annotation_status: reviewed - - id: n51 - role: form - name: Form_ThumbnailWidget - object_name: '' - accessible_id: '' - classification: container + state_labels: *id001 + class_name: '' comment: '' annotation_status: draft - children: - - id: n52 - role: list - name: View_ImageList - object_name: '' - accessible_id: '' - classification: container - comment: '' - annotation_status: draft - - id: n153 - role: form - name: Form_Paging - object_name: '' - accessible_id: '' - classification: container - comment: '' - annotation_status: draft - children: - - id: n155 - role: form - name: Form_Page - object_name: '' - accessible_id: '' - classification: container - comment: '' - annotation_status: draft - children: - - id: n156 - role: text - name: pageEdit - object_name: '' - accessible_id: '' - classification: interactive - comment: 'GUI位置: 左侧栏缩略图视图分页区 | 功能: 输入页码跳转' - annotation_status: reviewed - - id: n158 - role: button - name: Button_ThumbnailPre - object_name: '' - accessible_id: '' - classification: interactive - comment: 'GUI位置: 左侧栏缩略图视图分页区 | 功能: 上一页缩略图' - annotation_status: reviewed - - id: n159 - role: button - name: Button_ThumbnailNext - object_name: '' - accessible_id: '' - classification: interactive - comment: 'GUI位置: 左侧栏缩略图视图分页区 | 功能: 下一页缩略图' - annotation_status: reviewed - - id: n161 - role: form - name: Form_CatalogWidget - object_name: '' - accessible_id: '' - classification: container - comment: '' - annotation_status: draft - children: - - id: n163 - role: tree - name: View_CatalogTree - object_name: '' - accessible_id: '' - classification: interactive - comment: 'GUI位置: 左侧栏目录视图 | 功能: 显示文档目录树' - annotation_status: reviewed - - id: n208 - role: form - name: Form_DocTabBar + id: n10 + classification: container + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + id: n9 + classification: container + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + id: n7 + classification: container + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + id: n5 + classification: container + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + - role: form + name: Form_DTitlebarRightArea + object_name: '' + accessible_id: '' + description: '' + actions: [] + index_in_parent: 4 + states: + - enabled + - sensitive + - showing + - visible + source: runtime + children: + - role: form + name: Form_DTitlebarButtonArea + object_name: '' + accessible_id: '' + description: '' + actions: [] + index_in_parent: 0 + states: + - enabled + - sensitive + - showing + - visible + source: runtime + children: + - role: button + name: DTitlebarDWindowOptionButton object_name: '' accessible_id: '' - classification: container + description: '' + actions: + - Press + - SetFocus + index_in_parent: 0 + states: + - enabled + - focusable + - sensitive + - showing + - visible + source: runtime + id: n18 + classification: interactive + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + - role: button + name: DTitlebarDWindowMinButton + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + - SetFocus + index_in_parent: 1 + states: + - enabled + - focusable + - sensitive + - showing + - visible + source: runtime + id: n19 + classification: interactive + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + - role: button + name: DTitlebarDWindowMaxButton + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + - SetFocus + index_in_parent: 2 + states: + - enabled + - focusable + - sensitive + - showing + - visible + source: runtime + id: n20 + classification: interactive + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + - role: button + name: DTitlebarDWindowQuitFullscreenButton + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + - SetFocus + index_in_parent: 3 + states: + - enabled + - focusable + - sensitive + source: runtime + id: n21 + classification: interactive + state_labels: *id001 + class_name: '' comment: '' annotation_status: draft + - role: button + name: DTitlebarDWindowCloseButton + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + - SetFocus + index_in_parent: 4 + states: + - enabled + - focusable + - sensitive + - showing + - visible + source: runtime + id: n22 + classification: interactive + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + id: n17 + classification: container + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + id: n16 + classification: container + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + id: n1 + classification: container + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + - role: form + name: Form_Central + object_name: '' + accessible_id: '' + description: '' + actions: [] + index_in_parent: 1 + states: + - enabled + - sensitive + - showing + - visible + source: runtime + children: + - role: form + name: Form_widget_1 + object_name: '' + accessible_id: '' + description: '' + actions: [] + index_in_parent: 0 + states: + - enabled + - sensitive + - showing + - visible + source: runtime + children: + - role: form + name: Form_CentralDocPage + object_name: '' + accessible_id: '' + description: '' + actions: [] + index_in_parent: 0 + states: + - enabled + - sensitive + source: runtime + children: + - role: form + name: Form_DocTabBar + object_name: '' + accessible_id: '' + description: '' + actions: [] + index_in_parent: 0 + states: + - enabled + - sensitive + source: runtime children: - - id: n209 - role: page tab list - name: normal.pdf + - role: page tab list + name: '' object_name: '' accessible_id: '' - classification: interactive - comment: 'GUI位置: 顶部标签页栏 | 功能: 已打开文档的标签页列表' - annotation_status: reviewed + description: '' + actions: [] + index_in_parent: 0 + states: + - enabled + - sensitive + source: runtime children: - - id: n210 - role: page tab - name: normal.pdf - object_name: '' - accessible_id: '' - classification: interactive - comment: 'GUI位置: 顶部标签页栏 | 功能: normal.pdf文档标签页' - annotation_status: reviewed - - id: n211 - role: button + - role: button name: 向左滚动 object_name: '' accessible_id: '' + description: '' + actions: + - Press + - SetFocus + index_in_parent: 0 + states: + - enabled + - focusable + - sensitive + source: runtime + id: n28 classification: interactive - comment: 'GUI位置: 顶部标签页栏 | 功能: 标签页向左滚动' - annotation_status: reviewed - - id: n212 - role: button + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + - role: button name: 向右滚动 object_name: '' accessible_id: '' + description: '' + actions: + - Press + - SetFocus + index_in_parent: 1 + states: + - enabled + - focusable + - sensitive + source: runtime + id: n29 classification: interactive - comment: 'GUI位置: 顶部标签页栏 | 功能: 标签页向右滚动' - annotation_status: reviewed - - id: n213 - role: button + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + id: n27 + classification: interactive + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + - role: button name: DTabBarAddButton object_name: '' accessible_id: '' + description: '' + actions: + - Press + - SetFocus + index_in_parent: 1 + states: + - enabled + - focusable + - sensitive + source: runtime + id: n30 classification: interactive - comment: 'GUI位置: 顶部标签页栏右侧 | 功能: 新建标签页' - annotation_status: reviewed - - id: n217 - role: form - name: Form_DMainWindowTitlebar - object_name: '' - accessible_id: '' - classification: container - comment: '' - annotation_status: draft - children: - - id: n221 - role: form - name: Form_DTitlebarLeftArea - object_name: '' - accessible_id: '' - classification: container - comment: '' - annotation_status: draft - children: - - id: n223 - role: form - name: Form_TitleWidget - object_name: '' - accessible_id: '' + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + id: n26 + classification: container + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + id: n25 classification: container + state_labels: *id001 + class_name: '' comment: '' annotation_status: draft + - role: form + name: Form_CentralNavPage + object_name: '' + accessible_id: '' + description: '' + actions: [] + index_in_parent: 1 + states: + - enabled + - sensitive + - showing + - visible + source: runtime children: - - id: n224 - role: check box - name: Button_ThumbnailToggle - object_name: Thumbnails + - role: button + name: Button_SelectFile + object_name: '' accessible_id: '' + description: '' + actions: + - Press + - ShowMenu + index_in_parent: 2 + states: + - enabled + - focusable + - sensitive + - showing + - visible + source: runtime + id: n36 classification: interactive - comment: 'GUI位置: 标题栏左侧 | 功能: 展开/收起侧边栏' - annotation_status: reviewed - - id: n225 - role: form - name: Form_widget + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + - role: image + name: Label_Icon object_name: '' accessible_id: '' + description: '' + actions: [] + index_in_parent: 3 + states: + - enabled + - read_only + - sensitive + - showing + - visible + source: runtime + id: n37 classification: container + state_labels: *id001 + class_name: '' comment: '' annotation_status: draft - children: - - id: n226 - role: form - name: Form_scaleEdit_P - object_name: '' - accessible_id: '' - classification: container - comment: '' - annotation_status: draft - children: - - id: n227 - role: text - name: DLineEditChildLineEdit - object_name: '' - accessible_id: '' - classification: interactive - comment: 'GUI位置: 标题栏缩放输入框 | 功能: 输入缩放比例' - annotation_status: reviewed - - id: n240 - role: form - name: Form_widget_4 + id: n33 + classification: container + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + id: n24 + classification: container + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + id: n23 + classification: container + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + id: n0 + classification: container + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft +- role: popup menu + name: DTitlebarMainMenu + object_name: '' + accessible_id: '' + description: '' + actions: [] + index_in_parent: 1 + states: + - enabled + - resizable + - sensitive + source: runtime + children: + - role: menu item + name: 新窗口 object_name: '' accessible_id: '' - classification: container + description: '' + actions: + - Press + index_in_parent: 0 + states: + - enabled + - sensitive + source: runtime + id: n40 + classification: interactive + state_labels: *id001 + class_name: '' comment: '' annotation_status: draft + - role: menu item + name: 新标签页 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 1 + states: + - enabled + - sensitive + source: runtime + id: n41 + classification: interactive + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + - role: menu item + name: 保存 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 3 + states: [] + source: runtime + id: n42 + classification: interactive + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + - role: menu item + name: 另存为 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 4 + states: [] + source: runtime + id: n43 + classification: interactive + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + - role: menu item + name: 在文件管理器中显示 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 6 + states: [] + source: runtime + id: n44 + classification: interactive + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + - role: menu item + name: 放大镜 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 7 + states: [] + source: runtime + id: n45 + classification: interactive + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + - role: menu item + name: 工具 + object_name: '' + accessible_id: '' + description: '' + actions: + - ShowMenu + index_in_parent: 8 + states: [] + source: runtime children: - - id: n242 - role: form - name: Form_findSearchEdit_P + - role: popup menu + name: Menu_Hand object_name: '' accessible_id: '' + description: '' + actions: [] + index_in_parent: 0 + states: + - resizable + source: runtime + children: + - role: menu item + name: 选择工具 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 0 + states: + - checkable + - enabled + - sensitive + source: runtime + id: n48 + classification: interactive + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + - role: menu item + name: 手形工具 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 1 + states: + - checkable + - enabled + - sensitive + source: runtime + id: n49 + classification: interactive + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + id: n47 classification: container + state_labels: *id001 + class_name: '' comment: '' annotation_status: draft + id: n46 + classification: interactive + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + - role: menu item + name: 搜索 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 9 + states: [] + source: runtime + id: n50 + classification: interactive + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + - role: menu item + name: 打印 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 10 + states: [] + source: runtime + id: n51 + classification: interactive + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + - role: menu item + name: 主题 + object_name: '' + accessible_id: '' + description: '' + actions: + - ShowMenu + index_in_parent: 12 + states: + - enabled + - sensitive + source: runtime + children: + - role: popup menu + name: DTitlebarThemeMenu + object_name: '' + accessible_id: '' + description: '' + actions: [] + index_in_parent: 0 + states: + - enabled + - resizable + - sensitive + source: runtime children: - - id: n243 - role: text - name: DLineEditChildLineEdit + - role: menu item + name: 浅色 object_name: '' accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 0 + states: + - checkable + - enabled + - sensitive + source: runtime + id: n54 classification: interactive - comment: 'GUI位置: 标题栏搜索框 | 功能: 输入搜索关键词' - annotation_status: reviewed - children: - - id: n244 - role: button - name: DLineEditClearButton - object_name: '' - accessible_id: '' - classification: interactive - comment: 'GUI位置: 标题栏搜索框内 | 功能: 清除搜索内容' - annotation_status: reviewed - - id: n245 - role: button - name: DSearchEditIconButton - object_name: '' - accessible_id: '' - classification: interactive - comment: 'GUI位置: 标题栏搜索框内 | 功能: 搜索按钮' - annotation_status: reviewed - - id: n246 - role: form - name: Form_DSearchEditIconWidget - object_name: '' - accessible_id: '' - classification: container - comment: '' - annotation_status: draft - children: - - id: n247 - role: button - name: DSearchEditIconButton - object_name: '' - accessible_id: '' - classification: interactive - comment: 'GUI位置: 标题栏搜索框内 | 功能: 搜索按钮(图标)' - annotation_status: reviewed -- id: n253 - role: popup menu - name: DTitlebarThemeMenu + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + - role: menu item + name: 深色 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 1 + states: + - checkable + - enabled + - sensitive + source: runtime + id: n55 + classification: interactive + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + - role: menu item + name: 跟随系统 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 2 + states: + - checkable + - enabled + - sensitive + source: runtime + id: n56 + classification: interactive + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + id: n53 + classification: container + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + id: n52 + classification: interactive + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + - role: menu item + name: 帮助 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 14 + states: [] + source: runtime + id: n57 + classification: interactive + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + - role: menu item + name: 关于 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 15 + states: + - enabled + - sensitive + source: runtime + id: n58 + classification: interactive + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + - role: menu item + name: 退出 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 16 + states: + - enabled + - sensitive + source: runtime + id: n59 + classification: interactive + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + id: n39 + classification: container + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft +- role: popup menu + name: Menu_Hand object_name: '' accessible_id: '' + description: '' + actions: [] + index_in_parent: 0 + states: + - resizable + source: runtime + children: + - role: menu item + name: 选择工具 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 0 + states: + - checkable + - enabled + - sensitive + source: runtime + id: n61 + classification: interactive + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + - role: menu item + name: 手形工具 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 1 + states: + - checkable + - enabled + - sensitive + source: runtime + id: n62 + classification: interactive + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + id: n60 classification: container + state_labels: *id001 + class_name: '' comment: '' annotation_status: draft +- role: popup menu + name: DTitlebarThemeMenu + object_name: '' + accessible_id: '' + description: '' + actions: [] + index_in_parent: 0 + states: + - enabled + - resizable + - sensitive + source: runtime children: - - id: n254 - role: menu item + - role: menu item name: 浅色 object_name: '' accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 0 + states: + - checkable + - enabled + - sensitive + source: runtime + id: n64 classification: interactive - comment: 'GUI位置: 标题栏主题菜单 | 功能: 切换到浅色主题' - annotation_status: reviewed - - id: n255 - role: menu item + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + - role: menu item name: 深色 object_name: '' accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 1 + states: + - checkable + - enabled + - sensitive + source: runtime + id: n65 classification: interactive - comment: 'GUI位置: 标题栏主题菜单 | 功能: 切换到深色主题' - annotation_status: reviewed - - id: n256 - role: menu item + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + - role: menu item name: 跟随系统 object_name: '' accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 2 + states: + - checkable + - enabled + - sensitive + source: runtime + id: n66 classification: interactive - comment: 'GUI位置: 标题栏主题菜单 | 功能: 主题跟随系统设置' - annotation_status: reviewed + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft + id: n63 + classification: container + state_labels: *id001 + class_name: '' + comment: '' + annotation_status: draft +- id: '' + name: SideBarImageListView + role: panel + object_name: '' + accessible_id: '' + source: static + class_name: SideBarImageListView + children: + - id: '' + name: sideBarImageListView + role: panel + object_name: sideBarImageListView + accessible_id: '' + source: static + class_name: SideBarImageListView + classification: container + description: '' + actions: &id002 [] + index_in_parent: -1 + states: &id003 [] + state_labels: *id001 + comment: '' + annotation_status: draft + - id: '' + name: sideBarImageListViewViewport + role: panel + object_name: sideBarImageListViewViewport + accessible_id: '' + source: static + class_name: SideBarImageListView + classification: container + description: '' + actions: *id002 + index_in_parent: -1 + states: *id003 + state_labels: *id001 + comment: '' + annotation_status: draft + classification: container + description: '' + actions: *id002 + index_in_parent: -1 + states: *id003 + state_labels: *id001 + comment: '' + annotation_status: draft +- id: '' + name: BrowserMenu + role: panel + object_name: BrowserMenu + accessible_id: '' + source: static + class_name: BrowserMenu + classification: container + description: '' + actions: *id002 + index_in_parent: -1 + states: *id003 + state_labels: *id001 + comment: '' + annotation_status: draft +- id: '' + name: EncryptionPage + role: panel + object_name: '' + accessible_id: '' + source: static + class_name: EncryptionPage + children: + - id: '' + name: ensureBtn + role: panel + object_name: ensureBtn + accessible_id: '' + source: static + class_name: EncryptionPage + classification: container + description: '' + actions: *id002 + index_in_parent: -1 + states: *id003 + state_labels: *id001 + comment: '' + annotation_status: draft + - id: '' + name: passwdEdit + role: panel + object_name: passwdEdit + accessible_id: '' + source: static + class_name: EncryptionPage + classification: container + description: '' + actions: *id002 + index_in_parent: -1 + states: *id003 + state_labels: *id001 + comment: '' + annotation_status: draft + classification: container + description: '' + actions: *id002 + index_in_parent: -1 + states: *id003 + state_labels: *id001 + comment: '' + annotation_status: draft +- id: '' + name: HandleMenu + role: panel + object_name: '' + accessible_id: '' + source: static + class_name: HandleMenu + children: + - id: '' + name: defaultshape + role: panel + object_name: defaultshape + accessible_id: '' + source: static + class_name: HandleMenu + action_texts: &id004 + - Hand Tool + - Select Text + classification: container + description: '' + actions: *id002 + index_in_parent: -1 + states: *id003 + state_labels: *id001 + comment: '' + annotation_status: draft + - id: '' + name: handleshape + role: panel + object_name: handleshape + accessible_id: '' + source: static + class_name: HandleMenu + action_texts: *id004 + classification: container + description: '' + actions: *id002 + index_in_parent: -1 + states: *id003 + state_labels: *id001 + comment: '' + annotation_status: draft + action_texts: *id004 + classification: container + description: '' + actions: *id002 + index_in_parent: -1 + states: *id003 + state_labels: *id001 + comment: '' + annotation_status: draft +- id: '' + name: PagingWidget + role: panel + object_name: '' + accessible_id: '' + source: static + class_name: PagingWidget + children: + - id: '' + name: Edit_Page + role: panel + object_name: Edit_Page + accessible_id: '' + source: static + class_name: PagingWidget + classification: container + description: '' + actions: *id002 + index_in_parent: -1 + states: *id003 + state_labels: *id001 + comment: '' + annotation_status: draft + - id: '' + name: Edit_Page_P + role: panel + object_name: Edit_Page_P + accessible_id: '' + source: static + class_name: PagingWidget + classification: container + description: '' + actions: *id002 + index_in_parent: -1 + states: *id003 + state_labels: *id001 + comment: '' + annotation_status: draft + - id: '' + name: thumbnailNextBtn + role: panel + object_name: thumbnailNextBtn + accessible_id: '' + source: static + class_name: PagingWidget + classification: container + description: '' + actions: *id002 + index_in_parent: -1 + states: *id003 + state_labels: *id001 + comment: '' + annotation_status: draft + - id: '' + name: thumbnailPreBtn + role: panel + object_name: thumbnailPreBtn + accessible_id: '' + source: static + class_name: PagingWidget + classification: container + description: '' + actions: *id002 + index_in_parent: -1 + states: *id003 + state_labels: *id001 + comment: '' + annotation_status: draft + classification: container + description: '' + actions: *id002 + index_in_parent: -1 + states: *id003 + state_labels: *id001 + comment: '' + annotation_status: draft +- id: '' + name: TextEditShadowWidget + role: panel + object_name: TextEditShadowWidget + accessible_id: '' + source: static + class_name: TextEditShadowWidget + classification: container + description: '' + actions: *id002 + index_in_parent: -1 + states: *id003 + state_labels: *id001 + comment: '' + annotation_status: draft +- id: '' + name: TransparentTextEdit + role: panel + object_name: TransparentTextEdit + accessible_id: '' + source: static + class_name: TransparentTextEdit + classification: container + description: '' + actions: *id002 + index_in_parent: -1 + states: *id003 + state_labels: *id001 + comment: '' + annotation_status: draft diff --git a/tests/at/cases_mapped.yaml b/tests/at/cases_mapped.yaml index e05dfdba..469d40ec 100644 --- a/tests/at/cases_mapped.yaml +++ b/tests/at/cases_mapped.yaml @@ -1,5 +1,4 @@ -# 格式范例 — cases_mapped.yaml -# 此文件由 LLM 从 suite-cases.yaml 映射生成,格式如下: +# === 格式范例 === # cases: # - name: suite名称 # module: 模块名 @@ -13,892 +12,499 @@ # - step_type: action # action: dtk_main_menu # items: [主题, 浅色] -# - step_type: action -# action: dtk_context_menu -# selector: {name: pageEdit} -# items: [搜索] # - step_type: assert # action: assert_element # selector: {name: Button_xxx} +# === 格式范例结束 === + version: '1.0' cases: - id: suite_main_no_doc - name: 主界面 — 无文档打开 — 打开文件 - module: 主界面 — 无文档打开 + name: 主界面 — 无文档打开 + module: 导航页(无文档) annotation: - 测试界面: 主界面 — 无文档打开 - 测试功能: 打开文件 + 测试界面: 导航页(无文档) + 测试功能: 无文档首页和打开文件 前置条件: deepin-reader 已启动,未打开任何文档 - AT元素: n6 (Button_SelectFile, button, 打开文件选择对话框) + AT元素: Button_SelectFile, Label_Icon, Label_Drag documents here steps: - step_type: action - description: 启动 deepin-reader,不打开任何文档 + description: 启动 deepin-reader,不打开文档 action: session_start command: deepin-reader - step_type: assert - description: 主界面显示打开文件按钮(Button_SelectFile) - element_ref: n6 + description: 检查打开文件按钮可见 + action: assert_element selector: name: Button_SelectFile + role: button + - step_type: assert + description: 确认应用运行正常 action: assert_element - - step_type: action - description: 点击打开文件按钮 - element_ref: n6 selector: - name: Button_SelectFile - action: mouse_click -- id: suite_sidebar_tabs - name: 左侧栏 — 按钮切换 — 缩略图/目录/书签/注释 - module: 左侧栏 — 按钮切换 + name: Form_DMainWindow + role: form +- id: suite_select_file + name: 导航页 — 选择文件按钮 + module: 导航页(无文档) annotation: - 测试界面: 左侧栏 — 按钮切换 - 测试功能: 侧边栏四个功能按钮切换(缩略图/目录/书签/注释) - 前置条件: deepin-reader 已打开一个 PDF 文档 - AT元素: n14 (Button_thumbnail), n15 (Button_catalog), n16 (Button_bookmark), n17 (Button_annotation), n18 (Button_search), n163 (View_CatalogTree), n22 (Button_BookmarkAdd), n49 (Button_NotesAdd) + 测试界面: 导航页(无文档) + 测试功能: 选择文件按钮功能 + 前置条件: deepin-reader 已启动,未打开任何文档 + AT元素: Button_SelectFile steps: - step_type: action - description: 启动 deepin-reader并打开文档 + description: 启动 deepin-reader action: session_start - command: deepin-reader ${TEST_FILES_DIR}/normal.pdf + command: deepin-reader - step_type: action - description: 点击标题栏缩略图切换按钮展开侧边栏 - element_ref: n224 - selector: - name: Button_ThumbnailToggle + description: 点击选择文件按钮 action: mouse_click - - step_type: action - description: 打开文档,展开左侧栏,点击缩略图按钮 - element_ref: n14 selector: - name: Button_thumbnail - action: mouse_click + name: Button_SelectFile + role: button - step_type: assert - description: 缩略图按钮可点击,界面保持响应 - element_ref: n14 - selector: - name: Button_thumbnail + description: 系统文件选择对话框弹出 action: assert_element - - step_type: action - description: 点击目录按钮 - element_ref: n15 selector: - name: Button_catalog - action: mouse_click - - step_type: assert - description: 显示目录视图(View_CatalogTree) - element_ref: n163 - selector: - name: View_CatalogTree - action: assert_element - - step_type: action - description: 点击书签按钮 - element_ref: n16 - selector: - name: Button_bookmark - action: mouse_click + name: Form_DMainWindow + role: form - step_type: assert - description: 显示书签视图,含添加书签按钮(Button_BookmarkAdd) - element_ref: n22 - selector: - name: Button_BookmarkAdd + description: 确认应用运行正常 action: assert_element - - step_type: action - description: 点击注释按钮 - element_ref: n17 selector: - name: Button_annotation - action: mouse_click - - step_type: assert - description: 显示注释视图,含添加注释按钮(Button_NotesAdd) - element_ref: n49 - selector: - name: Button_NotesAdd - action: assert_element -- id: suite_sidebar_thumbnails - name: 左侧栏 — 缩略图视图 — 分页导航 - module: 左侧栏 — 缩略图视图 + name: Form_DMainWindow + role: form +- id: suite_window_buttons + name: 标题栏 — 窗口最小化 + module: 标题栏窗口按钮 annotation: - 测试界面: 左侧栏 — 缩略图视图 - 测试功能: 缩略图分页导航 - 前置条件: deepin-reader 已打开一个多页 PDF 文档,左侧栏展开且选中缩略图视图 - AT元素: n14 (Button_thumbnail, check box, 切换到缩略图视图), n156 (pageEdit, text, 输入页码跳转), n158 (Button_ThumbnailPre, button, 上一页缩略图), n159 (Button_ThumbnailNext, button, 下一页缩略图) + 测试界面: 标题栏窗口按钮 + 测试功能: 窗口最小化 + 前置条件: deepin-reader 已启动 + AT元素: DTitlebarDWindowMinButton, DTitlebarDWindowMaxButton, DTitlebarDWindowCloseButton steps: - step_type: action - description: 启动 deepin-reader并打开文档 + description: 启动 deepin-reader action: session_start - command: deepin-reader ${TEST_FILES_DIR}/normal.pdf - - step_type: action - description: 点击标题栏缩略图切换按钮展开侧边栏 - element_ref: n224 - selector: - name: Button_ThumbnailToggle - action: mouse_click - - step_type: action - description: 展开左侧栏,点击缩略图按钮切换到缩略图视图 - element_ref: n14 - selector: - name: Button_thumbnail - action: mouse_click + command: deepin-reader - step_type: action - description: 点击底部页数框(pageEdit)以聚焦 - element_ref: n156 - selector: - name: pageEdit - role: text + description: 点击最小化按钮 action: mouse_click - - step_type: action - description: 删除底部页数框(pageEdit)中的数值 - element_ref: n156 selector: - name: pageEdit - role: text - action: keyboard_press - key: BackSpace - - step_type: action - description: 按Escape键取消编辑,让输入框恢复原值 - action: keyboard_press - key: Escape + name: DTitlebarDWindowMinButton + role: button - step_type: assert - description: 输入框中应该再次显示最近一次的数据 - element_ref: n156 - selector: - name: pageEdit - role: text + description: 确认窗口最小化 action: assert_element -- id: suite_tab_management - name: 顶部标签页栏 — 添加/滚动/切换 - module: 顶部标签页栏 + selector: + name: Form_DMainWindow + role: form +- id: suite_window_max + name: 标题栏 — 窗口最大化 + module: 标题栏窗口按钮 annotation: - 测试界面: 顶部标签页栏 - 测试功能: 标签页添加、滚动、关闭 - 前置条件: deepin-reader 已打开一个 PDF 文档 - AT元素: n209 (page tab list, 已打开文档的标签页列表), n210 (page tab, normal.pdf文档标签页), n211 (向左滚动, button, 标签页向左滚动), n212 (向右滚动, button, 标签页向右滚动), n213 (DTabBarAddButton, button, 新建标签页) + 测试界面: 标题栏窗口按钮 + 测试功能: 窗口最大化 + 前置条件: deepin-reader 已启动 + AT元素: DTitlebarDWindowMaxButton steps: - step_type: action - description: 启动 deepin-reader并打开文档 + description: 启动 deepin-reader action: session_start - command: deepin-reader ${TEST_FILES_DIR}/normal.pdf + command: deepin-reader - step_type: action - description: 点击/断言标签页 normal.pdf - element_ref: n210 - selector: - name: normal.pdf - role: page tab + description: 点击最大化按钮 action: mouse_click - - step_type: assert - description: 点击/断言标签页 normal.pdf - element_ref: n209 selector: - name: normal.pdf - role: page tab - action: assert_element + name: DTitlebarDWindowMaxButton + role: button - step_type: assert - description: 点击/断言标签页 normal.pdf - element_ref: n211 - selector: - name: normal.pdf - role: page tab + description: 确认应用运行正常 action: assert_element - - step_type: assert - description: 点击/断言标签页 normal.pdf - element_ref: n212 selector: - name: normal.pdf - role: page tab - action: assert_element -- id: suite_titlebar_search - name: 标题栏搜索框 — 关键字输入/清除/搜索 - module: 标题栏搜索框 + name: Form_DMainWindow + role: form +- id: suite_main_menu_new_window + name: 标题栏主菜单 — 新窗口 + module: 标题栏主菜单 annotation: - 测试界面: 标题栏搜索框 - 测试功能: 搜索关键字输入、清除、搜索执行 - 前置条件: deepin-reader 已打开一个 PDF 文档 - AT元素: n243 (DLineEditChildLineEdit, text, 输入搜索关键词), n244 (DLineEditClearButton, button, 清除搜索内容), n245 (DSearchEditIconButton, button, 搜索按钮) + 测试界面: 标题栏主菜单 + 测试功能: 主菜单—新窗口功能 + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素: DTitlebarDWindowOptionButton, Menu_Title steps: - step_type: action - description: 启动 deepin-reader并打开文档 + description: 启动并打开文档 action: session_start command: deepin-reader ${TEST_FILES_DIR}/normal.pdf - step_type: action - description: 通过主菜单打开搜索框 + description: 点击主菜单→新窗口 action: dtk_main_menu items: - - 搜索 - - step_type: action - description: 点击搜索输入框以聚焦 - element_ref: n243 - selector: - name: DLineEditChildLineEdit - parent: Form_findSearchEdit_P - action: mouse_click - - step_type: action - description: 在搜索框输入关键字test - element_ref: n243 - selector: - name: DLineEditChildLineEdit - parent: Form_findSearchEdit_P - action: keyboard_type_text - text: test - - step_type: action - description: 按Enter键执行搜索 - action: keyboard_press - key: Return + - 新窗口 - step_type: assert - description: 正常显示搜索结果,搜索框仍然可见 - element_ref: n243 - selector: - name: DLineEditChildLineEdit - parent: Form_findSearchEdit_P + description: 确认应用运行正常 action: assert_element - - step_type: action - description: 点击搜索框右侧清除按钮(DLineEditClearButton) - element_ref: n244 selector: - name: DLineEditClearButton - parent: Form_findSearchEdit_P - action: mouse_click - - step_type: assert - description: 可以正常关闭搜索,搜索框仍然可见 - element_ref: n243 - selector: - name: DLineEditChildLineEdit - parent: Form_findSearchEdit_P - action: assert_element -- id: suite_titlebar_scale - name: 标题栏缩放输入框 — 缩放比例输入 - module: 标题栏缩放输入框 + name: Form_DMainWindow + role: form +- id: suite_main_menu_new_tab + name: 标题栏主菜单 — 新标签页 + module: 标题栏主菜单 annotation: - 测试界面: 标题栏缩放输入框 - 测试功能: 缩放比例输入 - 前置条件: deepin-reader 已打开一个 PDF 文档 - AT元素: n227 (DLineEditChildLineEdit, text, 输入缩放比例) + 测试界面: 标题栏主菜单 + 测试功能: 主菜单—新标签页 + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素: DTitlebarDWindowOptionButton, 新标签页 steps: - step_type: action - description: 启动 deepin-reader并打开文档 + description: 启动并打开文档 action: session_start command: deepin-reader ${TEST_FILES_DIR}/normal.pdf - step_type: action - description: 点击百分比图标编辑框以聚焦 - element_ref: n227 - selector: - name: DLineEditChildLineEdit - action: mouse_click - - step_type: action - description: 输入新的缩放比例 - element_ref: n227 - selector: - name: DLineEditChildLineEdit - role: text - action: keyboard_type_text - text: '100' - - step_type: action - description: 按Enter键确认缩放比例 - action: keyboard_press - key: Return + description: 点击主菜单→新标签页 + action: dtk_main_menu + items: + - 新标签页 - step_type: assert - description: 缩放输入框仍然可见,文档按输入的缩放比例显示 - element_ref: n227 - selector: - name: DLineEditChildLineEdit + description: 确认应用运行正常 action: assert_element -- id: suite_sidebar_catalog - name: 左侧栏 — 目录视图 — 目录树显示和点击跳转 - module: 左侧栏 — 目录视图 + selector: + name: Form_DMainWindow + role: form +- id: suite_main_menu_save + name: 标题栏主菜单 — 保存 + module: 标题栏主菜单 annotation: - 测试界面: 左侧栏 — 目录视图 - 测试功能: 目录树显示和点击跳转 - 前置条件: deepin-reader 已打开一个有目录的 PDF 文档,左侧栏展开且选中目录视图 - AT元素: n15 (Button_catalog, check box, 切换到目录视图), n163 (View_CatalogTree, tree, 显示文档目录树) + 测试界面: 标题栏主菜单 + 测试功能: 主菜单—保存 + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素: DTitlebarDWindowOptionButton, 保存 steps: - step_type: action - description: 启动 deepin-reader并打开文档 + description: 启动并打开文档 action: session_start command: deepin-reader ${TEST_FILES_DIR}/normal.pdf - step_type: action - description: 点击标题栏缩略图切换按钮展开侧边栏 - element_ref: n224 - selector: - name: Button_ThumbnailToggle - action: mouse_click - - step_type: action - description: 展开左侧栏,点击目录按钮 - element_ref: n15 - selector: - name: Button_catalog - action: mouse_click + description: 点击主菜单→保存 + action: dtk_main_menu + items: + - 保存 - step_type: assert - description: 显示目录树(View_CatalogTree) - element_ref: n163 - selector: - name: View_CatalogTree + description: 确认应用运行正常 action: assert_element - - step_type: action - description: 点击目录树中任意一个目录项 - element_ref: n163 - selector: - name: View_CatalogTree - action: mouse_click - - step_type: assert - description: 目录视图仍然可见,文档跳转到对应页面 - element_ref: n163 selector: - name: View_CatalogTree - action: assert_element -- id: suite_sidebar_bookmarks - name: 左侧栏 — 书签视图 — 添加书签 - module: 左侧栏 — 书签视图 + name: Form_DMainWindow + role: form +- id: suite_main_menu_search + name: 标题栏主菜单 — 搜索 + module: 标题栏主菜单 annotation: - 测试界面: 左侧栏 — 书签视图 - 测试功能: 添加书签 - 前置条件: deepin-reader 已打开一个 PDF 文档,左侧栏展开且选中书签视图 - AT元素: n16 (Button_bookmark, check box, 切换到书签视图), n22 (Button_BookmarkAdd, button, 添加书签) + 测试界面: 标题栏主菜单 + 测试功能: 主菜单—搜索 + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素: DTitlebarDWindowOptionButton, 搜索, Form_findSearchEdit_P steps: - step_type: action - description: 启动 deepin-reader并打开文档 + description: 启动并打开文档 action: session_start command: deepin-reader ${TEST_FILES_DIR}/normal.pdf - step_type: action - description: 点击标题栏缩略图切换按钮展开侧边栏 - element_ref: n224 - selector: - name: Button_ThumbnailToggle - action: mouse_click - - step_type: action - description: 切换到书签视图 - element_ref: n16 - selector: - name: Button_bookmark - action: mouse_click - - step_type: action - description: 点击添加书签按钮 - element_ref: n22 - selector: - name: Button_BookmarkAdd - action: mouse_click + description: 点击主菜单→搜索 + action: dtk_main_menu + items: + - 搜索 - step_type: assert - description: 当前页正常添加书签,书签视图仍然可见 - element_ref: n22 - selector: - name: Button_BookmarkAdd + description: 确认应用运行正常 action: assert_element -- id: suite_titlebar_main_menu - name: 标题栏主菜单 — 所有菜单项导航 + selector: + name: Form_DMainWindow + role: form +- id: suite_main_menu_print + name: 标题栏主菜单 — 打印 module: 标题栏主菜单 annotation: 测试界面: 标题栏主菜单 - 测试功能: 主菜单所有菜单项导航测试 - 前置条件: deepin-reader 已打开一个 PDF 文档 - AT元素: n6 (Button_SelectFile, button, 打开文件选择对话框) + 测试功能: 主菜单—打印 + 前置条件: deepin-reader 已启动并打开一个文档,已配置打印机 + AT元素: DTitlebarDWindowOptionButton, 打印 steps: - step_type: action - description: 启动 deepin-reader 并打开文档 + description: 启动并打开文档 action: session_start command: deepin-reader ${TEST_FILES_DIR}/normal.pdf - step_type: action - description: '主菜单导航: 工具/选择工具' - action: dtk_main_menu - items: - - 工具 - - 选择工具 - - step_type: action - description: '主菜单导航: 工具/手形工具' - action: dtk_main_menu - items: - - 工具 - - 手形工具 - - step_type: action - description: '主菜单导航: 搜索' + description: 点击主菜单→打印 action: dtk_main_menu items: - - 搜索 - - step_type: action - description: 关闭搜索框 - action: keyboard_press - key: Escape + - 打印 - step_type: assert - description: 菜单操作后应用仍正常响应(主界面可见) + description: 确认应用运行正常 action: assert_element selector: - name: Form_CentralDocPage -- id: suite_context_menu_doc - name: 右键文档区域菜单 — 所有菜单项 - module: 右键文档区域菜单 + name: Form_DMainWindow + role: form +- id: suite_main_menu_theme + name: 标题栏主菜单 — 主题切换 + module: 标题栏主菜单 annotation: - 测试界面: 右键文档区域菜单 - 测试功能: 文档右键菜单所有菜单项 - 前置条件: deepin-reader 已打开一个 PDF 文档 - AT元素: n2 (Form_widget_1, form, 主界面文档区域容器) + 测试界面: 标题栏主菜单 + 测试功能: 主菜单—主题切换 + 前置条件: deepin-reader 已启动 + AT元素: DTitlebarDWindowOptionButton, 主题, 浅色, 深色, 跟随系统 steps: - step_type: action - description: 启动 deepin-reader 并打开文档 + description: 启动 deepin-reader action: session_start - command: deepin-reader ${TEST_FILES_DIR}/normal.pdf - - step_type: action - action: mouse_click - selector: - name: Form_CentralDocPage - description: mouse_click - - step_type: action - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 搜索 - description: 在文档区域右键,选择"搜索" - - step_type: action - action: keyboard_press - key: Escape - description: keyboard_press - - step_type: action - action: mouse_click - selector: - name: Form_CentralDocPage - description: mouse_click - - step_type: action - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 后一页 - description: 在文档区域右键,选择"后一页" - - step_type: action - action: mouse_click - selector: - name: Form_CentralDocPage - description: mouse_click - - step_type: action - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 最后一页 - description: 在文档区域右键,选择"最后一页" - - step_type: action - action: mouse_click - selector: - name: Form_CentralDocPage - description: mouse_click - - step_type: action - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 前一页 - description: 在文档区域右键,选择"前一页" - - step_type: action - action: mouse_click - selector: - name: Form_CentralDocPage - description: mouse_click - - step_type: action - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 第一页 - description: 在文档区域右键,选择"第一页" - - step_type: action - action: mouse_click - selector: - name: Form_CentralDocPage - description: mouse_click - - step_type: action - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 后一页 - description: 在文档区域右键,选择"后一页" - - step_type: action - action: mouse_click - selector: - name: Form_CentralDocPage - description: mouse_click - - step_type: action - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 添加书签 - description: 在文档区域右键,选择"添加书签" - - step_type: action - action: mouse_click - selector: - name: Form_CentralDocPage - description: mouse_click - - step_type: action - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 添加注释 - description: 在文档区域右键,选择"添加注释" - - step_type: action - action: mouse_click - selector: - name: Form_CentralDocPage - description: mouse_click + command: deepin-reader - step_type: action - action: dtk_context_menu - selector: - name: Form_CentralDocPage + description: 切换浅色主题 + action: dtk_main_menu items: - - 全屏 - description: 在文档区域右键,选择"全屏" - - step_type: action - action: keyboard_press - key: Escape - description: keyboard_press - - step_type: action - action: mouse_click - selector: - name: Form_CentralDocPage - description: mouse_click + - 主题 + - 浅色 - step_type: action - action: dtk_context_menu - selector: - name: Form_CentralDocPage + description: 切换深色主题 + action: dtk_main_menu items: - - 幻灯片放映 - description: 在文档区域右键,选择"幻灯片放映" - - step_type: action - action: keyboard_press - key: Escape - description: keyboard_press - - step_type: action - action: mouse_click - selector: - name: Form_CentralDocPage - description: mouse_click - - step_type: action - action: dtk_context_menu + - 主题 + - 深色 + - step_type: assert + description: 确认主题切换完成 + action: assert_element selector: - name: Form_CentralDocPage - items: - - 左旋转 - description: 在文档区域右键,选择"左旋转" + name: Form_DMainWindow + role: form +- id: suite_main_menu_about + name: 标题栏主菜单 — 关于 + module: 标题栏主菜单 + annotation: + 测试界面: 标题栏主菜单 + 测试功能: 主菜单—关于 + 前置条件: deepin-reader 已启动 + AT元素: DTitlebarDWindowOptionButton, 关于 + steps: - step_type: action - action: mouse_click - selector: - name: Form_CentralDocPage - description: mouse_click + description: 启动 deepin-reader + action: session_start + command: deepin-reader - step_type: action - action: dtk_context_menu - selector: - name: Form_CentralDocPage + description: 点击主菜单→关于 + action: dtk_main_menu items: - - 右旋转 - description: 在文档区域右键,选择"右旋转" - - step_type: action - action: mouse_click + - 关于 + - step_type: assert + description: 确认应用运行正常 + action: assert_element selector: - name: Form_CentralDocPage - description: mouse_click + name: Form_DMainWindow + role: form +- id: suite_fullscreen + name: 标题栏 — 全屏/退出全屏 + module: 标题栏窗口按钮 + annotation: + 测试界面: 标题栏窗口按钮 + 测试功能: 全屏切换 + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素: DTitlebarDWindowQuitFullscreenButton + steps: - step_type: action - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 文档信息 - description: 在文档区域右键,选择"文档信息" + description: 启动并打开文档 + action: session_start + command: deepin-reader ${TEST_FILES_DIR}/normal.pdf - step_type: action + description: 按F11进入全屏 action: keyboard_press - key: Escape - description: keyboard_press + key: F11 - step_type: assert + description: 确认应用运行正常 action: assert_element selector: - name: Form_CentralDocPage + name: Form_DMainWindow role: form - description: 断言元素存在 -- id: suite_context_menu_scale - name: 右键缩放区域菜单 — 所有菜单项 - module: 右键缩放区域菜单 +- id: suite_tab_add + name: 标签页 — 新建标签页 + module: 顶部标签页栏 annotation: - 测试界面: 右键缩放区域菜单 - 测试功能: 缩放菜单所有菜单项 - 前置条件: deepin-reader 已打开一个 PDF 文档 - AT元素: n227 (DLineEditChildLineEdit, text, 输入缩放比例) + 测试界面: 顶部标签页栏 + 测试功能: 标签页—新增标签页 + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素: DTabBarAddButton, page tab list steps: - step_type: action - description: 启动 deepin-reader 并打开文档 + description: 启动并打开文档 action: session_start command: deepin-reader ${TEST_FILES_DIR}/normal.pdf - step_type: action - description: 点击文档区域确保焦点在文档上 + description: 点击新建标签按钮 action: mouse_click selector: - name: Form_CentralDocPage - - step_type: action - description: 点击缩放框箭头按钮弹出缩放菜单(双页显示) - action: dtk_context_menu - selector: - name: Form_scaleEdit_P - child_index: 1 - popup: click - items: - - 双页显示 - - step_type: action - description: 点击缩放框箭头按钮弹出缩放菜单(默认大小) - action: dtk_context_menu - selector: - name: Form_scaleEdit_P - child_index: 1 - popup: click - items: - - 默认大小 - - step_type: action - description: 点击缩放框箭头按钮弹出缩放菜单(适合页面) - action: dtk_context_menu - selector: - name: Form_scaleEdit_P - child_index: 1 - popup: click - items: - - 适合页面 - - step_type: action - description: 点击缩放框箭头按钮弹出缩放菜单(适应高度) - action: dtk_context_menu - selector: - name: Form_scaleEdit_P - child_index: 1 - popup: click - items: - - 适应高度 - - step_type: action - description: 点击缩放框箭头按钮弹出缩放菜单(适应宽度) - action: dtk_context_menu - selector: - name: Form_scaleEdit_P - child_index: 1 - popup: click - items: - - 适应宽度 + name: DTabBarAddButton + role: button - step_type: assert - description: 菜单操作后应用仍正常响应 - element_ref: n6 + description: 确认新标签页已创建 + action: assert_element selector: - name: Form_CentralDocPage + name: Form_DMainWindow role: form - action: assert_element -- id: suite_context_menu_note - name: 右键侧栏注释菜单 — 所有菜单项 - module: 右键侧栏注释菜单 +- id: suite_search_ctrlf + name: 查找框 — Ctrl+F 查找 + module: 文档区域(快捷键) annotation: - 测试界面: 右键侧栏注释菜单 - 测试功能: 注释右键菜单所有菜单项 - 前置条件: deepin-reader 已打开一个 PDF 文档且侧栏有注释 - AT元素: n25 (View_ImageList, list, 批注视图列表) + 测试界面: 文档区域(快捷键) + 测试功能: Ctrl+F 打开查找框 + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素: Form_findSearchEdit_P, DLineEditChildLineEdit steps: - step_type: action + description: 启动并打开文档 action: session_start command: deepin-reader ${TEST_FILES_DIR}/normal.pdf - description: 启动应用 - - step_type: action - description: 点击标题栏缩略图切换按钮展开侧边栏 - element_ref: n224 - selector: - name: Button_ThumbnailToggle - action: mouse_click - - step_type: action - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 添加注释 - description: dtk_context_menu - - step_type: action - action: mouse_click - selector: - name: Button_annotation - description: mouse_click - - step_type: action - action: mouse_click - selector: - name: View_ImageList - child_index: 0 - description: 左键选中第一条注释 - - step_type: action - action: dtk_context_menu - selector: - name: View_ImageList - child_index: 0 - items: - - 复制 - description: 右键第一条注释弹出菜单 - step_type: action - action: dtk_context_menu + description: 按Ctrl+F打开查找 + action: keyboard_hot_key + key: ctrl+f + - step_type: assert + description: 确认查找框已打开 + action: assert_element selector: - name: View_ImageList - child_index: 0 - items: - - 删除注释 - description: 右键第一条注释弹出菜单 + name: Form_DMainWindow + role: form +- id: suite_zoom + name: 缩放 — Ctrl+Plus/Minus 缩放 + module: 文档区域(快捷键) + annotation: + 测试界面: 文档区域(快捷键) + 测试功能: 缩放功能 + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素: Form_scaleEdit_P, DLineEditChildLineEdit + steps: - step_type: action - action: mouse_click - selector: - name: Button_bookmark - description: mouse_click + description: 启动并打开文档 + action: session_start + command: deepin-reader ${TEST_FILES_DIR}/normal.pdf - step_type: action - action: mouse_click - selector: - name: Form_CentralDocPage - description: mouse_click + description: 按Ctrl+=放大 + action: keyboard_hot_key + key: ctrl+plus - step_type: action - action: dtk_context_menu + description: 按Ctrl+-缩小 + action: keyboard_hot_key + key: ctrl+minus + - step_type: assert + description: 确认缩放正常 + action: assert_element selector: - name: Form_CentralDocPage - items: - - 添加注释 - description: dtk_context_menu + name: Form_DMainWindow + role: form +- id: suite_sidebar_toggle + name: 左侧栏 — 缩略图面板切换 + module: 左侧栏—缩略图视图 + annotation: + 测试界面: 左侧栏—缩略图视图 + 测试功能: 缩略图面板显示/隐藏 + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素: Button_ThumbnailToggle, PagingWidget + steps: - step_type: action - action: mouse_click - selector: - name: Button_annotation - description: mouse_click + description: 启动并打开文档 + action: session_start + command: deepin-reader ${TEST_FILES_DIR}/normal.pdf - step_type: action + description: 点击缩略图切换按钮 action: mouse_click selector: - name: View_ImageList - child_index: 0 - description: 左键选中第一条注释 - - step_type: action - action: dtk_context_menu - selector: - name: View_ImageList - child_index: 0 - items: - - 全部删除 - description: 右键第一条注释弹出菜单 + name: Button_ThumbnailToggle + role: check box - step_type: assert + description: 确认侧栏面板已切换 action: assert_element selector: - name: Form_CentralDocPage + name: Form_DMainWindow role: form - description: 断言元素存在 -- id: suite_context_menu_bookmark - name: 右键侧栏书签菜单 — 所有菜单项 - module: 右键侧栏书签菜单 +- id: suite_tab_scroll + name: 标签页 — 滚动 + module: 顶部标签页栏 annotation: - 测试界面: 右键侧栏书签菜单 - 测试功能: 书签右键菜单所有菜单项 - 前置条件: deepin-reader 已打开一个 PDF 文档且侧栏有书签 - AT元素: n20 (View_ImageList, list, 书签视图列表) + 测试界面: 顶部标签页栏 + 测试功能: 标签页左右滚动 + 前置条件: deepin-reader 已启动并打开多个文档 + AT元素: 向左滚动, 向右滚动, page tab list steps: - step_type: action + description: 启动并打开文档 action: session_start command: deepin-reader ${TEST_FILES_DIR}/normal.pdf - description: 启动应用 - step_type: action - description: 点击标题栏缩略图切换按钮展开侧边栏 - element_ref: n224 - selector: - name: Button_ThumbnailToggle + description: 点击向左滚动 action: mouse_click - - step_type: action - action: dtk_context_menu selector: - name: Form_CentralDocPage - items: - - 添加书签 - description: dtk_context_menu + name: 向左滚动 + role: button - step_type: action + description: 点击向右滚动 action: mouse_click selector: - name: Button_bookmark - description: mouse_click - - step_type: action - action: mouse_click - selector: - name: View_ImageList - child_index: 0 - description: 左键选中第一条书签 - - step_type: action - action: dtk_context_menu - selector: - name: View_ImageList - child_index: 0 - items: - - 删除书签 - description: 右键第一条书签弹出菜单 - - step_type: action - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 添加书签 - description: dtk_context_menu - - step_type: action - action: mouse_click + name: 向右滚动 + role: button + - step_type: assert + description: 确认标签滚动正常 + action: assert_element selector: - name: Button_bookmark - description: mouse_click + name: Form_DMainWindow + role: form +- id: suite_ctrl_s_save + name: 键盘快捷键 — Ctrl+S 保存 + module: 文档区域(快捷键) + annotation: + 测试界面: 文档区域(快捷键) + 测试功能: Ctrl+S 保存快捷键 + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素: SheetBrowser + steps: - step_type: action - action: mouse_click - selector: - name: View_ImageList - child_index: 0 - description: 左键选中第一条书签 + description: 启动并打开文档 + action: session_start + command: deepin-reader ${TEST_FILES_DIR}/normal.pdf - step_type: action - action: dtk_context_menu - selector: - name: View_ImageList - child_index: 0 - items: - - 全部删除 - description: 右键第一条书签弹出菜单 + description: 按Ctrl+S保存 + action: keyboard_hot_key + key: ctrl+s - step_type: assert + description: 确认保存成功 action: assert_element selector: - name: Form_CentralDocPage + name: Form_DMainWindow role: form - description: 断言元素存在 -- id: suite_theme_menu_v2 - name: 标题栏主题菜单 — 浅色/深色/跟随系统切换(items方式) - module: 标题栏主题菜单 +- id: suite_main_menu_tools + name: 标题栏主菜单 — 工具切换 + module: 标题栏主菜单 annotation: - 测试界面: 标题栏主题菜单 - 测试功能: 浅色/深色/跟随系统主题切换 - 前置条件: deepin-reader 已打开,标题栏主题菜单可用 - AT元素: n6 (Button_SelectFile, button, 主界面打开文件按钮), n254 (浅色, menu item, 切换到浅色主题), n255 (深色, menu item, 切换到深色主题), n256 (跟随系统, menu item, 主题跟随系统设置) + 测试界面: 标题栏主菜单 + 测试功能: 工具切换(选择文本/手形工具) + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素: DTitlebarDWindowOptionButton, 工具, 选择工具, 手形工具 steps: - step_type: action - description: 启动 deepin-reader,不打开文档 + description: 启动并打开文档 action: session_start - command: deepin-reader + command: deepin-reader ${TEST_FILES_DIR}/normal.pdf - step_type: action - description: 打开主题菜单,选择"浅色" + description: 选择文本工具 action: dtk_main_menu items: - - 主题 - - 浅色 - - step_type: assert - description: 应用切换到浅色主题,主界面仍然响应 - element_ref: n6 - selector: - name: Button_SelectFile - action: assert_element + - 工具 + - 选择工具 - step_type: action - description: 打开主题菜单,选择"深色" + description: 切换手形工具 action: dtk_main_menu items: - - 主题 - - 深色 + - 工具 + - 手形工具 - step_type: assert - description: 应用切换到深色主题,主界面仍然响应 - element_ref: n6 - selector: - name: Button_SelectFile + description: 确认工具切换完成 action: assert_element - - step_type: action - description: 打开主题菜单,选择"跟随系统" - action: dtk_main_menu - items: - - 主题 - - 跟随系统 - - step_type: assert - description: 应用主题跟随系统设置,主界面仍然响应 - element_ref: n6 selector: - name: Button_SelectFile - action: assert_element + name: Form_DMainWindow + role: form diff --git a/tests/at/cases_non_gui.yaml b/tests/at/cases_non_gui.yaml new file mode 100644 index 00000000..56bbafaa --- /dev/null +++ b/tests/at/cases_non_gui.yaml @@ -0,0 +1,575 @@ +cases: +- description: 【玲珑】【文档查看器】卸载指定版本的玲珑应用 + id: case_1704991 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器(#110615) + name: 【玲珑】【文档查看器】卸载指定版本的玲珑应用 + reason: '' + status: non_gui + steps: + - description: 1. 在终端执行命令:ll-cli uninstall org.deepin.reader/6.0.17 + needs_accessible_name: false + step_type: action + - description: 2. 在终端执行命令:ll-cli info org.deepin.reader + needs_accessible_name: false + step_type: action + - description: 1. 【文档查看器】玲珑指定版本的应用卸载成功 + needs_accessible_name: false + step_type: assert + - description: 2. 没有指定版本玲珑应用【文档查看器】的应用信息 + needs_accessible_name: false + step_type: assert +- description: 【玲珑】【文档查看器】卸载玲珑应用 + id: case_1704989 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器(#110615) + name: 【玲珑】【文档查看器】卸载玲珑应用 + reason: '' + status: non_gui + steps: + - description: 1. 在终端执行命令:ll-cli uninstall org.deepin.reader + needs_accessible_name: false + step_type: action + - description: 2. 在终端执行命令:ll-cli info org.deepin.reader + needs_accessible_name: false + step_type: action + - description: 1. 【文档查看器】玲珑应用卸载成功 + needs_accessible_name: false + step_type: assert + - description: 2. 没有玲珑应用【文档查看器】的应用信息 + needs_accessible_name: false + step_type: assert +- description: 【玲珑】【文档查看器】查看玲珑应用包含的文件 + id: case_1704987 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器(#110615) + name: 【玲珑】【文档查看器】查看玲珑应用包含的文件 + reason: '' + status: non_gui + steps: + - description: 1. 在终端执行命令:ll-cli content org.deepin.reader + needs_accessible_name: false + step_type: action + - description: 1. 展示已安装的【文档查看器】应用包含的文件 + needs_accessible_name: false + step_type: assert +- description: 【玲珑】【文档查看器】杀掉玲珑应用运行进程 + id: case_1704985 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器(#110615) + name: 【玲珑】【文档查看器】杀掉玲珑应用运行进程 + reason: '' + status: non_gui + steps: + - description: 1. 在终端执行命令:ll-cli kill org.deepin.reader + needs_accessible_name: false + step_type: action + - description: 2. 终止后再次终端执行命令:ll-cli ps + needs_accessible_name: false + step_type: action + - description: 1. 【文档查看器】应用进程运行被终止 + needs_accessible_name: false + step_type: assert + - description: 2. 没有显示【文档查看器】运行 + needs_accessible_name: false + step_type: assert +- description: 【玲珑】【文档查看器】检查玲珑应用运行情况 + id: case_1704983 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器(#110615) + name: 【玲珑】【文档查看器】检查玲珑应用运行情况 + reason: '' + status: non_gui + steps: + - description: 1. 在终端执行命令:ll-cli ps + needs_accessible_name: false + step_type: action + - description: 1. 可以查看到【文档查看器】的运行情况,包含:App、ContainerID、Pid、Path + needs_accessible_name: false + step_type: assert +- description: 【玲珑】【文档查看器】进入容器内部 + id: case_1704981 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器(#110615) + name: 【玲珑】【文档查看器】进入容器内部 + reason: '' + status: non_gui + steps: + - description: 1. 在终端执行命令:ll-cli run org.deepin.reader --exec /bin/bash + needs_accessible_name: false + step_type: action + - description: 1. 进入【文档查看器】容器内部,可以内部执行命令,例如:ls + needs_accessible_name: false + step_type: assert +- description: 【玲珑】【文档查看器】玲珑应用,基本功能测试 + id: case_1704975 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器(#110615) + name: 【玲珑】【文档查看器】玲珑应用,基本功能测试 + reason: '' + status: non_gui + steps: + - description: 1. 【文档查看器】应用,双击运行 + needs_accessible_name: false + step_type: assert + - description: 2. 选择pdf、djvu、docx文件类型打开浏览 + needs_accessible_name: false + step_type: action + - description: 3. 搜索、添加/删除书签、注释等功能 + needs_accessible_name: false + step_type: action + - description: 4. 全屏、幻灯片放映 + needs_accessible_name: false + step_type: action + - description: 5. 文档信息查看 + needs_accessible_name: false + step_type: assert + - description: 1. 功能正常 + needs_accessible_name: false + step_type: assert + - description: 2. 功能正常 + needs_accessible_name: false + step_type: assert + - description: 3. 功能正常 + needs_accessible_name: false + step_type: assert + - description: 4. 功能正常 + needs_accessible_name: false + step_type: assert + - description: 5. 功能正常 + needs_accessible_name: false + step_type: assert +- description: 【玲珑】【文档查看器】运行玲珑应用 + id: case_1704971 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器(#110615) + name: 【玲珑】【文档查看器】运行玲珑应用 + reason: '' + status: non_gui + steps: + - description: 1. 在终端执行命令:ll-cli run org.deepin.reader + needs_accessible_name: false + step_type: action + - description: 1. 打开运行【文档查看器】应用 + needs_accessible_name: false + step_type: assert +- description: 【玲珑】【文档查看器】安装玲珑应用指定版本 + id: case_1704969 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器(#110615) + name: 【玲珑】【文档查看器】安装玲珑应用指定版本 + reason: '' + status: non_gui + steps: + - description: 1. 在终端执行命令:ll-cli run org.deepin.reader/6.0.17 + needs_accessible_name: false + step_type: action + - description: '1.0' + needs_accessible_name: false + step_type: assert +- description: 【玲珑】【文档查看器】安装玲珑应用 + id: case_1704967 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器(#110615) + name: 【玲珑】【文档查看器】安装玲珑应用 + reason: '' + status: non_gui + steps: + - description: 1. 在终端执行命令:ll-cli install org.deepin.reader + needs_accessible_name: false + step_type: action + - description: 1. 等待一段时间后,【文档查看器】安装完成(如果有多个版本,默认安装最高版本),可以使用命令查看信息:ll-cli info org.deepin.reader + needs_accessible_name: false + step_type: assert +- description: 【玲珑】【文档查看器】仓库玲珑应用信息 + id: case_1704965 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器(#110615) + name: 【玲珑】【文档查看器】仓库玲珑应用信息 + reason: '' + status: non_gui + steps: + - description: 1. 在终端执行命令:ll-cli search org.deepin.reader + needs_accessible_name: false + step_type: action + - description: 1. 展示【文档查看器】应用的相关信息,包含appid、name、version、arch、channel、module、description;如果版本有多个,则全部展示 + needs_accessible_name: false + step_type: assert +- description: 【玲珑】【文档查看器】查看玲珑应用信息 + id: case_1704963 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器(#110615) + name: 【玲珑】【文档查看器】查看玲珑应用信息 + reason: '' + status: non_gui + steps: + - description: 1. 在终端执行命令:ll-cli info org.deepin.reader + needs_accessible_name: false + step_type: action + - description: 1. 展示玲珑应用(文档查看器)的应用信息; + needs_accessible_name: false + step_type: assert + - description: 'PS: 没有安装则不展示应用信息' + needs_accessible_name: false + step_type: assert +- description: 打开大量窗口 + id: case_1581003 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/压力(#114171) + name: 打开大量窗口 + reason: stress test requiring special environment/tools + status: unsupported + steps: + - description: 1. 打开大量窗口,查看是否卡顿 + needs_accessible_name: false + step_type: assert + - description: 2. 打开20个窗口,查看界面显示 + needs_accessible_name: false + step_type: assert + - description: 1. 最大限制打开20个窗口,无卡顿 + needs_accessible_name: false + step_type: assert + - description: 2. 窗口错开显示。任务栏和桌面打开窗口的数量正确 + needs_accessible_name: false + step_type: assert +- description: 产生大量搜索结果无卡顿 + id: case_1580999 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/压力(#114171) + name: 产生大量搜索结果无卡顿 + reason: stress test requiring special environment/tools + status: unsupported + steps: + - description: 1. 产生大量搜索结果,查看应用状态 + needs_accessible_name: false + step_type: assert + - description: 1. 显示正常,无卡顿 + needs_accessible_name: false + step_type: assert +- description: 批量添加注释 + id: case_1580997 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/压力(#114171) + name: 批量添加注释 + reason: stress test requiring special environment/tools + status: unsupported + steps: + - description: 1. 添加多个图标注释/高亮注释(100个及以上),查看 + needs_accessible_name: false + step_type: assert + - description: 2. 添加完成后,右击注释目录,选择“删除所有”,查看 + needs_accessible_name: false + step_type: assert + - description: 1. 显示正常无卡顿 + needs_accessible_name: false + step_type: assert + - description: 2. 正常删除,左边栏和右侧文档中的注释均清空 + needs_accessible_name: false + step_type: assert +- description: 多平台测试 + id: case_1580995 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/性能(#114169) + name: 多平台测试 + reason: performance test requiring measurement tools + status: unsupported + steps: + - description: 1. 分别在兆芯、龙芯、ARM平台测试 + needs_accessible_name: false + step_type: action + - description: 1. 功能正常 + needs_accessible_name: false + step_type: assert +- description: PDF文档中批量添加书签 + id: case_1580981 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/压力(#114171) + name: PDF文档中批量添加书签 + reason: stress test requiring special environment/tools + status: unsupported + steps: + - description: 1. 打开PDF文档,添加100个书签 + needs_accessible_name: false + step_type: action + - description: 2. 右击任意一个书签目录,点击“删除所有”菜单 + needs_accessible_name: false + step_type: action + - description: 1. 添加成功 + needs_accessible_name: false + step_type: assert + - description: 2. 正常删除,左边栏和右侧文档书签均清空删除 + needs_accessible_name: false + step_type: assert +- description: 撤销更改(68M文档)响应时间 + id: case_1580965 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/性能(#114169) + name: 撤销更改(68M文档)响应时间 + reason: performance test requiring measurement tools + status: unsupported + steps: + - description: 1. 打开68M文档,编辑注释内容,按Ctrl+Z撤销更改 + needs_accessible_name: false + step_type: action + - description: 1. 撤销完成的响应时间<2秒 + needs_accessible_name: false + step_type: assert +- description: 连续快速打开关闭单页大文档20次 + id: case_1580889 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/压力(#114171) + name: 连续快速打开关闭单页大文档20次 + reason: stress test requiring special environment/tools + status: unsupported + steps: + - description: 1. 连续快速打开关闭单页大文档20次 + needs_accessible_name: false + step_type: action + - description: 1. 正常打开无异常 + needs_accessible_name: false + step_type: assert +- description: 单指手势单击工具栏菜单按钮 + id: case_1580837 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/触摸板(#114153) + name: 单指手势单击工具栏菜单按钮 + reason: requires touchscreen/trackpad hardware input + status: unsupported + steps: + - description: 1. 打开多份文档,单击工具栏菜单按钮 + needs_accessible_name: false + step_type: action + - description: 1. 功能正常 + needs_accessible_name: false + step_type: assert +- description: 单指手势单击任意缩略图 + id: case_1580835 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/触摸板(#114153) + name: 单指手势单击任意缩略图 + reason: requires touchscreen/trackpad hardware input + status: unsupported + steps: + - description: 1. 展开左侧栏,单击选择书签、目录、缩略图、注释功能 + needs_accessible_name: false + step_type: action + - description: 2. 展开左侧栏,单击选择任意缩略图 + needs_accessible_name: false + step_type: action + - description: 1. 可以正常选择切换 + needs_accessible_name: false + step_type: assert + - description: 2. 可以正常选择切换 + needs_accessible_name: false + step_type: assert +- description: 单指手势单击视图方式 + id: case_1580833 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/触摸板(#114153) + name: 单指手势单击视图方式 + reason: requires touchscreen/trackpad hardware input + status: unsupported + steps: + - description: 1. 单击放大缩小下拉框,选中视图方式 + needs_accessible_name: false + step_type: action + - description: 1. 可以正常选择切换 + needs_accessible_name: false + step_type: assert +- description: 单指手势单击增加、切换标签页 + id: case_1580831 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/触摸板(#114153) + name: 单指手势单击增加、切换标签页 + reason: requires touchscreen/trackpad hardware input + status: unsupported + steps: + - description: 1. 单击+按钮增加标签页 + needs_accessible_name: false + step_type: action + - description: 2. 点击标签页切换显示 + needs_accessible_name: false + step_type: action + - description: 1. 进入文件管理选择界面 + needs_accessible_name: false + step_type: assert + - description: 2. 可以切换显示 + needs_accessible_name: false + step_type: assert +- description: 单指双击 + id: case_1580829 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/触摸板(#114153) + name: 单指双击 + reason: requires touchscreen/trackpad hardware input + status: unsupported + steps: + - description: 1. 应用工具栏一指双击 + needs_accessible_name: false + step_type: action + - description: 2. 再次双击 + needs_accessible_name: false + step_type: action + - description: 1. 窗口最大化 + needs_accessible_name: false + step_type: assert + - description: 2. 恢复原来窗口大小 + needs_accessible_name: false + step_type: assert +- description: 单指手势单击工具栏菜单按钮 + id: case_1580817 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/触摸屏(#114151) + name: 单指手势单击工具栏菜单按钮 + reason: requires touchscreen/trackpad hardware input + status: unsupported + steps: + - description: 1. 打开多份文档,单击工具栏菜单按钮 + needs_accessible_name: false + step_type: action + - description: 1. 功能正常 + needs_accessible_name: false + step_type: assert +- description: 单指手势单击任意缩略图 + id: case_1580815 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/触摸屏(#114151) + name: 单指手势单击任意缩略图 + reason: requires touchscreen/trackpad hardware input + status: unsupported + steps: + - description: 1. 展开左侧栏,单击选择书签、目录、缩略图、注释功能 + needs_accessible_name: false + step_type: action + - description: 2. 展开左侧栏,单击选择任意缩略图 + needs_accessible_name: false + step_type: action + - description: 1. 可以正常选择切换 + needs_accessible_name: false + step_type: assert + - description: 2. 可以正常选择切换 + needs_accessible_name: false + step_type: assert +- description: 单指手势单击视图方式 + id: case_1580813 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/触摸屏(#114151) + name: 单指手势单击视图方式 + reason: requires touchscreen/trackpad hardware input + status: unsupported + steps: + - description: 1. 单击放大缩小下拉框,选中视图方式 + needs_accessible_name: false + step_type: action + - description: 1. 可以正常选择切换 + needs_accessible_name: false + step_type: assert +- description: 单指手势单击增加、切换标签页 + id: case_1580811 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/触摸屏(#114151) + name: 单指手势单击增加、切换标签页 + reason: requires touchscreen/trackpad hardware input + status: unsupported + steps: + - description: 1. 单击+按钮增加标签页 + needs_accessible_name: false + step_type: action + - description: 2. 点击标签页切换显示 + needs_accessible_name: false + step_type: action + - description: 1. 进入文件管理选择界面 + needs_accessible_name: false + step_type: assert + - description: 2. 可以切换显示 + needs_accessible_name: false + step_type: assert +- description: 单指双击 + id: case_1580809 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/触摸屏(#114151) + name: 单指双击 + reason: requires touchscreen/trackpad hardware input + status: unsupported + steps: + - description: 1. 应用工具栏单指双击 + needs_accessible_name: false + step_type: action + - description: 2. 再次双击 + needs_accessible_name: false + step_type: action + - description: 1. 窗口最大化 + needs_accessible_name: false + step_type: assert + - description: 2. 恢复原来窗口大小 + needs_accessible_name: false + step_type: assert +- description: 单指移动窗口的位置 + id: case_1580807 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/触摸屏(#114151) + name: 单指移动窗口的位置 + reason: requires touchscreen/trackpad hardware input + status: unsupported + steps: + - description: 1. 鼠标点击窗口的工具栏和左侧栏底部工具栏区域,不抬起手指,在屏幕上移动 + needs_accessible_name: false + step_type: action + - description: 1. 可以移动窗口的位置 + needs_accessible_name: false + step_type: assert +- description: 单指拖拽批量文件到应用内 + id: case_1580805 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/触摸屏(#114151) + name: 单指拖拽批量文件到应用内 + reason: requires touchscreen/trackpad hardware input + status: unsupported + steps: + - description: 1. 文件夹中有多份文档,单指拖拽批量文件到应用内 + needs_accessible_name: false + step_type: action + - description: 1. 应用中打开多个标签页 + needs_accessible_name: false + step_type: assert +- description: 单指拖拽拉伸窗口大小 + id: case_1580803 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/触摸屏(#114151) + name: 单指拖拽拉伸窗口大小 + reason: requires touchscreen/trackpad hardware input + status: unsupported + steps: + - description: 1. 单指拖拽应用边角任意位置 + needs_accessible_name: false + step_type: action + - description: 1. 可拉伸窗口大小 + needs_accessible_name: false + step_type: assert +- description: 切换系统语言后,检查翻译是否正确 + id: case_1580755 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/兼容性(#114173) + name: 切换系统语言后,检查翻译是否正确 + reason: compatibility test requiring specific environment + status: unsupported + steps: + - description: 1. 切换系统语言为英文,打开文档后查看各界面翻译是否正常 + needs_accessible_name: false + step_type: assert + - description: 2. 切换系统语言为繁体中文(香港),打开文档后查看各界面翻译是否正常 + needs_accessible_name: false + step_type: assert + - description: 3. 切换系统语言为正体中文(台湾),打开文档后查看各界面翻译是否正常 + needs_accessible_name: false + step_type: assert + - description: 4. 切换系统语言为藏语(终端locale查询显示Bo则表示切换成功),打开文档后查看各界面翻译是否正常 + needs_accessible_name: false + step_type: assert + - description: 5. 切换系统语言为维吾尔语,打开文档后查看各界面翻译是否正常 + needs_accessible_name: false + step_type: assert + - description: 1. 查看各界面显示正确,基本功能使用正常 + needs_accessible_name: false + step_type: assert + - description: 2. 查看各界面显示正确,基本功能使用正常 + needs_accessible_name: false + step_type: assert + - description: 3. 查看各界面显示正确,基本功能使用正常 + needs_accessible_name: false + step_type: assert + - description: 4. 查看各界面显示正确 + needs_accessible_name: false + step_type: assert + - description: 5. 查看各界面显示正确 + needs_accessible_name: false + step_type: assert +- description: 打开PDF和DOCX大文档无异常 + id: case_1580491 + module: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/压力(#114171) + name: 打开PDF和DOCX大文档无异常 + reason: stress test requiring special environment/tools + status: unsupported + steps: + - description: 1. 打开50M、100M、200M、300M左右的PDF大文档 + needs_accessible_name: false + step_type: action + - description: 2. 打开10M、20M、50M、100M左右的DOCX大文档 + needs_accessible_name: false + step_type: action + - description: 1. 正常打开,点击菜单无异常 + needs_accessible_name: false + step_type: assert + - description: 2. 正常打开,点击菜单无异常 + needs_accessible_name: false + step_type: assert +metadata: + generated_at: '2026-08-20T13:49:19.813397' + source: 文档查看器V25-用例.xlsx diff --git a/tests/at/cases_raw.yaml b/tests/at/cases_raw.yaml index 191661c2..f7e2e736 100644 --- a/tests/at/cases_raw.yaml +++ b/tests/at/cases_raw.yaml @@ -1,5 +1,5 @@ metadata: - generated_at: '2026-07-13T21:02:33.142967' + generated_at: '2026-08-20T13:49:19.813397' source: 文档查看器V25-用例.xlsx cases: - id: case_1704991 diff --git a/tests/at/context-bundle.md b/tests/at/context-bundle.md new file mode 100644 index 00000000..12c2ffee --- /dev/null +++ b/tests/at/context-bundle.md @@ -0,0 +1,122 @@ +# 上下文包 — deepin-reader + +--- + +## 1. 元素-功能对照表 + +| 元素名 | Role | 功能描述 | 可见条件 | +|--------|------|----------|----------| +| DTitlebarIconLabel | button | 应用图标/标题 | 始终可见 | +| Button_ThumbnailToggle | check box | 显示/隐藏左侧栏缩略图面板 | 始终可见(文档打开后可用) | +| DLineEditChildLineEdit | text | 缩放百分比输入框 | 始终可见 | +| DTitlebarDWindowOptionButton | button | 打开标题栏主菜单 | 始终可见 | +| DTitlebarDWindowMinButton | button | 最小化窗口 | 始终可见 | +| DTitlebarDWindowMaxButton | button | 最大化/还原窗口 | 始终可见 | +| DTitlebarDWindowQuitFullscreenButton | button | 退出全屏 | 全屏可见 | +| DTitlebarDWindowCloseButton | button | 关闭窗口 | 始终可见 | +| (page tab list) | page tab list | 文档标签切换 | 有文档打开时 | +| 向左滚动 | button | 标签栏向左滚动 | 标签页过多时 | +| 向右滚动 | button | 标签栏向右滚动 | 标签页过多时 | +| DTabBarAddButton | button | 添加新标签(打开文档) | 有标签页时 | +| Label_Icon | image | 文档图标(导航页) | 无文档打开时 | +| Label_Drag documents here | label | "拖拽文档到此"提示文字 | 无文档打开时 | +| Label_format supported: ... | label | 支持格式提示文字 | 无文档打开时 | +| SelectFile | button | 选择文件按钮 | 无文档打开时 | +| Menu_Title | menu | 标题栏主菜单 | 点击选项按钮时瞬态 | +| 新窗口 | menu item | 打开新阅读窗口 | 主菜单展开时瞬态 | +| 新标签页 | menu item | 新标签页打开文档 | 主菜单展开时瞬态 | +| 保存 | menu item | 保存当前文档 | 主菜单展开时瞬态(有文档时可用) | +| 另存为 | menu item | 另存当前文档 | 主菜单展开时瞬态(有文档时可用) | +| 在文件管理器中显示 | menu item | 打开文件所在目录 | 主菜单展开时瞬态(有文档时可用) | +| 放大镜 | menu item | 开启放大镜工具 | 主菜单展开时瞬态(有文档时可用) | +| 工具 | menu item | 工具子菜单(选择/手型) | 主菜单展开时瞬态(有文档时可用) | +| 选择工具 | menu item | 切换为文本选择模式 | 工具菜单展开时瞬态 | +| 手形工具 | menu item | 切换为手形滚动模式 | 工具菜单展开时瞬态 | +| 搜索 | menu item | 打开文档内查找框 | 主菜单展开时瞬态(有文档时可用) | +| 打印 | menu item | 打印当前文档 | 主菜单展开时瞬态(有文档时可用) | +| 主题 | menu item | 主题子菜单(浅色/深色/跟随系统) | 主菜单展开时瞬态 | +| 浅色 | menu item | 切换浅色主题 | 主题菜单展开时瞬态 | +| 深色 | menu item | 切换深色主题 | 主题菜单展开时瞬态 | +| 跟随系统 | menu item | 跟随系统主题 | 主题菜单展开时瞬态 | +| 帮助 | menu item | 打开帮助文档 | 主菜单展开时瞬态 | +| 关于 | menu item | 显示关于信息 | 主菜单展开时瞬态 | +| 退出 | menu item | 退出应用 | 主菜单展开时瞬态 | +| Menu_Browser | menu | 文档区域右键菜单 | 右键文档区域时瞬态 | +| Menu_Hand | menu | 工具子菜单(右键菜单) | 右键菜单展开时瞬态 | +| Menu_BookMark | menu | 书签列表右键菜单 | 书签列表右键时瞬态 | +| Menu_Note | menu | 注释列表右键菜单 | 注释列表右键时瞬态 | +| Form_findSearchEdit_P | form | 查找输入框 | 查找框打开时 | +| Form_scaleEdit_P | form | 缩放输入框 | 始终可见 | +| Button_ThumbnailPre | button | 缩略图上一页 | 缩略图面板打开时(有文档) | +| Button_ThumbnailNext | button | 缩略图下一页 | 缩略图面板打开时(有文档) | +| Page/pageEdit | text | 跳转页输入 | 缩略图面板打开时(有文档) | +| Label_TotalPage | label | 总页数显示 | 缩略图面板打开时(有文档) | +| CurrentPage | label | 当前页显示 | 缩略图面板打开时(有文档) | +| View_ImageList | list | 侧栏列表(书签/注释/缩略图/搜索) | 对应侧栏视图打开时 | +| BookmarkAdd | button | 添加书签按钮 | 书签视图打开时 | +| NotesAdd | button | 添加注释按钮 | 注释视图打开时 | + +## 2. 界面-元素映射 + +| 界面 | 包含元素 | +|------|----------| +| 标题栏 | DTitlebarIconLabel, Button_ThumbnailToggle, DLineEditChildLineEdit, Form_scaleEdit_P, DTitlebarDWindowOptionButton, DTitlebarDWindowMinButton, DTitlebarDWindowMaxButton, DTitlebarDWindowQuitFullscreenButton, DTitlebarDWindowCloseButton | +| 主菜单(瞬态) | Menu_Title, 新窗口, 新标签页, 保存, 另存为, 在文件管理器中显示, 放大镜, 工具, 选择工具, 手形工具, 搜索, 打印, 主题, 浅色, 深色, 跟随系统, 帮助, 关于, 退出 | +| 标签页栏(有文档) | (page tab list), 向左滚动, 向右滚动, DTabBarAddButton | +| 导航页(无文档) | Label_Icon, Label_Drag documents here, Label_format supported: ..., SelectFile | +| 文档区域 | SheetBrowser, Tips, Menu_Browser(瞬态), 选择工具, 手形工具, 主题子菜单 | +| 查找框(打开时) | Form_findSearchEdit_P, 上一个按钮, 下一个按钮, 关闭按钮 | +| 左侧栏—目录视图 | Label_title, View_CatalogTree | +| 左侧栏—书签视图 | View_ImageList, BookmarkAdd, Menu_BookMark(瞬态), BookMarkLine | +| 左侧栏—注释视图 | View_ImageList, NotesAdd, Menu_Note(瞬态), NotesLine | +| 左侧栏—缩略图视图 | View_ImageList, Paging, ThumbnailLine, Button_ThumbnailPre, Button_ThumbnailNext, Page, pageEdit, Label_TotalPage, CurrentPage | +| 左侧栏—搜索结果 | View_ImageList | +| 左侧栏—切换按钮 | Button_Catalog, Button_BookMark, Button_Note, Button_Thumbnail, Button_search | + +## 3. 功能-操作-断言映射 + +| 功能 | 操作 | 断言目标 | +|------|------|----------| +| 打开文件(选择文件按钮) | element_action(SelectFile,click) 或 keyboard_hot_key(ctrl+o) | file_dialog_select → 文档打开后标签页可见 | +| 打开文件(拖拽) | (不可自动化) | — | +| 打开无文档首页 | 启动应用 | SelectFile 可见 | +| 关闭窗口 | element_action(DTitlebarDWindowCloseButton,click) | 窗口关闭 | +| 最小化 | element_action(DTitlebarDWindowMinButton,click) | 窗口最小化 | +| 全屏 | keyboard_press(F11) | DTitlebarDWindowQuitFullscreenButton 可见 | +| 退出全屏 | keyboard_press(F11) | DTitlebarDWindowQuitFullscreenButton 消失 | +| 切换缩略图面板 | element_action(Button_ThumbnailToggle,click) | 左侧栏缩略图视图出现 | +| 输入缩放比例 | keyboard_type(缩放输入框) | 缩放值变更 | +| 主菜单—新窗口 | dtk_main_menu(items:[新窗口]) | 新窗口出现 | +| 主菜单—新标签页 | dtk_main_menu(items:[新标签页]) | 新标签页 Tab 出现 | +| 主菜单—保存 | dtk_main_menu(items:[保存]) | (文档保存,无UI变化) | +| 主菜单—另存为 | dtk_main_menu(items:[另存为]) | file_dialog_select触发 | +| 主菜单—搜索 | dtk_main_menu(items:[搜索]) | Form_findSearchEdit_P 可见 | +| 主菜单—打印 | dtk_main_menu(items:[打印]) | 打印预览出现 | +| 主菜单—放大镜 | dtk_main_menu(items:[放大镜]) | 放大镜效果可见 | +| 主菜单—工具→选择文本 | dtk_main_menu(items:[工具→选择文本]) | 选择文本模式启用 | +| 主菜单—工具→手形工具 | dtk_main_menu(items:[工具→手形工具]) | 手形模式启用 | +| 主菜单—主题切换 | dtk_main_menu(items:[主题→浅色/深色/跟随系统]) | 界面主题变化 | +| 主菜单—帮助 | dtk_main_menu(items:[帮助]) | 帮助文档打开 | +| 主菜单—关于 | dtk_main_menu(items:[关于]) | 关于对话框出现 | +| 主菜单—退出 | dtk_main_menu(items:[退出]) | 窗口关闭 | +| 标签页—添加 | element_action(DTabBarAddButton,click) | 新标签页出现 | +| 标签页—切换 | element_action(标签,click) | 对应文档打开 | +| 标签页—关闭 | mouse_click(标签关闭按钮) | 标签页消失 | +| 侧栏—切换目录 | element_action(Button_Catalog,click) | CatalogWidget 可见 | +| 侧栏—切换书签 | element_action(Button_BookMark,click) | BookMarkWidget 可见 | +| 侧栏—添加书签 | element_action(BookmarkAdd,click) | 书签添加至列表 | +| 侧栏—切换注释 | element_action(Button_Note,click) | NotesWidget 可见 | +| 侧栏—添加注释 | element_action(NotesAdd,click) | 注释编辑框出现 | +| 侧栏—切换缩略图 | element_action(Button_Thumbnail,click) | ThumbnailWidget+Paging 可见 | +| 侧栏—翻页(缩略图) | element_action(Button_ThumbnailPre/Button_ThumbnailNext,click) | 缩略图翻页 | +| 侧栏—跳转页 | keyboard_type(pageEdit) + enter | 文档跳转 | +| 侧栏—搜索 | element_action(Button_search,click) | SearchResWidget 可见 | +| 查找—打开 | keyboard_hot_key(ctrl+f) 或 dtk_main_menu(items:[搜索]) | Form_findSearchEdit_P 可见 | +| 查找—输入文本 | keyboard_type(查找输入框) | 搜索结果 View_ImageList 更新 | +| 查找—关闭 | keyboard_press(Escape) 或 element_action(关闭按钮,click) | Form_findSearchEdit_P 消失 | +| 右键菜单—文档区域 | dtk_context_menu(selector:Menu_Browser,menu:[...]) | 菜单弹出 | +| 右键菜单—书签列表 | dtk_context_menu(selector:View_ImageList child_index:N, menu:[...]) | 菜单弹出 | +| 右键菜单—注释列表 | dtk_context_menu(selector:View_ImageList child_index:N, menu:[...]) | 菜单弹出 | +| 幻灯片播放 | keyboard_press(F5) | 幻灯片界面出现 | +| 快捷键显示 | keyboard_hot_key(ctrl+shift+/) | 快捷键对话框出现 | +| 加密文件打开 | 打开加密PDF → keyboard_type(密码) → element_action(确定按钮) | 文档正常打开 | \ No newline at end of file diff --git "a/tests/at/docs/modules/\344\270\273\350\217\234\345\215\225.md" "b/tests/at/docs/modules/\344\270\273\350\217\234\345\215\225.md" new file mode 100644 index 00000000..8f0015fe --- /dev/null +++ "b/tests/at/docs/modules/\344\270\273\350\217\234\345\215\225.md" @@ -0,0 +1,48 @@ +# 主菜单 + +在主菜单中,您可以新建窗口、新建标签页、[保存文件](#保存文件)、[搜索文件](#搜索)、[打印文件](#打印文件)、切换窗口主题、查看帮助手册、了解文档查看器的更多信息。 + +### 在文件管理器中显示 + +1. 在文档查看器界面,单击 ![icon_menu](../common/icon_menu.svg)。 +2. 选择 **在文件管理器中显示**,定位该文件的存储位置。 + +### 放大镜 + +1. 在文档查看器界面,单击 ![icon_menu](../common/icon_menu.svg) 。 +2. 选择 **放大镜**,将鼠标移动到页面需要查看的区域,则该区域内容放大。 +3. 按下键盘上的 **Esc** 键或右键单击,取消放大镜功能。 + +### 切换工具 + +1. 在文档查看器界面,单击 ![icon_menu](../common/icon_menu.svg)。 +2. 选择 **工具**,支持两种工具切换。 + - **选择工具** 支持选择文本内容。 + - **手形工具** 支持在文档中移动。 + +### 主题 + +窗口主题包含浅色主题、深色主题和系统主题。 + +1. 在文档查看器界面,单击 ![icon_menu](../common/icon_menu.svg)。 +2. 选择 **主题**,选择一个主题颜色。 + +### 帮助 + +查看帮助手册,进一步了解和使用文档查看器。 + +1. 在文档查看器界面,单击 ![icon_menu](../common/icon_menu.svg)。 +2. 选择 **帮助**。 +3. 查看文档查看器的帮助手册。 + + +### 关于 + +1. 在文档查看器界面,单击 ![icon_menu](../common/icon_menu.svg)。 +2. 选择 **关于**。 +3. 查看文档查看器的版本和介绍。 + +### 退出 + +1. 在文档查看器界面,单击 ![icon_menu](../common/icon_menu.svg)。 +2. 选择 **退出**。 diff --git "a/tests/at/docs/modules/\344\275\277\347\224\250\345\205\245\351\227\250.md" "b/tests/at/docs/modules/\344\275\277\347\224\250\345\205\245\351\227\250.md" new file mode 100644 index 00000000..b1081e68 --- /dev/null +++ "b/tests/at/docs/modules/\344\275\277\347\224\250\345\205\245\351\227\250.md" @@ -0,0 +1,29 @@ +# 使用入门 + +通过以下方式运行或关闭文档查看器,或者创建文档查看器的快捷方式。 + + +### 运行文档查看器 + +1. 单击任务栏上的启动器图标 ![deepin_launcher](../common/deepin_launcher.svg),进入启动器界面。 +2. 上下滚动鼠标滚轮浏览或通过搜索,找到文档查看器图标 ![deepin_reader_24](../common/deepin_reader_24.svg),单击运行。 +3. 右键单击 ![deepin_reader_24](../common/deepin_reader_24.svg),您可以: + + - 单击 **发送到桌面**,在桌面创建快捷方式。 + - 单击 **发送到任务栏**,将应用程序固定到任务栏。 + - 单击 **开机自动启动**,将应用程序添加到开机启动项,在电脑开机时自动运行该应用。 + + + +### 关闭文档查看器 + +- 在文档查看器界面单击 ![close_icon](../common/close_icon.svg),退出文档查看器。 +- 在任务栏右键单击 ![deepin_reader_24](../common/deepin_reader_24.svg),选择 **关闭所有**,退出文档查看器。 +- 在文档查看器界面单击 ![icon_menu](../common/icon_menu.svg),选择 **退出**,退出文档查看器。 + + +### 查看快捷键 + +在文档查看器界面,使用快捷键 **Ctrl + Shift + ?** 打开快捷键预览界面。熟练地使用快捷键,将大大提升您的操作效率。 + +![1|hotkey](fig/hotkey.png) diff --git "a/tests/at/docs/modules/\345\237\272\346\234\254\345\212\237\350\203\275.md" "b/tests/at/docs/modules/\345\237\272\346\234\254\345\212\237\350\203\275.md" new file mode 100644 index 00000000..a6e6e26b --- /dev/null +++ "b/tests/at/docs/modules/\345\237\272\346\234\254\345\212\237\350\203\275.md" @@ -0,0 +1,99 @@ +# 基本功能 + +文档查看器具备基本的文件管理功能,可以执行打开、保存、打印文件、管理标签页、书签、注释等操作。 + + +### 打开文件 + +文档查看器支持查看 PDF、DJVU、DOCX、XPS 等格式的文件,您可以采用以下方式打开文件。 + +- 直接将文件拖拽到界面或其图标上。 +- 右键单击文件,选择 **打开方式 > 文档查看器**。将文档查看器设为默认打开程序后,可以直接双击打开。 +- 在文档查看器初始界面,单击 **选择文件**。 +- 在文档查看器界面,使用快捷键 **Ctrl + O**,选择文件打开。 + +### 保存文件 + +对当前正在编辑、修改的文档进行保存。 + +- 单击 ![icon_menu](../common/icon_menu.svg) > **保存** 或使用快捷键 **Ctrl + S** 保存文件。 +- 单击 ![icon_menu](../common/icon_menu.svg) > **另存为** 或使用快捷键 **Ctrl + Shift + S**,另存文件。 + + +### 打印文件 + +在文档查看器中使用打印,需要提前连接并配置好打印机。 + +1. 在文档查看器中打开一个文档,在文档界面单击鼠标右键选择 **打印**,也可以使用快捷键 **Ctrl + P** 打开打印预览。 +2. 在打印预览界面,您可以预览文件,选择打印机并设置打印页面。 +3. 在打印预览界面,单击 **高级设置**,可配置纸张大小、打印方式等相关参数。 +4. 单击 **打印** 即可将文件发送到打印机打印。 + +![printer](fig/printer.png) + +### 管理标签页 + +新增标签页 + +- 单击 ![icon_menu](../common/icon_menu.svg) > **新标签页**,新增一个标签页。 +- 当标签页达两个或两个以上时,会显示按钮 ![icon](../common/add.svg) ,单击该按钮添加新标签页。 + +切换/调整标签页 + +- 同一窗口内拖拽标签页调整排序。 +- 当标签页过多时会显示按钮 ![previous](../common/previous.svg) 或 ![next](../common/next.svg) ,单击可左右移动。 +- 滚动鼠标切换标签页。 + + +窗口间的操作 + +- 拖拽标签页移出当前窗口,创建一个新的窗口。 +- 拖拽标签页从一个窗口到另一个窗口中。 + + + +### 管理书签 + +在文档查看器界面,打开一个文档。 + +- 添加书签 + - 右键单击文档查看器中的文件页,选择 **添加书签**,为当前正在浏览的页面添加书签。 + - 将鼠标移至浏览页面右上角书签区域,显示图标 ![view](../common/bookmark.svg),单击书签图标为当前页添加书签,书签图标变为蓝色填充的图标 ![view](../common/bookmarkbig_checked_light.svg)。 +- 删除书签: + - 在已添加书签的页面,单击鼠标右键,选择 **删除书签**,删除当前页的书签。 + - 在已添加书签的页面,单击书签图标 ![view](../common/bookmarkbig_checked_light.svg),删除当前页的书签。 + + > ![notes](../common/notes.svg)说明:鼠标移到书签位置附近才会显示书签图标。鼠标移出书签区域,书签图标消失。当添加书签后,该图标一直显示。 + +### 管理注释 + +在文档查看器界面,打开一个文档。 + +- 添加注释 + + + 使用选择工具选择一段文本内容,单击鼠标右键,选择 **添加注释**,完成注释后被选中的文本内容会被高亮显示。 + + 在文档空白处或者需要添加注释的地方,单击鼠标右键,选择 **添加注释**,完成注释后该处会显示一个高亮注释图标。 + +> ![notes](../common/notes.svg)说明:如果注释窗口不输入内容,直接单击其他区域,则添加注释不成功或该条注释自动删除。输入文本内容后,单击其他区域,注释内容自动保存。 + +- 复制注释 + + + 在页面上,右键单击已添加注释的文本内容,选择 **复制**,复制该条注释的全部内容。 + + 在页面上,右键单击注释图标,选择 **复制**,复制该条注释的全部内容。 + + 单击图标 ![menu](../common/thumbnail_normal_light.svg) 打开左侧工具栏,在工具栏下方单击图标 ![view](../common/comments_normal_light.svg) 打开注释目录,右键单击某一个注释,选择 **复制**,复制该条注释的全部内容。 + +- 显示注释 + + 1. 将鼠标悬停至注释图标上,在出现的浮框中显示部分注释内容。 + 2. 单击注释图标,弹出注释窗口,可以查看、重新编辑注释内容。 + +- 删除注释 + + + 右键单击已添加注释的高亮文本内容,选择 **取消高亮**,删除该条注释内容。 + + 右键单击注释图标,选择 **删除注释**,删除该条注释内容。 + + 单击图标 ![menu](../common/thumbnail_normal_light.svg) 打开左侧工具栏,在工具栏下方单击图标 ![view](../common/comments_normal_light.svg) 打开注释目录,右键单击某一个注释,选择 **删除注释**,删除该条注释内容,对应页面上的这条注释也会被删除。 + +> ![notes](../common/notes.svg)说明: +> + 支持在当前页移动注释图标。 +> + DJVU格式的文件不支持添加注释。 +> + XPS格式的文件不支持添加注释。 diff --git "a/tests/at/docs/modules/\345\270\270\347\224\250\346\223\215\344\275\234.md" "b/tests/at/docs/modules/\345\270\270\347\224\250\346\223\215\344\275\234.md" new file mode 100644 index 00000000..f6d82984 --- /dev/null +++ "b/tests/at/docs/modules/\345\270\270\347\224\250\346\223\215\344\275\234.md" @@ -0,0 +1,102 @@ +# 常用操作 + +文档查看器具备很多特色功能,这些功能都是为了让文件管理更加简单、高效。 + +### 搜索 + +1. 在文档查看器界面,打开一个文档。 +2. 单击鼠标右键,选择 **搜索** 或使用快捷键 **Ctrl + F** 打开搜索窗口。 +3. 在搜索框中,单击 ![search](../common/search.svg),输入关键字。 +4. 按下键盘上的 **Enter** 键进行搜索。 + - 当搜索到匹配的信息时,侧边栏会显示全部搜索结果,文档中会高亮显示匹配项。 + - 当没有搜索到匹配的信息时,侧边栏会显示“无搜索结果”。 +5. 当搜索到匹配信息后,单击按钮 ![search](../common/previousup.svg) 或 ![search](../common/nextdown.svg) 可逐个查找上一个或下一个匹配项。 +6. 单击某条搜索结果,跳转到对应页面,该页面的搜索结果高亮显示。 + + > ![attention](../common/attention.svg)注意:不可搜索文档中由文本转换成图片的内容。 +7. 清除搜索框中的信息,即可清除搜索结果。 + + > ![notes](../common/notes.svg)说明:DJVU格式的文件不支持搜索功能。 + + + +### 快速翻页 + +使用下列方法之一快速翻页: + +- 在右键菜单中选择 **前一页** 或 **后一页** 。 +- 如果您想直接浏览文档的开头或结尾,可在右键菜单中选择 **第一页** 或 **最后一页**。 +- 按下键盘上的 ![Down](../common/Down.svg) 或 ![Up](../common/Up.svg) 键。 +- 在侧边栏缩略图目录下,输入页码数后按下 **Enter** 键。 + + + +### 切换目录 + +在侧边栏,您可以切换文档缩略图目录 ![view](../common/view_normal.svg)、文档目录 ![catalog](../common/catalog.svg) 、书签目录 ![view](../common/bookmark_normal.svg)、注释目录 ![view](../common/comments_normal_light.svg) 。 + + + +### 全屏 + +1. 在文档查看器界面,单击鼠标右键选择 **全屏** 或使用快捷键 **F11**,文档将以全屏形式展示。 +2. 将鼠标移到窗口顶部或者左侧区域,呼出顶部工具栏或侧边工具栏;将鼠标移出区域外,工具栏自动隐藏。 +3. 在全屏状态下,呼出顶部工具栏后单击缩略图 ![icon](../common/thumbnail_normal_light.svg),侧边工具栏会一直显示。 +4. 按下键盘上的 **Esc** 键或使用快捷键 **F11** 退出全屏。 + + + +### 幻灯片放映 + +1. 在文档查看器界面,单击鼠标右键选择 **幻灯片放映**,文档页面将以幻灯片形式进行播放。 +2. 单击 ![play](../common/previous.svg) 或 ![play](../common/next.svg) 切换文档页面,也可以点击 ![play](../common/suspend_normal.svg) 停止播放。 +3. 单击按钮 **×** 或按下键盘上的 **Esc** 键退出播放。 + + + +### 放大和缩小 + +在文档查看器界面,使用下列方法之一放大或缩小页面: + +- 按下键盘上的 **Ctrl + “+”** 或 **Ctrl + “-”** 。 +- 按下键盘上的 **Ctrl** 键,同时使用鼠标滚轮滚动。 +- 在标题栏中单击 **+** 放大或单击 **-** 缩小 。 +- 在标题栏中手动输入缩略比例,或者在下拉框选择缩略比例,文档跟着比例依次放大或缩小。 + + + +### 调整页面视图 + +在标题栏缩放比例下拉框中,您可以: + +- 单击 **双页显示**,进入双页显示模式。 +- 单击 **默认大小**,页面以100%比例显示。 +- 单击 **适合页面**,当前窗口显示整页。 +- 单击 **适应高度**,页面高度在视窗内全部显示。 +- 单击 **适应宽度**,页面宽度在视窗内全部显示。 + + + +### 高亮文本 + +1. 在文档查看器界面选中文本,单击鼠标右键选择 **高亮**,此时有不同的高亮颜色可供选择。 +2. 选定一种颜色,被选中的文本内容将以该颜色为底纹高亮显示。 +3. 选中已经高亮显示的文本,单击 **取消高亮**,可以删除文字高亮显示效果。 + > ![notes](../common/notes.svg)说明: + > - 当再次高亮文本时,可右键直接选择 **高亮**,默认使用您上次选择的高亮颜色。 + > - DJVU格式的文件不支持高亮设置。 + > - XPS格式的文件不支持高亮设置。 + + + +### 旋转 + +1. 在文档查看器界面,打开一个文件。 +2. 单击鼠标右键选择 **左旋转** 或 **右旋转**,页面全部同时向左或向右旋转90°。 + + + +### 查看文档信息 + +1. 在文档查看器界面,打开一个文件。 +2. 单击鼠标右键选择 **文档信息**,查看文档相关参数信息。 diff --git "a/tests/at/docs/modules/\346\226\207\346\241\243\346\237\245\347\234\213\345\231\250_deepin-reader.md" "b/tests/at/docs/modules/\346\226\207\346\241\243\346\237\245\347\234\213\345\231\250_deepin-reader.md" new file mode 100644 index 00000000..91f5f88b --- /dev/null +++ "b/tests/at/docs/modules/\346\226\207\346\241\243\346\237\245\347\234\213\345\231\250_deepin-reader.md" @@ -0,0 +1,3 @@ +# 文档查看器|deepin-reader| + + diff --git "a/tests/at/docs/modules/\346\246\202\350\277\260.md" "b/tests/at/docs/modules/\346\246\202\350\277\260.md" new file mode 100644 index 00000000..61f619fa --- /dev/null +++ "b/tests/at/docs/modules/\346\246\202\350\277\260.md" @@ -0,0 +1,3 @@ +# 概述 + +文档查看器是系统自带的文档查看软件,不仅可以打开、查看文件,还可以对文档进行添加书签、添加注释以及高亮文本等操作。 diff --git a/tests/at/dump/runtime.yaml b/tests/at/dump/runtime.yaml index ef26b129..a1a229cc 100644 --- a/tests/at/dump/runtime.yaml +++ b/tests/at/dump/runtime.yaml @@ -11,3269 +11,23 @@ tree: - SetFocus index_in_parent: 0 states: + - active - enabled - focusable + - focused - resizable - sensitive - showing - visible source: runtime children: - - role: form - name: Form_Central - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - sensitive - - showing - - visible - source: runtime - children: - - role: form - name: Form_widget_1 - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - sensitive - - showing - - visible - source: runtime - children: - - role: form - name: Form_CentralNavPage - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - sensitive - source: runtime - children: - - role: label - name: Label_Drag documents here - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - read_only - - sensitive - source: runtime - - role: label - name: 'Label_format supported: PDF,DJVU,DOCX,XPS' - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 1 - states: - - enabled - - read_only - - sensitive - source: runtime - - role: button - name: Button_SelectFile - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - - ShowMenu - index_in_parent: 2 - states: - - enabled - - focusable - - sensitive - source: runtime - - role: image - name: Label_Icon - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 3 - states: - - enabled - - read_only - - sensitive - source: runtime - - role: form - name: Form_CentralDocPage - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 1 - states: - - enabled - - sensitive - - showing - - visible - source: runtime - children: - - role: form - name: Form_DocSheet - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - sensitive - - showing - - visible - source: runtime - children: - - role: form - name: Form_SheetSidebar - object_name: '' - accessible_id: '' - description: '' - actions: - - SetFocus - index_in_parent: 0 - states: - - enabled - - focusable - - sensitive - source: runtime - children: - - role: form - name: Form_SearchResWidget - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - sensitive - source: runtime - children: - - role: label - name: 无搜索结果 - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - read_only - - sensitive - source: runtime - - role: list - name: View_ImageList - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 1 - states: - - enabled - - focusable - - manages_descendants - - sensitive - source: runtime - - role: check box - name: Button_thumbnail - object_name: '' - accessible_id: '' - description: 缩略图 - actions: - - Toggle - - Press - - SetFocus - index_in_parent: 1 - states: - - checkable - - enabled - - focusable - - sensitive - source: runtime - - role: check box - name: Button_catalog - object_name: '' - accessible_id: '' - description: 目录 - actions: - - Toggle - - Press - - SetFocus - index_in_parent: 2 - states: - - checkable - - checked - - enabled - - focusable - - sensitive - source: runtime - - role: check box - name: Button_bookmark - object_name: '' - accessible_id: '' - description: 书签 - actions: - - Toggle - - Press - - SetFocus - index_in_parent: 3 - states: - - checkable - - enabled - - focusable - - sensitive - source: runtime - - role: check box - name: Button_annotation - object_name: '' - accessible_id: '' - description: 注释 - actions: - - Toggle - - Press - - SetFocus - index_in_parent: 4 - states: - - checkable - - enabled - - focusable - - sensitive - source: runtime - - role: check box - name: Button_search - object_name: '' - accessible_id: '' - description: Search - actions: - - Toggle - - Press - - SetFocus - index_in_parent: 5 - states: - - checkable - - enabled - - focusable - - sensitive - source: runtime - - role: form - name: Form_BookMarkWidget - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 6 - states: - - enabled - - sensitive - source: runtime - children: - - role: list - name: View_ImageList - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - focusable - - manages_descendants - - sensitive - source: runtime - - role: button - name: Button_BookmarkAdd - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - - ShowMenu - index_in_parent: 1 - states: - - enabled - - focusable - - sensitive - source: runtime - - role: form - name: Form_BookMarkLine - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 2 - states: - - enabled - - sensitive - source: runtime - - role: form - name: Form_NotesWidget - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 7 - states: - - enabled - - sensitive - source: runtime - children: - - role: list - name: View_ImageList - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - focusable - - manages_descendants - - sensitive - source: runtime - children: - - role: list item - name: '0' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 0 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '1' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 1 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '2' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 2 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '3' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 3 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '4' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 4 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '5' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 5 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '6' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 6 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '7' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 7 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '8' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 8 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '9' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 9 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: list item - name: '10' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 10 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: list item - name: '11' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 11 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: list item - name: '12' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 12 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: list item - name: '13' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 13 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: list item - name: '14' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 14 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: list item - name: '15' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 15 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: list item - name: '16' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 16 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: list item - name: '17' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 17 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: list item - name: '18' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 18 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: list item - name: '19' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 19 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: list item - name: '20' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 20 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: list item - name: '21' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 21 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: list item - name: '22' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 22 - states: - - enabled - - focusable - - focused - - selectable - - selected - - sensitive - - showing - - transient - - visible - source: runtime - - role: button - name: Button_NotesAdd - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - - ShowMenu - index_in_parent: 1 - states: - - enabled - - focusable - - sensitive - source: runtime - - role: form - name: Form_NotesLine - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 2 - states: - - enabled - - sensitive - source: runtime - - role: form - name: Form_ThumbnailWidget - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 8 - states: - - enabled - - sensitive - source: runtime - children: - - role: list - name: View_ImageList - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - focusable - - manages_descendants - - sensitive - source: runtime - children: - - role: list item - name: '0' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 0 - states: - - enabled - - focusable - - focused - - selectable - - selected - - sensitive - - showing - - transient - - visible - source: runtime - - role: list item - name: '1' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 1 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: list item - name: '2' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 2 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: list item - name: '3' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 3 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: list item - name: '4' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 4 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '5' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 5 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '6' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 6 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '7' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 7 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '8' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 8 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '9' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 9 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '10' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 10 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '11' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 11 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '12' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 12 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '13' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 13 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '14' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 14 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '15' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 15 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '16' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 16 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '17' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 17 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '18' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 18 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '19' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 19 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '20' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 20 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '21' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 21 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '22' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 22 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '23' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 23 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '24' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 24 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '25' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 25 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '26' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 26 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '27' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 27 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '28' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 28 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '29' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 29 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '30' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 30 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '31' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 31 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '32' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 32 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '33' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 33 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '34' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 34 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '35' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 35 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '36' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 36 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '37' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 37 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '38' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 38 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '39' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 39 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '40' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 40 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '41' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 41 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '42' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 42 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '43' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 43 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '44' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 44 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '45' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 45 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '46' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 46 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '47' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 47 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '48' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 48 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '49' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 49 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '50' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 50 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '51' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 51 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '52' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 52 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '53' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 53 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '54' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 54 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '55' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 55 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '56' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 56 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '57' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 57 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '58' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 58 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '59' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 59 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '60' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 60 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '61' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 61 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '62' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 62 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '63' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 63 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '64' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 64 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '65' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 65 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '66' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 66 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '67' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 67 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '68' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 68 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '69' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 69 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '70' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 70 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '71' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 71 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '72' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 72 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '73' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 73 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '74' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 74 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '75' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 75 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '76' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 76 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '77' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 77 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '78' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 78 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '79' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 79 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '80' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 80 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '81' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 81 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '82' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 82 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '83' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 83 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '84' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 84 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '85' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 85 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '86' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 86 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '87' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 87 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '88' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 88 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '89' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 89 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '90' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 90 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '91' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 91 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '92' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 92 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '93' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 93 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '94' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 94 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '95' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 95 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '96' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 96 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '97' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 97 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '98' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 98 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '99' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 99 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: form - name: Form_Paging - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 1 - states: - - enabled - - sensitive - source: runtime - children: - - role: label - name: Label_TotalPage - object_name: '' - accessible_id: '' - description: '344' - actions: [] - index_in_parent: 0 - states: - - enabled - - read_only - - sensitive - source: runtime - - role: form - name: Form_Page - object_name: '' - accessible_id: '' - description: '' - actions: - - SetFocus - index_in_parent: 1 - states: - - enabled - - focusable - - sensitive - source: runtime - children: - - role: text - name: pageEdit - object_name: '' - accessible_id: '' - description: '' - actions: - - SetFocus - index_in_parent: 0 - states: - - editable - - enabled - - focusable - - sensitive - source: runtime - - role: label - name: CurrentPage - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 2 - states: - - enabled - - read_only - - sensitive - source: runtime - - role: button - name: Button_ThumbnailPre - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 3 - states: - - focusable - source: runtime - - role: button - name: Button_ThumbnailNext - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - - SetFocus - index_in_parent: 4 - states: - - enabled - - focusable - - sensitive - source: runtime - - role: form - name: Form_ThumbnailLine - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 2 - states: - - enabled - - sensitive - source: runtime - - role: form - name: Form_CatalogWidget - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 9 - states: - - enabled - - sensitive - source: runtime - children: - - role: label - name: Label_title - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - read_only - - sensitive - source: runtime - - role: tree - name: View_CatalogTree - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 1 - states: - - enabled - - manages_descendants - - sensitive - source: runtime - children: - - role: table column header - name: '1' - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - sensitive - source: runtime - - role: table column header - name: '2' - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 1 - states: - - enabled - - sensitive - source: runtime - - role: table cell - name: JavaScript Application Design - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 2 - states: - - enabled - - focusable - - selectable - - selected - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '1' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 3 - states: - - enabled - - focusable - - selectable - - selected - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: brief contents - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 4 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '8' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 5 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: contents - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 6 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '10' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 7 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: foreword - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 8 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '16' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 9 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: preface - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 10 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '18' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 11 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: acknowledgments - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 12 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '20' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 13 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: about this book - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 14 - states: - - enabled - - expandable - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '22' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 15 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: about the author - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 16 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '26' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 17 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: about the cover illustration - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 18 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '27' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 19 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: Part 1 Build processes - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 20 - states: - - enabled - - expandable - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '30' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 21 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: Part 2 Managing complexity - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 22 - states: - - enabled - - expandable - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '126' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 23 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: appendix A Modules in Node.js - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 24 - states: - - enabled - - expandable - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '302' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 25 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: appendix B Introduction to Grunt - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 26 - states: - - enabled - - expandable - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '305' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 27 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: appendix C Picking your build tool - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 28 - states: - - enabled - - expandable - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '313' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 29 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: appendix D JavaScript code quality guide - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 30 - states: - - enabled - - expandable - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '322' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 31 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: index - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 32 - states: - - enabled - - expandable - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '336' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 33 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: JavaScript Application Design-back - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 34 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '344' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 35 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: maps and atlases, especially of North America. His work as - a mapmaker sparked an interest in local d - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 36 - states: - - enabled - - focusable - - focused - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '27' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 37 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: 'a mapmaker sparked an interest in local dress customs of - the lands he surveyed and mapped; they are ' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 38 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '27' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 39 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: form - name: Form_SheetBrowser - object_name: '' - accessible_id: '' - description: '' - actions: - - SetFocus - index_in_parent: 1 - states: - - enabled - - focusable - - sensitive - - showing - - visible - source: runtime - children: - - role: form - name: Form_qt_scrollarea_hcontainer - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - sensitive - source: runtime - - role: form - name: Form_widget_2 - object_name: '' - accessible_id: '' - description: '' - actions: - - SetFocus - index_in_parent: 1 - states: - - enabled - - focusable - - sensitive - - showing - - visible - source: runtime - - role: form - name: Form_qt_scrollarea_vcontainer - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 2 - states: - - enabled - - sensitive - - showing - - visible - source: runtime - - role: form - name: Form_DocTabBar - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 1 - states: - - enabled - - sensitive - source: runtime - children: - - role: page tab list - name: normal.pdf - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - sensitive - source: runtime - children: - - role: page tab - name: normal.pdf - object_name: '' - accessible_id: '' - description: normal.pdf - actions: - - Press - index_in_parent: 0 - states: - - enabled - - focused - - selectable - - selected - - sensitive - source: runtime - - role: button - name: 向左滚动 - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 1 - states: - - focusable - source: runtime - - role: button - name: 向右滚动 - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - - SetFocus - index_in_parent: 2 - states: - - enabled - - focusable - - sensitive - source: runtime - - role: button - name: DTabBarAddButton - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - - SetFocus - index_in_parent: 1 - states: - - enabled - - focusable - - sensitive - source: runtime - - role: button - name: '' - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 2 - states: - - focusable - source: runtime - - role: button - name: '' - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - - SetFocus - index_in_parent: 3 - states: - - enabled - - focusable - - sensitive - source: runtime - - role: form - name: Form_widget_3 - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 1 - states: - - enabled - - sensitive - - showing - - visible - source: runtime - role: form name: Form_DMainWindowTitlebar object_name: '' accessible_id: '' description: '' actions: [] - index_in_parent: 2 + index_in_parent: 0 states: - enabled - sensitive @@ -3360,20 +114,15 @@ tree: source: runtime children: - role: check box - name: '' + name: Button_ThumbnailToggle object_name: '' accessible_id: '' description: 缩略图 - actions: - - Toggle - - Press - - SetFocus + actions: [] index_in_parent: 0 states: - checkable - - enabled - focusable - - sensitive - showing - visible source: runtime @@ -3385,8 +134,6 @@ tree: actions: [] index_in_parent: 1 states: - - enabled - - sensitive - showing - visible source: runtime @@ -3396,13 +143,10 @@ tree: object_name: '' accessible_id: '' description: '' - actions: - - SetFocus + actions: [] index_in_parent: 0 states: - - enabled - focusable - - sensitive - showing - visible source: runtime @@ -3412,14 +156,11 @@ tree: object_name: '' accessible_id: '' description: '' - actions: - - SetFocus + actions: [] index_in_parent: 0 states: - editable - - enabled - focusable - - sensitive - showing - visible source: runtime @@ -3428,14 +169,10 @@ tree: object_name: '' accessible_id: '' description: '' - actions: - - Press - - SetFocus + actions: [] index_in_parent: 1 states: - - enabled - focusable - - sensitive - showing - visible source: runtime @@ -3444,14 +181,10 @@ tree: object_name: '' accessible_id: '' description: '' - actions: - - Press - - SetFocus + actions: [] index_in_parent: 1 states: - - enabled - focusable - - sensitive - showing - visible source: runtime @@ -3460,19 +193,15 @@ tree: object_name: '' accessible_id: '' description: '' - actions: - - Press - - SetFocus + actions: [] index_in_parent: 2 states: - - enabled - focusable - - sensitive - showing - visible source: runtime - role: label - name: normal.pdf + name: '' object_name: '' accessible_id: '' description: '' @@ -3556,37 +285,243 @@ tree: index_in_parent: 2 states: - enabled - - focusable + - focusable + - sensitive + - showing + - visible + source: runtime + - role: button + name: DTitlebarDWindowQuitFullscreenButton + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + - SetFocus + index_in_parent: 3 + states: + - enabled + - focusable + - sensitive + source: runtime + - role: button + name: DTitlebarDWindowCloseButton + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + - SetFocus + index_in_parent: 4 + states: + - enabled + - focusable + - sensitive + - showing + - visible + source: runtime + - role: form + name: Form_Central + object_name: '' + accessible_id: '' + description: '' + actions: [] + index_in_parent: 1 + states: + - enabled + - sensitive + - showing + - visible + source: runtime + children: + - role: form + name: Form_widget_1 + object_name: '' + accessible_id: '' + description: '' + actions: [] + index_in_parent: 0 + states: + - enabled + - sensitive + - showing + - visible + source: runtime + children: + - role: form + name: Form_CentralDocPage + object_name: '' + accessible_id: '' + description: '' + actions: [] + index_in_parent: 0 + states: + - enabled + - sensitive + source: runtime + children: + - role: form + name: Form_DocTabBar + object_name: '' + accessible_id: '' + description: '' + actions: [] + index_in_parent: 0 + states: + - enabled + - sensitive + source: runtime + children: + - role: page tab list + name: '' + object_name: '' + accessible_id: '' + description: '' + actions: [] + index_in_parent: 0 + states: + - enabled + - sensitive + source: runtime + children: + - role: button + name: 向左滚动 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + - SetFocus + index_in_parent: 0 + states: + - enabled + - focusable + - sensitive + source: runtime + - role: button + name: 向右滚动 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + - SetFocus + index_in_parent: 1 + states: + - enabled + - focusable + - sensitive + source: runtime + - role: button + name: DTabBarAddButton + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + - SetFocus + index_in_parent: 1 + states: + - enabled + - focusable + - sensitive + source: runtime + - role: button + name: '' + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + - SetFocus + index_in_parent: 2 + states: + - enabled + - focusable + - sensitive + source: runtime + - role: button + name: '' + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + - SetFocus + index_in_parent: 3 + states: + - enabled + - focusable + - sensitive + source: runtime + - role: form + name: Form_CentralNavPage + object_name: '' + accessible_id: '' + description: '' + actions: [] + index_in_parent: 1 + states: + - enabled + - sensitive + - showing + - visible + source: runtime + children: + - role: label + name: Label_Drag documents here + object_name: '' + accessible_id: '' + description: '' + actions: [] + index_in_parent: 0 + states: + - enabled + - read_only + - sensitive + - showing + - visible + source: runtime + - role: label + name: 'Label_format supported: PDF,DJVU,DOCX,XPS' + object_name: '' + accessible_id: '' + description: '' + actions: [] + index_in_parent: 1 + states: + - enabled + - read_only - sensitive - showing - visible source: runtime - role: button - name: DTitlebarDWindowQuitFullscreenButton + name: Button_SelectFile object_name: '' accessible_id: '' description: '' actions: - Press - - SetFocus - index_in_parent: 3 + - ShowMenu + index_in_parent: 2 states: - enabled - focusable - sensitive + - showing + - visible source: runtime - - role: button - name: DTitlebarDWindowCloseButton + - role: image + name: Label_Icon object_name: '' accessible_id: '' description: '' - actions: - - Press - - SetFocus - index_in_parent: 4 + actions: [] + index_in_parent: 3 states: - enabled - - focusable + - read_only - sensitive - showing - visible @@ -3597,7 +532,7 @@ tree: accessible_id: '' description: '' actions: [] - index_in_parent: 3 + index_in_parent: 2 states: - enabled - sensitive @@ -3617,12 +552,12 @@ tree: - sensitive source: runtime - role: popup menu - name: DTitlebarThemeMenu + name: DTitlebarMainMenu object_name: '' accessible_id: '' description: '' actions: [] - index_in_parent: 0 + index_in_parent: 2 states: - enabled - resizable @@ -3630,7 +565,7 @@ tree: source: runtime children: - role: menu item - name: 浅色 + name: 新窗口 object_name: '' accessible_id: '' description: '' @@ -3638,12 +573,11 @@ tree: - Press index_in_parent: 0 states: - - checkable - enabled - sensitive source: runtime - role: menu item - name: 深色 + name: 新标签页 object_name: '' accessible_id: '' description: '' @@ -3651,32 +585,302 @@ tree: - Press index_in_parent: 1 states: + - enabled + - sensitive + source: runtime + - role: menu item + name: 保存 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 3 + states: [] + source: runtime + - role: menu item + name: 另存为 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 4 + states: [] + source: runtime + - role: menu item + name: 在文件管理器中显示 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 6 + states: [] + source: runtime + - role: menu item + name: 放大镜 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 7 + states: [] + source: runtime + - role: menu item + name: 工具 + object_name: '' + accessible_id: '' + description: '' + actions: + - ShowMenu + index_in_parent: 8 + states: [] + source: runtime + children: + - role: popup menu + name: Menu_Hand + object_name: '' + accessible_id: '' + description: '' + actions: [] + index_in_parent: 0 + states: + - resizable + source: runtime + children: + - role: menu item + name: 选择工具 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 0 + states: + - checkable + - enabled + - sensitive + source: runtime + - role: menu item + name: 手形工具 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 1 + states: + - checkable + - enabled + - sensitive + source: runtime + - role: menu item + name: 搜索 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 9 + states: [] + source: runtime + - role: menu item + name: 打印 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 10 + states: [] + source: runtime + - role: menu item + name: 主题 + object_name: '' + accessible_id: '' + description: '' + actions: + - ShowMenu + index_in_parent: 12 + states: + - enabled + - sensitive + source: runtime + children: + - role: popup menu + name: DTitlebarThemeMenu + object_name: '' + accessible_id: '' + description: '' + actions: [] + index_in_parent: 0 + states: + - enabled + - resizable + - sensitive + source: runtime + children: + - role: menu item + name: 浅色 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 0 + states: + - checkable + - enabled + - sensitive + source: runtime + - role: menu item + name: 深色 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 1 + states: + - checkable + - enabled + - sensitive + source: runtime + - role: menu item + name: 跟随系统 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 2 + states: + - checkable + - enabled + - sensitive + source: runtime + - role: menu item + name: 帮助 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 14 + states: [] + source: runtime + - role: menu item + name: 关于 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 15 + states: + - enabled + - sensitive + source: runtime + - role: menu item + name: 退出 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 16 + states: + - enabled + - sensitive + source: runtime +- role: popup menu + name: Menu_Hand + object_name: '' + accessible_id: '' + description: '' + actions: [] + index_in_parent: 0 + states: + - resizable + source: runtime + children: + - role: menu item + name: 选择工具 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 0 + states: - checkable - enabled - sensitive source: runtime - role: menu item - name: 跟随系统 + name: 手形工具 object_name: '' accessible_id: '' description: '' actions: - Press - index_in_parent: 2 + index_in_parent: 1 states: - checkable - - checked - enabled - sensitive source: runtime -- role: form - name: Form_Tips +- role: popup menu + name: DTitlebarThemeMenu object_name: '' accessible_id: '' description: '' actions: [] - index_in_parent: 3 + index_in_parent: 0 states: - enabled + - resizable - sensitive source: runtime + children: + - role: menu item + name: 浅色 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 0 + states: + - checkable + - enabled + - sensitive + source: runtime + - role: menu item + name: 深色 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 1 + states: + - checkable + - enabled + - sensitive + source: runtime + - role: menu item + name: 跟随系统 + object_name: '' + accessible_id: '' + description: '' + actions: + - Press + index_in_parent: 2 + states: + - checkable + - enabled + - sensitive + source: runtime diff --git a/tests/at/dump/scanned_gaps.yaml b/tests/at/dump/scanned_gaps.yaml deleted file mode 100644 index d88dd899..00000000 --- a/tests/at/dump/scanned_gaps.yaml +++ /dev/null @@ -1,2736 +0,0 @@ ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/third_party/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/third_party/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/third_party/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/third_party/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/third_party/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/third_party/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/third_party/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/third_party/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/third_party/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/third_party/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/third_party/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/third_party/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/third_party/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/third_party/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/third_party/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/third_party/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/third_party/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/third_party/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/third_party/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: CFXEU_InsertWord -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/fpdfsdk/pwl/cpwl_edit_impl.h -base_classes: -- IFX_Edit_UndoItem -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: CFXEU_InsertReturn -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/fpdfsdk/pwl/cpwl_edit_impl.h -base_classes: -- IFX_Edit_UndoItem -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: CFXEU_ReplaceSelection -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/fpdfsdk/pwl/cpwl_edit_impl.h -base_classes: -- IFX_Edit_UndoItem -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: CFXEU_Backspace -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/fpdfsdk/pwl/cpwl_edit_impl.h -base_classes: -- IFX_Edit_UndoItem -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: CFXEU_Delete -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/fpdfsdk/pwl/cpwl_edit_impl.h -base_classes: -- IFX_Edit_UndoItem -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: CFXEU_Clear -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/fpdfsdk/pwl/cpwl_edit_impl.h -base_classes: -- IFX_Edit_UndoItem -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: CFXEU_InsertText -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/fpdfsdk/pwl/cpwl_edit_impl.h -base_classes: -- IFX_Edit_UndoItem -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: CFX_KeyValue -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/fxjs/cfx_keyvalue.h -base_classes: -- CFX_Value -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: vertex_dist_cmd -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/third_party/agg23/agg_vertex_sequence.h -base_classes: -- vertex_dist -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: DPdfTextAnnot -source_file: 3rdparty/deepin-pdfium/include/dpdfannot.h -base_classes: -- DPdfAnnot -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: DPdfSquareAnnot -source_file: 3rdparty/deepin-pdfium/include/dpdfannot.h -base_classes: -- DPdfAnnot -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: DPdfCIRCLEAnnot -source_file: 3rdparty/deepin-pdfium/include/dpdfannot.h -base_classes: -- DPdfAnnot -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: DPdfHightLightAnnot -source_file: 3rdparty/deepin-pdfium/include/dpdfannot.h -base_classes: -- DPdfAnnot -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: DPdfLinkAnnot -source_file: 3rdparty/deepin-pdfium/include/dpdfannot.h -base_classes: -- DPdfAnnot -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: DPdfWidgetAnnot -source_file: 3rdparty/deepin-pdfium/include/dpdfannot.h -base_classes: -- DPdfAnnot -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: DPdfUnknownAnnot -source_file: 3rdparty/deepin-pdfium/include/dpdfannot.h -base_classes: -- DPdfAnnot -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: DPdfUnderlineAnnot -source_file: 3rdparty/deepin-pdfium/include/dpdfannot.h -base_classes: -- DPdfAnnot -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: DPdfDoc -source_file: 3rdparty/deepin-pdfium/include/dpdfdoc.h -base_classes: -- QObject -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: DPdfMutexLocker -source_file: 3rdparty/deepin-pdfium/include/dpdfglobal.h -base_classes: -- QMutexLocker -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: DPdfPage -source_file: 3rdparty/deepin-pdfium/include/dpdfpage.h -base_classes: -- QObject -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/base/optional.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: TCoverageFormat1 -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fpdfapi/font/cfx_cttgsubtable.h -base_classes: -- TCoverageFormatBase -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: TCoverageFormat2 -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fpdfapi/font/cfx_cttgsubtable.h -base_classes: -- TCoverageFormatBase -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: TSubTable1 -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fpdfapi/font/cfx_cttgsubtable.h -base_classes: -- TSubTableBase -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: TSubTable2 -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fpdfapi/font/cfx_cttgsubtable.h -base_classes: -- TSubTableBase -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_string_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_string_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_string_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_string_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/bytestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: IFX_ArchiveStream -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/fx_stream.h -base_classes: -- IFX_WriteStream -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: IFX_SeekableWriteStream -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/fx_stream.h -base_classes: -- IFX_StreamWithSize -- IFX_RetainableWriteStream -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: IFX_SeekableReadStream -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/fx_stream.h -base_classes: -- IFX_StreamWithSize -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: IFX_SeekableStream -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/fx_stream.h -base_classes: -- IFX_SeekableReadStream -- IFX_SeekableWriteStream -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_string_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_string_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_string_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_string_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: hash -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcrt/widestring.h -base_classes: -- __hash_base -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: CFX_RetainableGraphStateData -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxge/cfx_graphstatedata.h -base_classes: -- CFX_GraphStateData -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: CFX_RetainablePathData -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxge/cfx_pathdata.h -base_classes: -- CFX_PathData -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: CPDF_NonConstObjectWalker -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fpdfapi/parser/cpdf_object_walker.h -base_classes: -- CPDF_ObjectWalker -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: FlatePredictorScanlineDecoder -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxcodec/flate/flatemodule.cpp -base_classes: -- FlateScanlineDecoder -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: CFX_BilinearMatrix -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/core/fxge/dib/cfx_imagetransformer.cpp -base_classes: -- CPDF_FixedMatrix -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AutoClosedQCommand -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/fpdfsdk/cpdfsdk_appstream.cpp -base_classes: -- AutoClosedCommand -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: CPDF_PageExporter -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/fpdfsdk/fpdf_ppo.cpp -base_classes: -- CPDF_PageOrganizer -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: CPDF_NPageToOneExporter -source_file: 3rdparty/deepin-pdfium/src/3rdparty/pdfium/pdfium/fpdfsdk/fpdf_ppo.cpp -base_classes: -- CPDF_PageOrganizer -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: Holder -source_file: 3rdparty/deepin-pdfium/src/dpdfglobal.cpp -base_classes: -- HolderBase -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: Holder -source_file: 3rdparty/deepin-pdfium/src/dpdfglobal.cpp -base_classes: -- HolderBase -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: Application -source_file: reader/Application.cpp -base_classes: -- DApplication -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: Application -source_file: reader/Application.h -base_classes: -- DApplication -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: MainWindow -source_file: reader/MainWindow.cpp -base_classes: -- Dtk::Widget::DMainWindow -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: -- DMainWindow -- DMainWindow ---- -class_name: MainWindow -source_file: reader/MainWindow.h -base_classes: -- Dtk::Widget::DMainWindow -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: DBusObject -source_file: reader/app/DBusObject.cpp -base_classes: -- QObject -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: DBusObject -source_file: reader/app/DBusObject.h -base_classes: -- QObject -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: Database -source_file: reader/app/Database.cpp -base_classes: -- QObject -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: Database -source_file: reader/app/Database.h -base_classes: -- QObject -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: TMFunctionThread -source_file: reader/app/TMFunctionThread.cpp -base_classes: -- QThread -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: TMFunctionThread -source_file: reader/app/TMFunctionThread.h -base_classes: -- QThread -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: Utils -source_file: reader/app/Utils.cpp -base_classes: -- QObject -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: Utils -source_file: reader/app/Utils.h -base_classes: -- QObject -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleMainWindow -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleCentral -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleCentralDocPage -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleCentralNavPage -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleDocSheet -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleDocTabBar -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleTitleWidget -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleSheetSidebar -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleSheetBrowser -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleThumbnailWidget -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleCatalogWidget -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleBookMarkWidget -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleNotesWidget -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleSearchResWidget -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleQFrame -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleQWidget -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleQPushButton -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleQSlider -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -- QAccessibleValueInterface -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleDFrame -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleDWidget -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleDBackgroundGroup -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleDSwitchButton -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleDFloatingButton -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleDSearchEdit -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleDPushButton -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleDIconButton -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleDCheckBox -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleDCommandLinkButton -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleDLabel -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -- QAccessibleTextInterface -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleDTitlebar -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleDToolButton -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleDDialog -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AccessibleDFileDialog -source_file: reader/app/accessible.h -base_classes: -- QAccessibleWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: BrowserAnnotation -source_file: reader/browser/BrowserAnnotation.cpp -base_classes: -- QGraphicsItem -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: BrowserAnnotation -source_file: reader/browser/BrowserAnnotation.h -base_classes: -- QGraphicsItem -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: ReadMagnifierManager -source_file: reader/browser/BrowserMagniFier.cpp -base_classes: -- QThread -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: BrowserMagniFier -source_file: reader/browser/BrowserMagniFier.cpp -base_classes: -- QLabel -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: ReadMagnifierManager -source_file: reader/browser/BrowserMagniFier.h -base_classes: -- QThread -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: BrowserMagniFier -source_file: reader/browser/BrowserMagniFier.h -base_classes: -- QLabel -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: BrowserMenu -source_file: reader/browser/BrowserMenu.cpp -base_classes: -- DMenu -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: BrowserMenu -source_file: reader/browser/BrowserMenu.h -base_classes: -- DMenu -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: BrowserPage -source_file: reader/browser/BrowserPage.cpp -base_classes: -- QGraphicsItem -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: BrowserPage -source_file: reader/browser/BrowserPage.h -base_classes: -- QGraphicsItem -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: BrowserWord -source_file: reader/browser/BrowserWord.cpp -base_classes: -- QGraphicsItem -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: BrowserWord -source_file: reader/browser/BrowserWord.h -base_classes: -- QGraphicsItem -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: PageRenderThread -source_file: reader/browser/PageRenderThread.cpp -base_classes: -- QThread -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: PageRenderThread -source_file: reader/browser/PageRenderThread.h -base_classes: -- QThread -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: PageSearchThread -source_file: reader/browser/PageSearchThread.cpp -base_classes: -- QThread -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: PageSearchThread -source_file: reader/browser/PageSearchThread.h -base_classes: -- QThread -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: SheetBrowser -source_file: reader/browser/SheetBrowser.cpp -base_classes: -- Dtk::Widget::DGraphicsView -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: SheetBrowser -source_file: reader/browser/SheetBrowser.h -base_classes: -- Dtk::Widget::DGraphicsView -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: DjVuPage -source_file: reader/document/DjVuModel.cpp -base_classes: -- Page -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: DjVuDocument -source_file: reader/document/DjVuModel.cpp -base_classes: -- Document -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: DjVuPage -source_file: reader/document/DjVuModel.h -base_classes: -- Page -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: DjVuDocument -source_file: reader/document/DjVuModel.h -base_classes: -- Document -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: Annotation -source_file: reader/document/Model.cpp -base_classes: -- QObject -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: FormField -source_file: reader/document/Model.cpp -base_classes: -- QObject -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: Page -source_file: reader/document/Model.cpp -base_classes: -- QObject -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: Document -source_file: reader/document/Model.cpp -base_classes: -- QObject -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: Annotation -source_file: reader/document/Model.h -base_classes: -- QObject -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: FormField -source_file: reader/document/Model.h -base_classes: -- QObject -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: Page -source_file: reader/document/Model.h -base_classes: -- QObject -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: Document -source_file: reader/document/Model.h -base_classes: -- QObject -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: PDFAnnotation -source_file: reader/document/PDFModel.cpp -base_classes: -- Annotation -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: PDFPage -source_file: reader/document/PDFModel.cpp -base_classes: -- Page -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: PDFDocument -source_file: reader/document/PDFModel.cpp -base_classes: -- Document -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: PDFAnnotation -source_file: reader/document/PDFModel.h -base_classes: -- Annotation -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: PDFPage -source_file: reader/document/PDFModel.h -base_classes: -- Page -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: PDFDocument -source_file: reader/document/PDFModel.h -base_classes: -- Document -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: XpsDocumentAdapter -source_file: reader/document/XpsDocumentAdapter.cpp -base_classes: -- Document -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: XpsPageAdapter -source_file: reader/document/XpsDocumentAdapter.cpp -base_classes: -- Page -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: XpsDocumentAdapter -source_file: reader/document/XpsDocumentAdapter.h -base_classes: -- Document -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: XpsPageAdapter -source_file: reader/document/XpsDocumentAdapter.h -base_classes: -- Page -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: MLogger -source_file: reader/logger.cpp -base_classes: -- QObject -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: MLogger -source_file: reader/logger.h -base_classes: -- QObject -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: BookMarkDelegate -source_file: reader/sidebar/BookMarkDelegate.cpp -base_classes: -- DStyledItemDelegate -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: -- DStyledItemDelegate ---- -class_name: BookMarkDelegate -source_file: reader/sidebar/BookMarkDelegate.h -base_classes: -- DStyledItemDelegate -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: CatalogTreeView -source_file: reader/sidebar/CatalogTreeView.cpp -base_classes: -- DTreeView -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: ActiveProxyStyle -source_file: reader/sidebar/CatalogTreeView.cpp -base_classes: -- QProxyStyle -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: CatalogModel -source_file: reader/sidebar/CatalogTreeView.cpp -base_classes: -- QStandardItemModel -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: CatalogTreeView -source_file: reader/sidebar/CatalogTreeView.h -base_classes: -- DTreeView -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: NotesDelegate -source_file: reader/sidebar/NotesDelegate.cpp -base_classes: -- DStyledItemDelegate -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: -- DStyledItemDelegate ---- -class_name: NotesDelegate -source_file: reader/sidebar/NotesDelegate.h -base_classes: -- DStyledItemDelegate -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: ReadImageTask -source_file: reader/sidebar/ReaderImageThreadPoolManager.cpp -base_classes: -- QRunnable -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: ReaderImageThreadPoolManager -source_file: reader/sidebar/ReaderImageThreadPoolManager.cpp -base_classes: -- QThreadPool -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: Holder -source_file: reader/sidebar/ReaderImageThreadPoolManager.cpp -base_classes: -- HolderBase -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: Holder -source_file: reader/sidebar/ReaderImageThreadPoolManager.cpp -base_classes: -- HolderBase -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: ReadImageTask -source_file: reader/sidebar/ReaderImageThreadPoolManager.h -base_classes: -- QRunnable -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: ReaderImageThreadPoolManager -source_file: reader/sidebar/ReaderImageThreadPoolManager.h -base_classes: -- QThreadPool -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: SearchResDelegate -source_file: reader/sidebar/SearchResDelegate.cpp -base_classes: -- DStyledItemDelegate -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: -- DStyledItemDelegate ---- -class_name: SearchResDelegate -source_file: reader/sidebar/SearchResDelegate.h -base_classes: -- DStyledItemDelegate -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: SideBarImageListView -source_file: reader/sidebar/SideBarImageListview.h -base_classes: -- DListView -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: SideBarImageViewModel -source_file: reader/sidebar/SideBarImageViewModel.cpp -base_classes: -- QAbstractListModel -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: SideBarImageViewModel -source_file: reader/sidebar/SideBarImageViewModel.h -base_classes: -- QAbstractListModel -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: ThumbnailDelegate -source_file: reader/sidebar/ThumbnailDelegate.cpp -base_classes: -- DStyledItemDelegate -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: -- DStyledItemDelegate ---- -class_name: ThumbnailDelegate -source_file: reader/sidebar/ThumbnailDelegate.h -base_classes: -- DStyledItemDelegate -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: DocSheet -source_file: reader/uiframe/DocSheet.cpp -base_classes: -- Dtk::Widget::DSplitter -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: LoadingWidget -source_file: reader/uiframe/DocSheet.cpp -base_classes: -- QWidget -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: DocSheet -source_file: reader/uiframe/DocSheet.h -base_classes: -- Dtk::Widget::DSplitter -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: LoadingWidget -source_file: reader/uiframe/DocSheet.h -base_classes: -- QWidget -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: DocTabBar -source_file: reader/uiframe/DocTabBar.cpp -base_classes: -- DTabBar -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: -- DTabBar ---- -class_name: DocTabBar -source_file: reader/uiframe/DocTabBar.h -base_classes: -- DTabBar -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: SheetRenderer -source_file: reader/uiframe/SheetRenderer.cpp -base_classes: -- QObject -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: SheetRenderer -source_file: reader/uiframe/SheetRenderer.h -base_classes: -- QObject -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: TitleMenu -source_file: reader/uiframe/TitleMenu.cpp -base_classes: -- DMenu -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: TitleMenu -source_file: reader/uiframe/TitleMenu.h -base_classes: -- DMenu -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: AttrScrollWidget -source_file: reader/widgets/AttrScrollWidget.cpp -base_classes: -- Dtk::Widget::DFrame -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: -- DFrame ---- -class_name: AttrScrollWidget -source_file: reader/widgets/AttrScrollWidget.h -base_classes: -- Dtk::Widget::DFrame -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: BaseWidget -source_file: reader/widgets/BaseWidget.cpp -base_classes: -- DWidget -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: BaseWidget -source_file: reader/widgets/BaseWidget.h -base_classes: -- DWidget -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: ColorWidgetAction -source_file: reader/widgets/ColorWidgetAction.cpp -base_classes: -- QWidgetAction -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: ColorWidgetAction -source_file: reader/widgets/ColorWidgetAction.h -base_classes: -- QWidgetAction -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: EncryptionPage -source_file: reader/widgets/EncryptionPage.h -base_classes: -- DWidget -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: FileAttrWidget -source_file: reader/widgets/FileAttrWidget.cpp -base_classes: -- DAbstractDialog -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: -- DAbstractDialog ---- -class_name: ImageWidget -source_file: reader/widgets/FileAttrWidget.cpp -base_classes: -- DWidget -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: FileAttrWidget -source_file: reader/widgets/FileAttrWidget.h -base_classes: -- DAbstractDialog -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: FindWidget -source_file: reader/widgets/FindWidget.cpp -base_classes: -- DFloatingWidget -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: -- DFloatingWidget ---- -class_name: FindWidget -source_file: reader/widgets/FindWidget.h -base_classes: -- DFloatingWidget -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: HandleMenu -source_file: reader/widgets/HandleMenu.h -base_classes: -- DMenu -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: PagingWidget -source_file: reader/widgets/PagingWidget.h -base_classes: -- BaseWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: ProgressDialog -source_file: reader/widgets/ProgressDialog.cpp -base_classes: -- Dtk::Widget::DDialog -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: -- DDialog ---- -class_name: ProgressDialog -source_file: reader/widgets/ProgressDialog.h -base_classes: -- Dtk::Widget::DDialog -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: RoundColorWidget -source_file: reader/widgets/RoundColorWidget.cpp -base_classes: -- DWidget -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: RoundColorWidget -source_file: reader/widgets/RoundColorWidget.h -base_classes: -- DWidget -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: SaveDialog -source_file: reader/widgets/SaveDialog.cpp -base_classes: -- QObject -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: SaveDialog -source_file: reader/widgets/SaveDialog.h -base_classes: -- QObject -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: ScaleMenu -source_file: reader/widgets/ScaleMenu.cpp -base_classes: -- DMenu -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: ScaleMenu -source_file: reader/widgets/ScaleMenu.h -base_classes: -- DMenu -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: ScaleWidget -source_file: reader/widgets/ScaleWidget.cpp -base_classes: -- Dtk::Widget::DWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: ScaleWidget -source_file: reader/widgets/ScaleWidget.h -base_classes: -- Dtk::Widget::DWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: SecurityDialog -source_file: reader/widgets/SecurityDialog.cpp -base_classes: -- Dtk::Widget::DDialog -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: -- DDialog ---- -class_name: SecurityDialog -source_file: reader/widgets/SecurityDialog.h -base_classes: -- Dtk::Widget::DDialog -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: ShortCutShow -source_file: reader/widgets/ShortCutShow.cpp -base_classes: -- QObject -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: KeyDataList -source_file: reader/widgets/ShortCutShow.cpp -base_classes: -- QList > -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: ShortCutShow -source_file: reader/widgets/ShortCutShow.h -base_classes: -- QObject -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: KeyDataList -source_file: reader/widgets/ShortCutShow.h -base_classes: -- QList > -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: SlidePlayWidget -source_file: reader/widgets/SlidePlayWidget.cpp -base_classes: -- DFloatingWidget -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: -- DFloatingWidget ---- -class_name: SlidePlayWidget -source_file: reader/widgets/SlidePlayWidget.h -base_classes: -- DFloatingWidget -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: SlideWidget -source_file: reader/widgets/SlideWidget.cpp -base_classes: -- DWidget -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: SlideWidget -source_file: reader/widgets/SlideWidget.h -base_classes: -- DWidget -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: TextEditWidget -source_file: reader/widgets/TextEditWidget.cpp -base_classes: -- BaseWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: TextEditWidget -source_file: reader/widgets/TextEditWidget.h -base_classes: -- BaseWidget -is_ui_widget: false -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: TextEditShadowWidget -source_file: reader/widgets/TextEditWidget.h -base_classes: -- DWidget -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: TipsWidget -source_file: reader/widgets/TipsWidget.cpp -base_classes: -- DWidget -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: TipsWidget -source_file: reader/widgets/TipsWidget.h -base_classes: -- DWidget -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: TransparentTextEdit -source_file: reader/widgets/TransparentTextEdit.h -base_classes: -- QTextEdit -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] ---- -class_name: WordWrapLabel -source_file: reader/widgets/WordWrapLabel.cpp -base_classes: -- DLabel -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: -- DLabel ---- -class_name: WordWrapLabel -source_file: reader/widgets/WordWrapLabel.h -base_classes: -- DLabel -is_ui_widget: true -object_names: [] -accessible_names: [] -dtk_instantiations: [] diff --git a/tests/at/dump/states/00_all.yaml b/tests/at/dump/states/00_all.yaml deleted file mode 100644 index 43691e4b..00000000 --- a/tests/at/dump/states/00_all.yaml +++ /dev/null @@ -1,3461 +0,0 @@ -version: '1.0' -app: deepin-reader -type: state -state_label: all -tree: -- role: form - name: Form_DMainWindow - object_name: '' - accessible_id: '' - description: '' - actions: - - SetFocus - index_in_parent: 0 - states: - - enabled - - focusable - - resizable - - sensitive - - showing - - visible - source: runtime - children: - - role: form - name: Form_Central - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - sensitive - - showing - - visible - source: runtime - children: - - role: form - name: Form_widget_1 - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - sensitive - - showing - - visible - source: runtime - children: - - role: form - name: Form_CentralNavPage - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - sensitive - source: runtime - children: - - role: label - name: Label_Drag documents here - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - read_only - - sensitive - source: runtime - - role: label - name: 'Label_format supported: PDF,DJVU,DOCX,XPS' - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 1 - states: - - enabled - - read_only - - sensitive - source: runtime - - role: button - name: Button_SelectFile - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - - ShowMenu - index_in_parent: 2 - states: - - enabled - - focusable - - sensitive - source: runtime - - role: image - name: Label_Icon - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 3 - states: - - enabled - - read_only - - sensitive - source: runtime - - role: form - name: Form_CentralDocPage - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 1 - states: - - enabled - - sensitive - - showing - - visible - source: runtime - children: - - role: form - name: Form_DocSheet - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - sensitive - - showing - - visible - source: runtime - children: - - role: form - name: Form_SheetSidebar - object_name: '' - accessible_id: '' - description: '' - actions: - - SetFocus - index_in_parent: 0 - states: - - enabled - - focusable - - sensitive - - showing - - visible - source: runtime - children: - - role: form - name: Form_SearchResWidget - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - sensitive - source: runtime - children: - - role: label - name: 无搜索结果 - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - read_only - - sensitive - source: runtime - - role: list - name: View_ImageList - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 1 - states: - - enabled - - focusable - - manages_descendants - - sensitive - source: runtime - - role: check box - name: Button_thumbnail - object_name: '' - accessible_id: '' - description: 缩略图 - actions: - - Toggle - - Press - - SetFocus - index_in_parent: 1 - states: - - checkable - - enabled - - focusable - - sensitive - - showing - - visible - source: runtime - - role: check box - name: Button_catalog - object_name: '' - accessible_id: '' - description: 目录 - actions: - - Toggle - - Press - - SetFocus - index_in_parent: 2 - states: - - checkable - - checked - - enabled - - focusable - - sensitive - - showing - - visible - source: runtime - - role: check box - name: Button_bookmark - object_name: '' - accessible_id: '' - description: 书签 - actions: - - Toggle - - Press - - SetFocus - index_in_parent: 3 - states: - - checkable - - enabled - - focusable - - sensitive - - showing - - visible - source: runtime - - role: check box - name: Button_annotation - object_name: '' - accessible_id: '' - description: 注释 - actions: - - Toggle - - Press - - SetFocus - index_in_parent: 4 - states: - - checkable - - enabled - - focusable - - sensitive - - showing - - visible - source: runtime - - role: check box - name: Button_search - object_name: '' - accessible_id: '' - description: Search - actions: - - Toggle - - Press - - SetFocus - index_in_parent: 5 - states: - - checkable - - enabled - - focusable - - sensitive - source: runtime - - role: form - name: Form_ThumbnailWidget - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 6 - states: - - enabled - - sensitive - source: runtime - children: - - role: list - name: View_ImageList - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - focusable - - manages_descendants - - sensitive - source: runtime - children: - - role: list item - name: '0' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 0 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '1' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 1 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '2' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 2 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '3' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 3 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '4' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 4 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '5' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 5 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '6' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 6 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '7' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 7 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '8' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 8 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '9' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 9 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '10' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 10 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '11' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 11 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '12' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 12 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '13' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 13 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '14' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 14 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '15' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 15 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '16' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 16 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '17' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 17 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '18' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 18 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '19' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 19 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '20' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 20 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '21' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 21 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '22' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 22 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '23' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 23 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '24' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 24 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '25' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 25 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '26' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 26 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: list item - name: '27' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 27 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: list item - name: '28' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 28 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: list item - name: '29' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 29 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: list item - name: '30' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 30 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: list item - name: '31' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 31 - states: - - enabled - - focusable - - focused - - selectable - - selected - - sensitive - - showing - - transient - - visible - source: runtime - - role: list item - name: '32' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 32 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '33' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 33 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '34' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 34 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '35' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 35 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '36' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 36 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '37' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 37 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '38' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 38 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '39' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 39 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '40' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 40 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '41' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 41 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '42' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 42 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '43' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 43 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '44' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 44 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '45' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 45 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '46' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 46 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '47' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 47 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '48' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 48 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '49' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 49 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '50' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 50 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '51' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 51 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '52' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 52 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '53' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 53 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '54' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 54 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '55' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 55 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '56' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 56 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '57' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 57 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '58' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 58 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '59' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 59 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '60' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 60 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '61' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 61 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '62' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 62 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '63' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 63 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '64' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 64 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '65' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 65 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '66' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 66 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '67' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 67 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '68' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 68 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '69' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 69 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '70' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 70 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '71' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 71 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '72' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 72 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '73' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 73 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '74' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 74 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '75' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 75 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '76' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 76 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '77' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 77 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '78' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 78 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '79' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 79 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '80' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 80 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '81' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 81 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '82' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 82 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '83' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 83 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '84' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 84 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '85' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 85 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '86' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 86 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '87' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 87 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '88' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 88 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '89' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 89 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '90' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 90 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '91' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 91 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '92' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 92 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '93' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 93 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '94' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 94 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '95' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 95 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '96' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 96 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '97' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 97 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '98' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 98 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: list item - name: '99' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 99 - states: - - enabled - - focusable - - selectable - - sensitive - - transient - source: runtime - - role: form - name: Form_Paging - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 1 - states: - - enabled - - sensitive - source: runtime - children: - - role: label - name: Label_TotalPage - object_name: '' - accessible_id: '' - description: '344' - actions: [] - index_in_parent: 0 - states: - - enabled - - read_only - - sensitive - source: runtime - - role: form - name: Form_Page - object_name: '' - accessible_id: '' - description: '' - actions: - - SetFocus - index_in_parent: 1 - states: - - enabled - - focusable - - sensitive - source: runtime - children: - - role: text - name: pageEdit - object_name: '' - accessible_id: '' - description: '' - actions: - - SetFocus - index_in_parent: 0 - states: - - editable - - enabled - - focusable - - sensitive - source: runtime - - role: label - name: CurrentPage - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 2 - states: - - enabled - - read_only - - sensitive - source: runtime - - role: button - name: Button_ThumbnailPre - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - - SetFocus - index_in_parent: 3 - states: - - enabled - - focusable - - sensitive - source: runtime - - role: button - name: Button_ThumbnailNext - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - - SetFocus - index_in_parent: 4 - states: - - enabled - - focusable - - sensitive - source: runtime - - role: form - name: Form_ThumbnailLine - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 2 - states: - - enabled - - sensitive - source: runtime - - role: form - name: Form_NotesWidget - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 7 - states: - - enabled - - sensitive - source: runtime - children: - - role: list - name: View_ImageList - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - focusable - - manages_descendants - - sensitive - source: runtime - - role: button - name: Button_NotesAdd - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - - ShowMenu - index_in_parent: 1 - states: - - enabled - - focusable - - sensitive - source: runtime - - role: form - name: Form_NotesLine - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 2 - states: - - enabled - - sensitive - source: runtime - - role: form - name: Form_BookMarkWidget - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 8 - states: - - enabled - - sensitive - source: runtime - children: - - role: list - name: View_ImageList - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - focusable - - manages_descendants - - sensitive - source: runtime - children: - - role: list item - name: '0' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 0 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: button - name: Button_BookmarkAdd - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - - ShowMenu - index_in_parent: 1 - states: - - enabled - - focusable - - sensitive - source: runtime - - role: form - name: Form_BookMarkLine - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 2 - states: - - enabled - - sensitive - source: runtime - - role: form - name: Form_CatalogWidget - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 9 - states: - - enabled - - sensitive - - showing - - visible - source: runtime - children: - - role: label - name: Label_title - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - read_only - - sensitive - - showing - - visible - source: runtime - - role: tree - name: View_CatalogTree - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 1 - states: - - enabled - - manages_descendants - - sensitive - - showing - - visible - source: runtime - children: - - role: table column header - name: '1' - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - sensitive - source: runtime - - role: table column header - name: '2' - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 1 - states: - - enabled - - sensitive - source: runtime - - role: table cell - name: JavaScript Application Design - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 2 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '1' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 3 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: brief contents - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 4 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '8' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 5 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: contents - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 6 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '10' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 7 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: foreword - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 8 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '16' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 9 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: preface - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 10 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '18' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 11 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: acknowledgments - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 12 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '20' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 13 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: about this book - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 14 - states: - - enabled - - expandable - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '22' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 15 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: about the author - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 16 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '26' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 17 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: about the cover illustration - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 18 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '27' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 19 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: Part 1 Build processes - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 20 - states: - - enabled - - expandable - - focusable - - selectable - - selected - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '30' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 21 - states: - - enabled - - focusable - - selectable - - selected - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: Part 2 Managing complexity - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 22 - states: - - enabled - - expandable - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '126' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 23 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: appendix A Modules in Node.js - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 24 - states: - - enabled - - expandable - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '302' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 25 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: appendix B Introduction to Grunt - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 26 - states: - - enabled - - expandable - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '305' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 27 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: appendix C Picking your build tool - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 28 - states: - - enabled - - expandable - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '313' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 29 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: appendix D JavaScript code quality guide - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 30 - states: - - enabled - - expandable - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '322' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 31 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: index - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 32 - states: - - enabled - - expandable - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '336' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 33 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: JavaScript Application Design-back - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 34 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '344' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 35 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: maps and atlases, especially of North America. His work as - a mapmaker sparked an interest in local d - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 36 - states: - - enabled - - focusable - - focused - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '27' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 37 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: 'a mapmaker sparked an interest in local dress customs of - the lands he surveyed and mapped; they are ' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 38 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: table cell - name: '27' - object_name: '' - accessible_id: '' - description: '' - actions: - - Toggle - index_in_parent: 39 - states: - - enabled - - focusable - - selectable - - sensitive - - showing - - transient - - visible - source: runtime - - role: form - name: Form_SheetBrowser - object_name: '' - accessible_id: '' - description: '' - actions: - - SetFocus - index_in_parent: 1 - states: - - enabled - - focusable - - sensitive - - showing - - visible - source: runtime - children: - - role: form - name: Form_qt_scrollarea_hcontainer - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - sensitive - source: runtime - - role: form - name: Form_widget_2 - object_name: '' - accessible_id: '' - description: '' - actions: - - SetFocus - index_in_parent: 1 - states: - - enabled - - focusable - - sensitive - - showing - - visible - source: runtime - - role: form - name: Form_qt_scrollarea_vcontainer - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 2 - states: - - enabled - - sensitive - - showing - - visible - source: runtime - - role: form - name: Form_DocTabBar - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 1 - states: - - enabled - - sensitive - source: runtime - children: - - role: page tab list - name: normal.pdf - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - sensitive - source: runtime - children: - - role: page tab - name: normal.pdf - object_name: '' - accessible_id: '' - description: normal.pdf - actions: - - Press - index_in_parent: 0 - states: - - enabled - - focused - - selectable - - selected - - sensitive - source: runtime - - role: button - name: 向左滚动 - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 1 - states: - - focusable - source: runtime - - role: button - name: 向右滚动 - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - - SetFocus - index_in_parent: 2 - states: - - enabled - - focusable - - sensitive - source: runtime - - role: button - name: DTabBarAddButton - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - - SetFocus - index_in_parent: 1 - states: - - enabled - - focusable - - sensitive - source: runtime - - role: button - name: '' - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 2 - states: - - focusable - source: runtime - - role: button - name: '' - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - - SetFocus - index_in_parent: 3 - states: - - enabled - - focusable - - sensitive - source: runtime - - role: form - name: Form_widget_3 - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 1 - states: - - enabled - - sensitive - - showing - - visible - source: runtime - - role: form - name: Form_DMainWindowTitlebar - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 2 - states: - - enabled - - sensitive - - showing - - visible - source: runtime - children: - - role: label - name: DTitlebarCenterArea - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - read_only - - sensitive - - showing - - visible - source: runtime - - role: form - name: Form_DTitlebarTopHorizontalLine - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 1 - states: - - enabled - - sensitive - source: runtime - - role: form - name: Form_DTitlebarHorizontalLine - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 2 - states: - - enabled - - sensitive - source: runtime - - role: form - name: Form_DTitlebarLeftArea - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 3 - states: - - enabled - - sensitive - - showing - - visible - source: runtime - children: - - role: button - name: DTitlebarIconLabel - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - index_in_parent: 0 - states: - - enabled - - sensitive - - showing - - visible - source: runtime - - role: form - name: Form_TitleWidget - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 1 - states: - - enabled - - sensitive - - showing - - visible - source: runtime - children: - - role: check box - name: '' - object_name: '' - accessible_id: '' - description: 缩略图 - actions: - - Toggle - - Press - - SetFocus - index_in_parent: 0 - states: - - checkable - - checked - - enabled - - focusable - - sensitive - - showing - - visible - source: runtime - - role: form - name: Form_widget - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 1 - states: - - enabled - - sensitive - - showing - - visible - source: runtime - children: - - role: form - name: Form_scaleEdit_P - object_name: '' - accessible_id: '' - description: '' - actions: - - SetFocus - index_in_parent: 0 - states: - - enabled - - focusable - - sensitive - - showing - - visible - source: runtime - children: - - role: text - name: DLineEditChildLineEdit - object_name: '' - accessible_id: '' - description: '' - actions: - - SetFocus - index_in_parent: 0 - states: - - editable - - enabled - - focusable - - sensitive - - showing - - visible - source: runtime - - role: button - name: '' - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - - SetFocus - index_in_parent: 1 - states: - - enabled - - focusable - - sensitive - - showing - - visible - source: runtime - - role: button - name: '' - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - - SetFocus - index_in_parent: 1 - states: - - enabled - - focusable - - sensitive - - showing - - visible - source: runtime - - role: button - name: '' - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - - SetFocus - index_in_parent: 2 - states: - - enabled - - focusable - - sensitive - - showing - - visible - source: runtime - - role: label - name: normal.pdf - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 2 - states: - - enabled - - read_only - - sensitive - - showing - - visible - source: runtime - - role: form - name: Form_DTitlebarRightArea - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 4 - states: - - enabled - - sensitive - - showing - - visible - source: runtime - children: - - role: form - name: Form_DTitlebarButtonArea - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - sensitive - - showing - - visible - source: runtime - children: - - role: button - name: DTitlebarDWindowOptionButton - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - - SetFocus - index_in_parent: 0 - states: - - enabled - - focusable - - sensitive - - showing - - visible - source: runtime - - role: button - name: DTitlebarDWindowMinButton - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - - SetFocus - index_in_parent: 1 - states: - - enabled - - focusable - - sensitive - - showing - - visible - source: runtime - - role: button - name: DTitlebarDWindowMaxButton - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - - SetFocus - index_in_parent: 2 - states: - - enabled - - focusable - - sensitive - - showing - - visible - source: runtime - - role: button - name: DTitlebarDWindowQuitFullscreenButton - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - - SetFocus - index_in_parent: 3 - states: - - enabled - - focusable - - sensitive - source: runtime - - role: button - name: DTitlebarDWindowCloseButton - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - - SetFocus - index_in_parent: 4 - states: - - enabled - - focusable - - sensitive - - showing - - visible - source: runtime - - role: form - name: Form_DMainWindowTitleShadowLine - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 3 - states: - - enabled - - sensitive - - showing - - visible - source: runtime - - role: form - name: Form_widget_4 - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 4 - states: - - enabled - - sensitive - - showing - - visible - source: runtime - children: - - role: form - name: Form_widget_5 - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 0 - states: - - enabled - - sensitive - - showing - - visible - source: runtime - - role: form - name: Form_findSearchEdit_P - object_name: '' - accessible_id: '' - description: '' - actions: - - SetFocus - index_in_parent: 1 - states: - - enabled - - focusable - - sensitive - - showing - - visible - source: runtime - children: - - role: text - name: DLineEditChildLineEdit - object_name: '' - accessible_id: '' - description: '' - actions: - - SetFocus - index_in_parent: 0 - states: - - editable - - enabled - - focusable - - sensitive - - showing - - visible - source: runtime - children: - - role: button - name: DLineEditClearButton - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - index_in_parent: 0 - states: - - enabled - - sensitive - - showing - - visible - source: runtime - - role: button - name: DSearchEditIconButton - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - index_in_parent: 1 - states: - - enabled - - sensitive - - showing - - visible - source: runtime - - role: form - name: Form_DSearchEditIconWidget - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 2 - states: - - enabled - - sensitive - source: runtime - children: - - role: button - name: DSearchEditIconButton - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - index_in_parent: 0 - states: - - enabled - - sensitive - source: runtime - - role: label - name: DSearchEditPlaceHolderLabel - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 1 - states: - - enabled - - read_only - - sensitive - source: runtime - - role: button - name: '' - object_name: '' - accessible_id: '' - description: 上一个 - actions: [] - index_in_parent: 2 - states: - - focusable - - showing - - visible - source: runtime - - role: button - name: '' - object_name: '' - accessible_id: '' - description: 下一个 - actions: [] - index_in_parent: 3 - states: - - focusable - - showing - - visible - source: runtime - - role: button - name: '' - object_name: '' - accessible_id: '' - description: '' - actions: - - Press - - SetFocus - index_in_parent: 4 - states: - - enabled - - focusable - - sensitive - - showing - - visible - source: runtime -- role: popup menu - name: DTitlebarMainMenu - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 1 - states: - - enabled - - resizable - - sensitive - source: runtime -- role: form - name: Form_Tips - object_name: '' - accessible_id: '' - description: '' - actions: [] - index_in_parent: 2 - states: - - enabled - - sensitive - source: runtime diff --git a/tests/at/element_gaps.yaml b/tests/at/element_gaps.yaml index b4b4d928..e5fad60e 100644 --- a/tests/at/element_gaps.yaml +++ b/tests/at/element_gaps.yaml @@ -1,131 +1,187 @@ version: '1.0' -app: deepin-reader +app: '' summary: - total_interactive: 25 + total_interactive: 36 with_accessible_id: 0 - missing_accessible_id: 25 + missing_accessible_id: 36 gaps: - id: n6 - name: Button_SelectFile + name: DTitlebarIconLabel role: button class_name: '' - suggestion: Add setAccessibleName("Button_SelectFile") in source code -- id: n14 - name: Button_thumbnail - role: check box - class_name: '' - suggestion: Add setAccessibleName("Button_thumbnail") in source code -- id: n15 - name: Button_catalog - role: check box - class_name: '' - suggestion: Add setAccessibleName("Button_catalog") in source code -- id: n16 - name: Button_bookmark + suggestion: Add setAccessibleName("DTitlebarIconLabel") in source code +- id: n8 + name: Button_ThumbnailToggle role: check box class_name: '' - suggestion: Add setAccessibleName("Button_bookmark") in source code -- id: n17 - name: Button_annotation - role: check box + suggestion: Add setAccessibleName("Button_ThumbnailToggle") in source code +- id: n11 + name: DLineEditChildLineEdit + role: text class_name: '' - suggestion: Add setAccessibleName("Button_annotation") in source code + suggestion: Add setAccessibleName("DLineEditChildLineEdit") in source code - id: n18 - name: Button_search - role: check box - class_name: '' - suggestion: Add setAccessibleName("Button_search") in source code -- id: n22 - name: Button_BookmarkAdd + name: DTitlebarDWindowOptionButton role: button class_name: '' - suggestion: Add setAccessibleName("Button_BookmarkAdd") in source code -- id: n49 - name: Button_NotesAdd + suggestion: Add setAccessibleName("DTitlebarDWindowOptionButton") in source code +- id: n19 + name: DTitlebarDWindowMinButton role: button class_name: '' - suggestion: Add setAccessibleName("Button_NotesAdd") in source code -- id: n156 - name: pageEdit - role: text - class_name: '' - suggestion: Add setAccessibleName("pageEdit") in source code -- id: n158 - name: Button_ThumbnailPre + suggestion: Add setAccessibleName("DTitlebarDWindowMinButton") in source code +- id: n20 + name: DTitlebarDWindowMaxButton role: button class_name: '' - suggestion: Add setAccessibleName("Button_ThumbnailPre") in source code -- id: n159 - name: Button_ThumbnailNext + suggestion: Add setAccessibleName("DTitlebarDWindowMaxButton") in source code +- id: n21 + name: DTitlebarDWindowQuitFullscreenButton role: button class_name: '' - suggestion: Add setAccessibleName("Button_ThumbnailNext") in source code -- id: n163 - name: View_CatalogTree - role: tree + suggestion: Add setAccessibleName("DTitlebarDWindowQuitFullscreenButton") in source + code +- id: n22 + name: DTitlebarDWindowCloseButton + role: button class_name: '' - suggestion: Add setAccessibleName("View_CatalogTree") in source code -- id: n209 - name: normal.pdf + suggestion: Add setAccessibleName("DTitlebarDWindowCloseButton") in source code +- id: n27 + name: '' role: page tab list class_name: '' - suggestion: Add setAccessibleName("normal.pdf") in source code -- id: n210 - name: normal.pdf - role: page tab - class_name: '' - suggestion: Add setAccessibleName("normal.pdf") in source code -- id: n211 + suggestion: Add setAccessibleName("") in source code +- id: n28 name: 向左滚动 role: button class_name: '' suggestion: Add setAccessibleName("向左滚动") in source code -- id: n212 +- id: n29 name: 向右滚动 role: button class_name: '' suggestion: Add setAccessibleName("向右滚动") in source code -- id: n213 +- id: n30 name: DTabBarAddButton role: button class_name: '' suggestion: Add setAccessibleName("DTabBarAddButton") in source code -- id: n227 - name: DLineEditChildLineEdit - role: text +- id: n36 + name: Button_SelectFile + role: button class_name: '' - suggestion: Add setAccessibleName("DLineEditChildLineEdit") in source code -- id: n243 - name: DLineEditChildLineEdit - role: text + suggestion: Add setAccessibleName("Button_SelectFile") in source code +- id: n40 + name: 新窗口 + role: menu item class_name: '' - suggestion: Add setAccessibleName("DLineEditChildLineEdit") in source code -- id: n244 - name: DLineEditClearButton - role: button + suggestion: Add setAccessibleName("新窗口") in source code +- id: n41 + name: 新标签页 + role: menu item class_name: '' - suggestion: Add setAccessibleName("DLineEditClearButton") in source code -- id: n245 - name: DSearchEditIconButton - role: button + suggestion: Add setAccessibleName("新标签页") in source code +- id: n42 + name: 保存 + role: menu item class_name: '' - suggestion: Add setAccessibleName("DSearchEditIconButton") in source code -- id: n247 - name: DSearchEditIconButton - role: button + suggestion: Add setAccessibleName("保存") in source code +- id: n43 + name: 另存为 + role: menu item + class_name: '' + suggestion: Add setAccessibleName("另存为") in source code +- id: n44 + name: 在文件管理器中显示 + role: menu item + class_name: '' + suggestion: Add setAccessibleName("在文件管理器中显示") in source code +- id: n45 + name: 放大镜 + role: menu item + class_name: '' + suggestion: Add setAccessibleName("放大镜") in source code +- id: n46 + name: 工具 + role: menu item + class_name: '' + suggestion: Add setAccessibleName("工具") in source code +- id: n48 + name: 选择工具 + role: menu item + class_name: '' + suggestion: Add setAccessibleName("选择工具") in source code +- id: n49 + name: 手形工具 + role: menu item + class_name: '' + suggestion: Add setAccessibleName("手形工具") in source code +- id: n50 + name: 搜索 + role: menu item + class_name: '' + suggestion: Add setAccessibleName("搜索") in source code +- id: n51 + name: 打印 + role: menu item + class_name: '' + suggestion: Add setAccessibleName("打印") in source code +- id: n52 + name: 主题 + role: menu item + class_name: '' + suggestion: Add setAccessibleName("主题") in source code +- id: n54 + name: 浅色 + role: menu item + class_name: '' + suggestion: Add setAccessibleName("浅色") in source code +- id: n55 + name: 深色 + role: menu item + class_name: '' + suggestion: Add setAccessibleName("深色") in source code +- id: n56 + name: 跟随系统 + role: menu item + class_name: '' + suggestion: Add setAccessibleName("跟随系统") in source code +- id: n57 + name: 帮助 + role: menu item + class_name: '' + suggestion: Add setAccessibleName("帮助") in source code +- id: n58 + name: 关于 + role: menu item + class_name: '' + suggestion: Add setAccessibleName("关于") in source code +- id: n59 + name: 退出 + role: menu item + class_name: '' + suggestion: Add setAccessibleName("退出") in source code +- id: n61 + name: 选择工具 + role: menu item + class_name: '' + suggestion: Add setAccessibleName("选择工具") in source code +- id: n62 + name: 手形工具 + role: menu item class_name: '' - suggestion: Add setAccessibleName("DSearchEditIconButton") in source code -- id: n254 + suggestion: Add setAccessibleName("手形工具") in source code +- id: n64 name: 浅色 role: menu item class_name: '' suggestion: Add setAccessibleName("浅色") in source code -- id: n255 +- id: n65 name: 深色 role: menu item class_name: '' suggestion: Add setAccessibleName("深色") in source code -- id: n256 +- id: n66 name: 跟随系统 role: menu item class_name: '' diff --git a/tests/at/expected-at-spi-elements.md b/tests/at/expected-at-spi-elements.md new file mode 100644 index 00000000..0addd507 --- /dev/null +++ b/tests/at/expected-at-spi-elements.md @@ -0,0 +1,183 @@ +# Expected AT-SPI Elements — Deepin Reader + +> Generated via static code analysis (remote-codebase MCP) +> Derivation chain: accessibleFactory registration → SET_*_ACCESSIBLE macro → setAccessibleName → setObjectName fallback → getAccessibleName algorithm + +--- + +## Naming Convention + +From `accessibledefine.h::getAccessibleName()` (lines 22-90): +- **Prefix mapping**: Role → prefix + - `QAccessible::Form` → `Form_` + - `QAccessible::Button` → `Button_` + - `QAccessible::StaticText` → `Label_` + - `QAccessible::EditableText` → `Editable_` + - `QAccessible::Slider` → `Slider_` +- **Naming priority**: `accessibleName` (setAccessibleName) > `fallback` (SET_* macro parameter) > objectName +- **Uniqueness**: Duplicates get `_N` suffix via `SEPARATOR` (underscore) + +--- + +## Expected Elements + +### 1. 主窗口 / 标题栏 + +| # | AT-SPI 名称 | Role | 源码来源 | 推导链 | 文件:行号 | 备注 | +|---|-------------|------|----------|--------|-----------|------| +| 1 | Form_DMainWindow | form | accessible.h:49 | SET_FORM_ACCESSIBLE(MainWindow, "MainWindow") | reader/MainWindow.cpp | 容器 | +| 2 | Menu_Title | menu | setAccessibleName() 显式 | Menu_Title = TitleMenu实例的accessibleName | reader/MainWindow.cpp:620 | 标题栏下拉菜单 | +| 3 | Menu_Hand | menu | setAccessibleName() 显式 | 标题栏菜单→工具子菜单 | reader/uiframe/TitleMenu.cpp:43 | 选择文本/手型工具 | +| 4 | Form_TitleWidget | form | accessible.h:55 | SET_FORM_ACCESSIBLE(TitleWidget, "TitleWidget") | reader/uiframe/TitleWidget.cpp | 标题栏工具栏容器 | +| 5 | Button_ThumbnailToggle | push button | setAccessibleName() 显式 | 缩略图面板开关按钮 | reader/uiframe/TitleWidget.cpp:22 | 初始disibled | +| 6 | Button_ThumbnailToggle_N | push button | 同名编号 | 多个同名时 _N 消歧 | — | [INFERENCE] 需运行时确认 | +| 7 | DTitlebar | form | accessible.h:82 | SET_FORM_ACCESSIBLE(DTitlebar, fallback) | — | DTK 全局标题栏 | +| 8 | DTitlebarDWindowOptionButton | push button | DTK内部 | 标题栏选项按钮 | — | 触发主菜单 | +| 9 | DTitlebarDWindowMinButton | push button | DTK内部 | 最小化按钮 | — | — | +| 10 | DTitlebarDWindowMaxButton | push button | DTK内部 | 最大化按钮 | — | — | +| 11 | DTitlebarDWindowCloseButton | push button | DTK内部 | 关闭按钮 | — | — | +| 12 | DTitlebarDWindowQuitFullscreenButton | push button | DTK内部 | 退出全屏按钮 | — | — | + +### 2. 缩放控件 (ScaleWidget) + +| # | AT-SPI 名称 | Role | 源码来源 | 推导链 | 文件:行号 | 备注 | +|---|-------------|------|----------|--------|-----------|------| +| 13 | Form_scaleEdit_P (或 scaleEdit) | form | objectName fallback | DLineEdit无accessibleName,fallback至objectName "scaleEdit_P" | reader/widgets/ScaleWidget.cpp:42 | **缺口** 缺显式setAccessibleName | +| 14 | pageEdit | editable text | objectName fallback | lineEdit对象名"scaleEdit" | reader/widgets/ScaleWidget.cpp:43 | 缩放百分比输入框 | +| 15 | Button_SP_DecreaseElement (或 DIconButton) | push button | objectName fallback | 缩小按钮 | reader/widgets/ScaleWidget.cpp:72 | **缺口** 需显式名 | +| 16 | Button_SP_IncreaseElement (或 DIconButton) | push button | objectName fallback (或 _N) | 放大按钮 | reader/widgets/ScaleWidget.cpp:79 | **缺口** 需显式名 | +| 17 | Button_editArrowBtn (或 DIconButton) | push button | objectName fallback | 缩放下拉箭头 | reader/widgets/ScaleWidget.cpp:52 | **缺口** 需显式名 | + +### 3. 导航页 (CentralNavPage - 无文档时) + +| # | AT-SPI 名称 | Role | 源码来源 | 推导链 | 文件:行号 | 备注 | +|---|-------------|------|----------|--------|-----------|------| +| 18 | Form_CentralNavPage | form | accessible.h:51 | SET_FORM_ACCESSIBLE(CentralNavPage, "CentralNavPage") | reader/uiframe/CentralNavPage.cpp | — | +| 19 | Label_Icon | label | setAccessibleName() 显式 | 文档图标 | reader/uiframe/CentralNavPage.cpp:58 | — | +| 20 | Label_Drag documents here | label | setAccessibleName() 显式 | 拖拽提示文字 | reader/uiframe/CentralNavPage.cpp:23 | 翻译文本作名 | +| 21 | Label_format supported: PDF, DJVU, DOCX | label | setAccessibleName() 显式 | 支持格式文字 | reader/uiframe/CentralNavPage.cpp:37 | 含翻译文本 | +| 22 | SelectFile | push button | setAccessibleName() 显式 | "选择文件"按钮 | reader/uiframe/CentralNavPage.cpp:44 | — | + +### 4. 标签页栏 (DocTabBar) + +| # | AT-SPI 名称 | Role | 源码来源 | 推导链 | 文件:行号 | 备注 | +|---|-------------|------|----------|--------|-----------|------| +| 23 | Form_DocTabBar | form | accessible.h:53 | SET_FORM_ACCESSIBLE(DocTabBar, "DocTabBar") | reader/uiframe/DocTabBar.cpp | 文档标签页容器 | + +### 5. 文档区域 (SheetBrowser) + +| # | AT-SPI 名称 | Role | 源码来源 | 推导链 | 文件:行号 | 备注 | +|---|-------------|------|----------|--------|-----------|------| +| 24 | Form_SheetBrowser | form | accessible.h:57 | SET_FORM_ACCESSIBLE(SheetBrowser, "SheetBrowser") | reader/browser/SheetBrowser.cpp | 文档浏览容器 | +| 25 | Tips | label | setAccessibleName() 显式 | 提示浮动控件 | reader/browser/SheetBrowser.cpp:90 | — | +| 26 | verticalScrollBar | scroll bar | setAccessibleName() 显式 | 垂直滚动条 | reader/browser/SheetBrowser.cpp:98 | — | +| 27 | horizontalScrollBar | scroll bar | setAccessibleName() 显式 | 水平滚动条 | reader/browser/SheetBrowser.cpp:101 | — | +| 28 | Menu_Browser | menu | setAccessibleName() 显式 | 文档区域右键菜单 | reader/browser/BrowserMenu.cpp:19 | — | + +### 6. 侧栏 (SheetSidebar) + +| # | AT-SPI 名称 | Role | 源码来源 | 推导链 | 文件:行号 | 备注 | +|---|-------------|------|----------|--------|-----------|------| +| 29 | Form_SheetSidebar | form | accessible.h:56 | SET_FORM_ACCESSIBLE(SheetSidebar, "SheetSidebar") | reader/sidebar/SheetSidebar.cpp | 侧栏容器 | +| 30 | Button_Catalog | push button | createBtn→setAccessibleName("Button_Catalog") | 目录按钮 | reader/sidebar/SheetSidebar.cpp:363 | — | +| 31 | Button_BookMark | push button | createBtn→setAccessibleName("Button_BookMark") | 书签按钮 | reader/sidebar/SheetSidebar.cpp:363 | — | +| 32 | Button_Note | push button | createBtn→setAccessibleName("Button_Note") | 注释按钮 | reader/sidebar/SheetSidebar.cpp:363 | — | +| 33 | Button_Thumbnail | push button | createBtn→setAccessibleName("Button_Thumbnail") | 缩略图按钮 | reader/sidebar/SheetSidebar.cpp:363 | — | +| 34 | Button_search | push button | createBtn→setAccessibleName("Button_search") | 搜索按钮 | reader/sidebar/SheetSidebar.cpp:363 | — | + +### 7. 目录视图 (CatalogWidget) + +| # | AT-SPI 名称 | Role | 源码来源 | 推导链 | 文件:行号 | 备注 | +|---|-------------|------|----------|--------|-----------|------| +| 35 | Form_CatalogWidget | form | accessible.h:59 | SET_FORM_ACCESSIBLE(CatalogWidget, "CatalogWidget") | reader/sidebar/CatalogWidget.cpp | — | +| 36 | Label_title | label | setAccessibleName() 显式 | 目录标题 | reader/sidebar/CatalogWidget.cpp:40 | — | +| 37 | View_CatalogTree | tree | setAccessibleName() 显式 | 目录树视图 | reader/sidebar/CatalogWidget.cpp:55 | — | + +### 8. 书签视图 (BookMarkWidget) + +| # | AT-SPI 名称 | Role | 源码来源 | 推导链 | 文件:行号 | 备注 | +|---|-------------|------|----------|--------|-----------|------| +| 38 | Form_BookMarkWidget | form | accessible.h:60 | SET_FORM_ACCESSIBLE(BookMarkWidget, "BookMarkWidget") | reader/sidebar/BookMarkWidget.cpp | — | +| 39 | View_ImageList | list | setAccessibleName() 显式 | 书签列表视图 | reader/sidebar/BookMarkWidget.cpp:45 | 侧栏共用名 | +| 40 | BookmarkAdd | push button | setAccessibleName() 显式 | 添加书签按钮 | reader/sidebar/BookMarkWidget.cpp:52 | — | +| 41 | BookMarkLine | divider | setAccessibleName() 显式 | 分隔线 | reader/sidebar/BookMarkWidget.cpp:68 | — | +| 42 | Menu_BookMark | menu | setAccessibleName() 显式 | 书签右键菜单 | reader/sidebar/SideBarImageListview.cpp:304 | — | + +### 9. 注释视图 (NotesWidget) + +| # | AT-SPI 名称 | Role | 源码来源 | 推导链 | 文件:行号 | 备注 | +|---|-------------|------|----------|--------|-----------|------| +| 43 | Form_NotesWidget | form | accessible.h:61 | SET_FORM_ACCESSIBLE(NotesWidget, "NotesWidget") | reader/sidebar/NotesWidget.cpp | — | +| 44 | View_ImageList | list | setAccessibleName() 显式 | 注释列表视图 | reader/sidebar/NotesWidget.cpp:46 | 侧栏共用名 | +| 45 | NotesAdd | push button | setAccessibleName() 显式 | 添加注释按钮 | reader/sidebar/NotesWidget.cpp:55 | — | +| 46 | NotesLine | divider | setAccessibleName() 显式 | 分隔线 | reader/sidebar/NotesWidget.cpp:66 | — | +| 47 | Menu_Note | menu | setAccessibleName() 显式 | 注释右键菜单 | reader/sidebar/SideBarImageListview.cpp:276 | — | + +### 10. 搜索结果视图 (SearchResWidget) + +| # | AT-SPI 名称 | Role | 源码来源 | 推导链 | 文件:行号 | 备注 | +|---|-------------|------|----------|--------|-----------|------| +| 48 | Form_SearchResWidget | form | accessible.h:62 | SET_FORM_ACCESSIBLE(SearchResWidget, "SearchResWidget") | reader/sidebar/SearchResWidget.cpp | — | +| 49 | View_ImageList | list | setAccessibleName() 显式 | 搜索结果列表 | reader/sidebar/SearchResWidget.cpp:43 | 侧栏共用名 | + +### 11. 缩略图视图 (ThumbnailWidget) + +| # | AT-SPI 名称 | Role | 源码来源 | 推导链 | 文件:行号 | 备注 | +|---|-------------|------|----------|--------|-----------|------| +| 50 | Form_ThumbnailWidget | form | accessible.h:58 | SET_FORM_ACCESSIBLE(ThumbnailWidget, "ThumbnailWidget") | reader/sidebar/ThumbnailWidget.cpp | — | +| 51 | View_ImageList | list | setAccessibleName() 显式 | 缩略图列表 | reader/sidebar/ThumbnailWidget.cpp:38 | 侧栏共用名 | +| 52 | ThumbnailLine | divider | setAccessibleName() 显式 | 分隔线 | reader/sidebar/ThumbnailWidget.cpp:50 | — | + +### 12. 翻页控件 (PagingWidget) + +| # | AT-SPI 名称 | Role | 源码来源 | 推导链 | 文件:行号 | 备注 | +|---|-------------|------|----------|--------|-----------|------| +| 53 | Paging | form | setAccessibleName() 显式 | 翻页控件自身 | reader/sidebar/ThumbnailWidget.cpp:43 | — | +| 54 | Label_TotalPage | label | setAccessibleName() 显式 | 总页数标签 | reader/widgets/PagingWidget.cpp:74 | — | +| 55 | Page | editable text | setAccessibleName() 显式 | 跳转页输入框(DLineEdit) | reader/widgets/PagingWidget.cpp:81 | — | +| 56 | pageEdit | editable text | setAccessibleName() 显式 | 跳转页输入框(lineEdit) | reader/widgets/PagingWidget.cpp:84 | — | +| 57 | Button_ThumbnailPre | push button | setAccessibleName() 显式 | 上一页按钮 | reader/widgets/PagingWidget.cpp:100 | — | +| 58 | Button_ThumbnailNext | push button | setAccessibleName() 显式 | 下一页按钮 | reader/widgets/PagingWidget.cpp:107 | — | +| 59 | CurrentPage | label | setAccessibleName() 显式 | 当前页标签 | reader/widgets/PagingWidget.cpp:112 | 初始不可见 | + +### 13. 查找控件 (FindWidget) + +| # | AT-SPI 名称 | Role | 源码来源 | 推导链 | 文件:行号 | 备注 | +|---|-------------|------|----------|--------|-----------|------| +| 60 | Form_findSearchEdit_P | form | setAccessibleName() 显式 | 查找输入框(DSearchEdit) | reader/widgets/FindWidget.cpp:120 | — | +| 61 | DLineEditChildLineEdit | editable text | setAccessibleName() 显式 | 查找输入框(lineEdit) | reader/widgets/FindWidget.cpp:122 | — | +| 62 | Button_SP_ArrowUpBtn (或 DIconButton) | push button | objectName fallback | 查找上一个 | reader/widgets/FindWidget.cpp:129 | **缺口** | +| 63 | Button_SP_ArrowDownBtn (或 DIconButton) | push button | objectName fallback | 查找下一个 | reader/widgets/FindWidget.cpp:136 | **缺口** | +| 64 | Button_closeButton (或 DDialogCloseButton) | push button | objectName fallback | 关闭查找按钮 | reader/widgets/FindWidget.cpp:143 | **缺口** | + +### 14. 其他控件 + +| # | AT-SPI 名称 | Role | 源码来源 | 推导链 | 文件:行号 | 备注 | +|---|-------------|------|----------|--------|-----------|------| +| 65 | Form_EncryptionPage (或 Form_widget) | form | accessible.h fallback | 加密页面,无setAccessibleName | reader/widgets/EncryptionPage.cpp | **缺口** | +| 66 | passwdEdit | editable text | objectName fallback | 密码输入框 | reader/widgets/EncryptionPage.cpp:46 | **缺口** | +| 67 | ensureBtn | push button | objectName fallback | 确认按钮 | reader/widgets/EncryptionPage.cpp:50 | **缺口** | +| 68 | Form_RestoreTipWidget (或 Form_widget) | form | accessible.h fallback | 恢复位置提示条 | reader/widgets/RestoreTipWidget.cpp | **缺口** | +| 69 | Form_DocSheet | form | accessible.h:52 | SET_FORM_ACCESSIBLE(DocSheet, "DocSheet") | reader/uiframe/DocSheet.cpp | 文档打开后的容器 | +| 70 | Form_CentralDocPage | form | accessible.h:50 | SET_FORM_ACCESSIBLE(CentralDocPage, "CentralDocPage") | reader/uiframe/CentralDocPage.cpp | 文档页面容器 | +| 71 | Form_Central | form | accessible.h:48 | SET_FORM_ACCESSIBLE(Central, "Central") | reader/uiframe/Central.cpp | 中央容器 | + +### 15. 瞬态元素(需运行时确认) + +| # | AT-SPI 名称 | Role | 触发场景 | 推导链 | 备注 | +|---|-------------|------|----------|--------|------| +| 72 | ScaleMenu (DMenu) | menu | 点击缩放输入框箭头 | 无setAccessibleName,fallback至objectName | [INFERENCE] | +| 73 | SlidePlayWidget按钮们 | push button | 幻灯片播放模式 | createBtn只设objectName | [INFERENCE] | +| 74 | TextEditWidget | editable text | 注释编辑 | 无setAccessibleName | [INFERENCE] | + +--- + +## 命名分类统计 + +| 分类 | 计数 | 说明 | +|------|------|------| +| ✅ 显式 setAccessibleName | 30+ | 已存在可靠AT-SPI名 | +| ✅ 类级 AT 注册 | 14 | 通过SET_FORM_ACCESSIBLE注册的app类 | +| ⚠️ objectName fallback | 10 | 仅依赖objectName,可改进 | +| 🔴 缺口 (无任何锚点) | 6 | 见 checklist | +| [INFERENCE] 需运行时确认 | 5 | 动态生成/条件可见/同名消歧 | \ No newline at end of file diff --git a/tests/at/plan.md b/tests/at/plan.md new file mode 100644 index 00000000..12ebb6a6 --- /dev/null +++ b/tests/at/plan.md @@ -0,0 +1,378 @@ +# AT 录制计划: deepin-reader + +生成时间: 2026-08-20T13:49:49.731470 +模块数: 19 +总用例数: 313 + +--- + +## 1. /V25_2500(测试部专用)/B类解耦商店应用/文档查看器(#110615) + +- slug: `v25_2500_测试部专用_b类解耦商店应用_文档查看器_110615` +- 用例数: 12 +- 状态: pending + +### 录制指引 + +模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器(#110615) +用例数: 12 + +操作指引: 请参考用例步骤手动操作该模块的功能。 + +录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束 + +--- + +## 2. /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/文档视图/操作(#114159) + +- slug: `v25_2500_测试部专用_b类解耦商店应用_文档查看器_文档视图_操作_114159` +- 用例数: 88 +- 状态: pending + +### 录制指引 + +模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/文档视图/操作(#114159) +用例数: 88 + +操作指引: 请参考用例步骤手动操作该模块的功能。 + +录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束 + +--- + +## 3. /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/标签页(#114179) + +- slug: `v25_2500_测试部专用_b类解耦商店应用_文档查看器_标签页_114179` +- 用例数: 17 +- 状态: pending + +### 录制指引 + +模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/标签页(#114179) +用例数: 17 + +操作指引: 请参考用例步骤手动操作该模块的功能。 + +录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束 + +--- + +## 4. /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/文档视图/右键菜单(#114157) + +- slug: `v25_2500_测试部专用_b类解耦商店应用_文档查看器_文档视图_右键菜单_114157` +- 用例数: 15 +- 状态: pending + +### 录制指引 + +模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/文档视图/右键菜单(#114157) +用例数: 15 + +操作指引: 请参考用例步骤手动操作该模块的功能。 + +录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束 + +--- + +## 5. /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/主菜单(#114141) + +- slug: `v25_2500_测试部专用_b类解耦商店应用_文档查看器_主菜单_114141` +- 用例数: 23 +- 状态: pending + +### 录制指引 + +模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/主菜单(#114141) +用例数: 23 + +操作指引 (来自帮助手册): +# 主菜单 + +在主菜单中,您可以新建窗口、新建标签页、[保存文件](#保存文件)、[搜索文件](#搜索)、[打印文件](#打印文件)、切换窗口主题、查看帮助手册、了解文档查看器的更多信息。 + +### 在文件管理器中显示 + +1. 在文档查看器界面,单击 ![icon_menu](../common/icon_menu.svg)。 +2. 选择 **在文件管理器中显示**,定位该文件的存储位置。 + +### 放大镜 + +1. 在文档查看器界面,单击 ![icon_menu](../common/icon_menu.svg) 。 +2. 选择 **放大镜**,将鼠标移动到页面需要查看的区域,则该区域内容放大。 +3. 按下键盘上的 **Esc** 键或右键单击,取消放大镜功能。 + +### 切换工具 + +1. 在文档查看器界面,单击 ![icon_menu](../common/icon_menu.svg)。 +2. 选择 **工具**,支持两种工具切换。 + - **选择工具** 支持选择文本内容。 + - **手形工具** 支持在文档中移动。 + +### 主题 + +窗口主题包含浅色主题、深色主题和系统主题。 + +1. 在文档查看器界面,单击 ![icon_menu](../common/icon_menu.svg)。 +2. 选择 **主题**,选择一个主题颜色。 + +### 帮助 + +查看帮助手册,进一步了解和使用文档查看器。 + +1. 在文档查看器界面,单击 ![icon_menu](../common/icon_menu.svg)。 +2. 选择 **帮助**。 +3. 查看文档查看器的帮助手册。 + + +### 关于 + +1. 在文档查看器界面,单击 ![icon_menu](../common/icon_menu.svg)。 +2. 选择 **关于**。 +3. 查看文档查看器的版本和介绍。 + +### 退出 + +1. 在文档查看器界面,单击 ![icon_menu](../common/icon_menu.svg)。 +2. 选择 **退出**。 + +录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束 + +--- + +## 6. /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/缩略图/缩略图(#114161) + +- slug: `v25_2500_测试部专用_b类解耦商店应用_文档查看器_缩略图_缩略图_114161` +- 用例数: 4 +- 状态: pending + +### 录制指引 + +模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/缩略图/缩略图(#114161) +用例数: 4 + +操作指引: 请参考用例步骤手动操作该模块的功能。 + +录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束 + +--- + +## 7. /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/缩略图/书签(#114165) + +- slug: `v25_2500_测试部专用_b类解耦商店应用_文档查看器_缩略图_书签_114165` +- 用例数: 17 +- 状态: pending + +### 录制指引 + +模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/缩略图/书签(#114165) +用例数: 17 + +操作指引: 请参考用例步骤手动操作该模块的功能。 + +录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束 + +--- + +## 8. /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/其它交互(#114177) + +- slug: `v25_2500_测试部专用_b类解耦商店应用_文档查看器_交互_其它交互_114177` +- 用例数: 8 +- 状态: pending + +### 录制指引 + +模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/其它交互(#114177) +用例数: 8 + +操作指引: 请参考用例步骤手动操作该模块的功能。 + +录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束 + +--- + +## 9. /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/缩略图/注释(#114167) + +- slug: `v25_2500_测试部专用_b类解耦商店应用_文档查看器_缩略图_注释_114167` +- 用例数: 37 +- 状态: pending + +### 录制指引 + +模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/缩略图/注释(#114167) +用例数: 37 + +操作指引: 请参考用例步骤手动操作该模块的功能。 + +录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束 + +--- + +## 10. /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/窗口管理(#114139) + +- slug: `v25_2500_测试部专用_b类解耦商店应用_文档查看器_窗口管理_114139` +- 用例数: 4 +- 状态: pending + +### 录制指引 + +模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/窗口管理(#114139) +用例数: 4 + +操作指引: 请参考用例步骤手动操作该模块的功能。 + +录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束 + +--- + +## 11. /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/缩略图/目录(#114163) + +- slug: `v25_2500_测试部专用_b类解耦商店应用_文档查看器_缩略图_目录_114163` +- 用例数: 7 +- 状态: pending + +### 录制指引 + +模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/缩略图/目录(#114163) +用例数: 7 + +操作指引: 请参考用例步骤手动操作该模块的功能。 + +录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束 + +--- + +## 12. /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/压力(#114171) + +- slug: `v25_2500_测试部专用_b类解耦商店应用_文档查看器_压力_114171` +- 用例数: 6 +- 状态: pending + +### 录制指引 + +模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/压力(#114171) +用例数: 6 + +操作指引: 请参考用例步骤手动操作该模块的功能。 + +录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束 + +--- + +## 13. /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/性能(#114169) + +- slug: `v25_2500_测试部专用_b类解耦商店应用_文档查看器_性能_114169` +- 用例数: 2 +- 状态: pending + +### 录制指引 + +模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/性能(#114169) +用例数: 2 + +操作指引: 请参考用例步骤手动操作该模块的功能。 + +录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束 + +--- + +## 14. /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/文档打开(#114147) + +- slug: `v25_2500_测试部专用_b类解耦商店应用_文档查看器_文档打开_114147` +- 用例数: 23 +- 状态: pending + +### 录制指引 + +模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/文档打开(#114147) +用例数: 23 + +操作指引: 请参考用例步骤手动操作该模块的功能。 + +录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束 + +--- + +## 15. /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/键盘(#114149) + +- slug: `v25_2500_测试部专用_b类解耦商店应用_文档查看器_交互_键盘_114149` +- 用例数: 23 +- 状态: pending + +### 录制指引 + +模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/键盘(#114149) +用例数: 23 + +操作指引: 请参考用例步骤手动操作该模块的功能。 + +录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束 + +--- + +## 16. /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/触摸板(#114153) + +- slug: `v25_2500_测试部专用_b类解耦商店应用_文档查看器_交互_触摸板_114153` +- 用例数: 5 +- 状态: pending + +### 录制指引 + +模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/触摸板(#114153) +用例数: 5 + +操作指引: 请参考用例步骤手动操作该模块的功能。 + +录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束 + +--- + +## 17. /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/触摸屏(#114151) + +- slug: `v25_2500_测试部专用_b类解耦商店应用_文档查看器_交互_触摸屏_114151` +- 用例数: 8 +- 状态: pending + +### 录制指引 + +模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/触摸屏(#114151) +用例数: 8 + +操作指引: 请参考用例步骤手动操作该模块的功能。 + +录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束 + +--- + +## 18. /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/兼容性(#114173) + +- slug: `v25_2500_测试部专用_b类解耦商店应用_文档查看器_兼容性_114173` +- 用例数: 1 +- 状态: pending + +### 录制指引 + +模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/兼容性(#114173) +用例数: 1 + +操作指引: 请参考用例步骤手动操作该模块的功能。 + +录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束 + +--- + +## 19. /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/社区需求(#114155) + +- slug: `v25_2500_测试部专用_b类解耦商店应用_文档查看器_社区需求_114155` +- 用例数: 13 +- 状态: pending + +### 录制指引 + +模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/社区需求(#114155) +用例数: 13 + +操作指引: 请参考用例步骤手动操作该模块的功能。 + +录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束 + +--- diff --git a/tests/at/plan.yaml b/tests/at/plan.yaml new file mode 100644 index 00000000..d4adc66d --- /dev/null +++ b/tests/at/plan.yaml @@ -0,0 +1,585 @@ +app: deepin-reader +created_at: '2026-08-20T13:49:49.731470' +modules: +- slug: v25_2500_测试部专用_b类解耦商店应用_文档查看器_110615 + name: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器(#110615) + case_count: 12 + case_ids: + - case_1704991 + - case_1704989 + - case_1704987 + - case_1704985 + - case_1704983 + - case_1704981 + - case_1704975 + - case_1704971 + - case_1704969 + - case_1704967 + - case_1704965 + - case_1704963 + recording_guide: '模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器(#110615) + + 用例数: 12 + + + 操作指引: 请参考用例步骤手动操作该模块的功能。 + + + 录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束' + status: pending +- slug: v25_2500_测试部专用_b类解耦商店应用_文档查看器_文档视图_操作_114159 + name: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/文档视图/操作(#114159) + case_count: 88 + case_ids: + - case_1581295 + - case_1581285 + - case_1581281 + - case_1581207 + - case_1581205 + - case_1581203 + - case_1581201 + - case_1581199 + - case_1581195 + - case_1581193 + - case_1581139 + - case_1581135 + - case_1581133 + - case_1581131 + - case_1581129 + - case_1581127 + - case_1581125 + - case_1581123 + - case_1581057 + - case_1581055 + - case_1581051 + - case_1581049 + - case_1581047 + - case_1581045 + - case_1581043 + - case_1581041 + - case_1581039 + - case_1581035 + - case_1581033 + - case_1581031 + - case_1581029 + - case_1581027 + - case_1581025 + - case_1581011 + - case_1581009 + - case_1580993 + - case_1580979 + - case_1580977 + - case_1580975 + - case_1580973 + - case_1580971 + - case_1580945 + - case_1580943 + - case_1580941 + - case_1580939 + - case_1580937 + - case_1580935 + - case_1580933 + - case_1580931 + - case_1580929 + - case_1580927 + - case_1580925 + - case_1580923 + - case_1580921 + - case_1580919 + - case_1580917 + - case_1580915 + - case_1580913 + - case_1580911 + - case_1580909 + - case_1580907 + - case_1580905 + - case_1580903 + - case_1580901 + - case_1580899 + - case_1580897 + - case_1580895 + - case_1580891 + - case_1580783 + - case_1580719 + - case_1580717 + - case_1580601 + - case_1580595 + - case_1580585 + - case_1580583 + - case_1580575 + - case_1580573 + - case_1580553 + - case_1580551 + - case_1580549 + - case_1580545 + - case_1580543 + - case_1580533 + - case_1580529 + - case_1580363 + - case_1580353 + - case_1580331 + - case_1580329 + recording_guide: '模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/文档视图/操作(#114159) + + 用例数: 88 + + + 操作指引: 请参考用例步骤手动操作该模块的功能。 + + + 录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束' + status: pending +- slug: v25_2500_测试部专用_b类解耦商店应用_文档查看器_标签页_114179 + name: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/标签页(#114179) + case_count: 17 + case_ids: + - case_1581293 + - case_1581279 + - case_1581273 + - case_1581269 + - case_1581265 + - case_1581255 + - case_1581089 + - case_1581087 + - case_1581085 + - case_1581083 + - case_1581079 + - case_1581077 + - case_1581075 + - case_1581073 + - case_1581071 + - case_1580989 + - case_1580603 + recording_guide: '模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/标签页(#114179) + + 用例数: 17 + + + 操作指引: 请参考用例步骤手动操作该模块的功能。 + + + 录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束' + status: pending +- slug: v25_2500_测试部专用_b类解耦商店应用_文档查看器_文档视图_右键菜单_114157 + name: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/文档视图/右键菜单(#114157) + case_count: 15 + case_ids: + - case_1581283 + - case_1581257 + - case_1581247 + - case_1581221 + - case_1581219 + - case_1581217 + - case_1581121 + - case_1581119 + - case_1581037 + - case_1580885 + - case_1580883 + - case_1580785 + - case_1580705 + - case_1580523 + - case_1580481 + recording_guide: '模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/文档视图/右键菜单(#114157) + + 用例数: 15 + + + 操作指引: 请参考用例步骤手动操作该模块的功能。 + + + 录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束' + status: pending +- slug: v25_2500_测试部专用_b类解耦商店应用_文档查看器_主菜单_114141 + name: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/主菜单(#114141) + case_count: 23 + case_ids: + - case_1581267 + - case_1581233 + - case_1581231 + - case_1581229 + - case_1581227 + - case_1581225 + - case_1581223 + - case_1581215 + - case_1581213 + - case_1581209 + - case_1581081 + - case_1581061 + - case_1581059 + - case_1581007 + - case_1580781 + - case_1580757 + - case_1580683 + - case_1580609 + - case_1580597 + - case_1580581 + - case_1580519 + - case_1580517 + - case_1580513 + recording_guide: "模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/主菜单(#114141)\n用例数: 23\n\n\ + 操作指引 (来自帮助手册):\n# 主菜单\n\n在主菜单中,您可以新建窗口、新建标签页、[保存文件](#保存文件)、[搜索文件](#搜索)、[打印文件](#打印文件)、切换窗口主题、查看帮助手册、了解文档查看器的更多信息。\n\ + \n### 在文件管理器中显示\n\n1. 在文档查看器界面,单击 ![icon_menu](../common/icon_menu.svg)。\n2. 选择\ + \ **在文件管理器中显示**,定位该文件的存储位置。\n\n### 放大镜\n\n1. 在文档查看器界面,单击 ![icon_menu](../common/icon_menu.svg)\ + \ 。\n2. 选择 **放大镜**,将鼠标移动到页面需要查看的区域,则该区域内容放大。\n3. 按下键盘上的 **Esc** 键或右键单击,取消放大镜功能。\n\ + \n### 切换工具\n\n1. 在文档查看器界面,单击 ![icon_menu](../common/icon_menu.svg)。\n2. 选择 **工具**,支持两种工具切换。\n\ + \ - **选择工具** 支持选择文本内容。\n - **手形工具** 支持在文档中移动。\n\n### 主题\n\n窗口主题包含浅色主题、深色主题和系统主题。\n\ + \n1. 在文档查看器界面,单击 ![icon_menu](../common/icon_menu.svg)。\n2. 选择 **主题**,选择一个主题颜色。\n\ + \n### 帮助\n\n查看帮助手册,进一步了解和使用文档查看器。\n\n1. 在文档查看器界面,单击 ![icon_menu](../common/icon_menu.svg)。\n\ + 2. 选择 **帮助**。\n3. 查看文档查看器的帮助手册。\n\n\n### 关于\n\n1. 在文档查看器界面,单击 ![icon_menu](../common/icon_menu.svg)。\n\ + 2. 选择 **关于**。\n3. 查看文档查看器的版本和介绍。\n\n### 退出\n\n1. 在文档查看器界面,单击 ![icon_menu](../common/icon_menu.svg)。\n\ + 2. 选择 **退出**。\n\n录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束" + status: pending +- slug: v25_2500_测试部专用_b类解耦商店应用_文档查看器_缩略图_缩略图_114161 + name: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/缩略图/缩略图(#114161) + case_count: 4 + case_ids: + - case_1581253 + - case_1581023 + - case_1581021 + - case_1581019 + recording_guide: '模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/缩略图/缩略图(#114161) + + 用例数: 4 + + + 操作指引: 请参考用例步骤手动操作该模块的功能。 + + + 录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束' + status: pending +- slug: v25_2500_测试部专用_b类解耦商店应用_文档查看器_缩略图_书签_114165 + name: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/缩略图/书签(#114165) + case_count: 17 + case_ids: + - case_1581251 + - case_1581117 + - case_1581115 + - case_1581113 + - case_1581111 + - case_1581109 + - case_1581069 + - case_1581067 + - case_1581065 + - case_1581063 + - case_1581017 + - case_1581015 + - case_1581013 + - case_1580987 + - case_1580985 + - case_1580731 + - case_1580729 + recording_guide: '模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/缩略图/书签(#114165) + + 用例数: 17 + + + 操作指引: 请参考用例步骤手动操作该模块的功能。 + + + 录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束' + status: pending +- slug: v25_2500_测试部专用_b类解耦商店应用_文档查看器_交互_其它交互_114177 + name: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/其它交互(#114177) + case_count: 8 + case_ids: + - case_1581243 + - case_1581241 + - case_1580767 + - case_1580761 + - case_1580409 + - case_1580407 + - case_1580405 + - case_1580309 + recording_guide: '模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/其它交互(#114177) + + 用例数: 8 + + + 操作指引: 请参考用例步骤手动操作该模块的功能。 + + + 录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束' + status: pending +- slug: v25_2500_测试部专用_b类解耦商店应用_文档查看器_缩略图_注释_114167 + name: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/缩略图/注释(#114167) + case_count: 37 + case_ids: + - case_1581191 + - case_1581187 + - case_1581185 + - case_1581183 + - case_1581181 + - case_1581179 + - case_1581177 + - case_1581175 + - case_1581173 + - case_1581171 + - case_1581169 + - case_1581167 + - case_1581165 + - case_1581163 + - case_1581161 + - case_1581159 + - case_1581157 + - case_1581155 + - case_1581153 + - case_1581151 + - case_1581149 + - case_1581147 + - case_1581145 + - case_1581143 + - case_1581141 + - case_1580983 + - case_1580959 + - case_1580957 + - case_1580955 + - case_1580953 + - case_1580951 + - case_1580949 + - case_1580947 + - case_1580881 + - case_1580753 + - case_1580727 + - case_1580489 + recording_guide: '模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/缩略图/注释(#114167) + + 用例数: 37 + + + 操作指引: 请参考用例步骤手动操作该模块的功能。 + + + 录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束' + status: pending +- slug: v25_2500_测试部专用_b类解耦商店应用_文档查看器_窗口管理_114139 + name: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/窗口管理(#114139) + case_count: 4 + case_ids: + - case_1581105 + - case_1580327 + - case_1580325 + - case_1580323 + recording_guide: '模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/窗口管理(#114139) + + 用例数: 4 + + + 操作指引: 请参考用例步骤手动操作该模块的功能。 + + + 录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束' + status: pending +- slug: v25_2500_测试部专用_b类解耦商店应用_文档查看器_缩略图_目录_114163 + name: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/缩略图/目录(#114163) + case_count: 7 + case_ids: + - case_1581101 + - case_1581099 + - case_1581097 + - case_1581095 + - case_1581093 + - case_1581091 + - case_1580749 + recording_guide: '模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/缩略图/目录(#114163) + + 用例数: 7 + + + 操作指引: 请参考用例步骤手动操作该模块的功能。 + + + 录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束' + status: pending +- slug: v25_2500_测试部专用_b类解耦商店应用_文档查看器_压力_114171 + name: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/压力(#114171) + case_count: 6 + case_ids: + - case_1581003 + - case_1580999 + - case_1580997 + - case_1580981 + - case_1580889 + - case_1580491 + recording_guide: '模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/压力(#114171) + + 用例数: 6 + + + 操作指引: 请参考用例步骤手动操作该模块的功能。 + + + 录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束' + status: pending +- slug: v25_2500_测试部专用_b类解耦商店应用_文档查看器_性能_114169 + name: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/性能(#114169) + case_count: 2 + case_ids: + - case_1580995 + - case_1580965 + recording_guide: '模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/性能(#114169) + + 用例数: 2 + + + 操作指引: 请参考用例步骤手动操作该模块的功能。 + + + 录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束' + status: pending +- slug: v25_2500_测试部专用_b类解耦商店应用_文档查看器_文档打开_114147 + name: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/文档打开(#114147) + case_count: 23 + case_ids: + - case_1580893 + - case_1580771 + - case_1580765 + - case_1580737 + - case_1580735 + - case_1580715 + - case_1580713 + - case_1580711 + - case_1580709 + - case_1580707 + - case_1580679 + - case_1580677 + - case_1580675 + - case_1580673 + - case_1580671 + - case_1580669 + - case_1580665 + - case_1580641 + - case_1580639 + - case_1580637 + - case_1580589 + - case_1580565 + - case_1580557 + recording_guide: '模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/文档打开(#114147) + + 用例数: 23 + + + 操作指引: 请参考用例步骤手动操作该模块的功能。 + + + 录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束' + status: pending +- slug: v25_2500_测试部专用_b类解耦商店应用_文档查看器_交互_键盘_114149 + name: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/键盘(#114149) + case_count: 23 + case_ids: + - case_1580879 + - case_1580877 + - case_1580875 + - case_1580873 + - case_1580871 + - case_1580869 + - case_1580867 + - case_1580865 + - case_1580863 + - case_1580861 + - case_1580859 + - case_1580857 + - case_1580855 + - case_1580853 + - case_1580851 + - case_1580849 + - case_1580847 + - case_1580845 + - case_1580843 + - case_1580841 + - case_1580839 + - case_1580773 + - case_1580759 + recording_guide: '模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/键盘(#114149) + + 用例数: 23 + + + 操作指引: 请参考用例步骤手动操作该模块的功能。 + + + 录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束' + status: pending +- slug: v25_2500_测试部专用_b类解耦商店应用_文档查看器_交互_触摸板_114153 + name: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/触摸板(#114153) + case_count: 5 + case_ids: + - case_1580837 + - case_1580835 + - case_1580833 + - case_1580831 + - case_1580829 + recording_guide: '模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/触摸板(#114153) + + 用例数: 5 + + + 操作指引: 请参考用例步骤手动操作该模块的功能。 + + + 录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束' + status: pending +- slug: v25_2500_测试部专用_b类解耦商店应用_文档查看器_交互_触摸屏_114151 + name: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/触摸屏(#114151) + case_count: 8 + case_ids: + - case_1580817 + - case_1580815 + - case_1580813 + - case_1580811 + - case_1580809 + - case_1580807 + - case_1580805 + - case_1580803 + recording_guide: '模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/交互/触摸屏(#114151) + + 用例数: 8 + + + 操作指引: 请参考用例步骤手动操作该模块的功能。 + + + 录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束' + status: pending +- slug: v25_2500_测试部专用_b类解耦商店应用_文档查看器_兼容性_114173 + name: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/兼容性(#114173) + case_count: 1 + case_ids: + - case_1580755 + recording_guide: '模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/兼容性(#114173) + + 用例数: 1 + + + 操作指引: 请参考用例步骤手动操作该模块的功能。 + + + 录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束' + status: pending +- slug: v25_2500_测试部专用_b类解耦商店应用_文档查看器_社区需求_114155 + name: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/社区需求(#114155) + case_count: 13 + case_ids: + - case_1580443 + - case_1580439 + - case_1580437 + - case_1580435 + - case_1580433 + - case_1580431 + - case_1580429 + - case_1580427 + - case_1580425 + - case_1580417 + - case_1580415 + - case_1580413 + - case_1580411 + recording_guide: '模块: /V25_2500(测试部专用)/B类解耦商店应用/文档查看器/社区需求(#114155) + + 用例数: 13 + + + 操作指引: 请参考用例步骤手动操作该模块的功能。 + + + 录制提示: 打开应用 → 按用例步骤操作 → 每个操作后等待界面稳定 → 完成后按 q 结束' + status: pending diff --git a/tests/at/scan/element_gaps.yaml b/tests/at/scan/element_gaps.yaml new file mode 100644 index 00000000..29f7541c --- /dev/null +++ b/tests/at/scan/element_gaps.yaml @@ -0,0 +1,272 @@ +version: '1.0' +app: deepin-reader +summary: + total_ui_classes: 43 + classes_with_names: 6 + classes_missing_names: 37 +gaps: +- class_name: SideBarImageListView + source_file: sidebar/SideBarImageListview.h + base_classes: + - DListView + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: BrowserMagniFier + source_file: browser/BrowserMagniFier.cpp + base_classes: + - QLabel + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: BrowserMagniFier + source_file: browser/BrowserMagniFier.h + base_classes: + - QLabel + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: BrowserMenu + source_file: browser/BrowserMenu.h + base_classes: + - DMenu + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: CatalogTreeView + source_file: sidebar/CatalogTreeView.cpp + base_classes: + - DTreeView + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: CatalogTreeView + source_file: sidebar/CatalogTreeView.h + base_classes: + - DTreeView + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: LoadingWidget + source_file: uiframe/DocSheet.cpp + base_classes: + - QWidget + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: LoadingWidget + source_file: uiframe/DocSheet.h + base_classes: + - QWidget + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: DocTabBar + source_file: uiframe/DocTabBar.cpp + base_classes: + - DTabBar + object_names: [] + accessible_names: [] + dtk_instantiations: + - DTabBar +- class_name: DocTabBar + source_file: uiframe/DocTabBar.h + base_classes: + - DTabBar + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: TitleMenu + source_file: uiframe/TitleMenu.cpp + base_classes: + - DMenu + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: TitleMenu + source_file: uiframe/TitleMenu.h + base_classes: + - DMenu + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: BaseWidget + source_file: widgets/BaseWidget.cpp + base_classes: + - DWidget + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: BaseWidget + source_file: widgets/BaseWidget.h + base_classes: + - DWidget + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: EncryptionPage + source_file: widgets/EncryptionPage.h + base_classes: + - DWidget + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: FileAttrWidget + source_file: widgets/FileAttrWidget.cpp + base_classes: + - DAbstractDialog + object_names: [] + accessible_names: [] + dtk_instantiations: + - DAbstractDialog +- class_name: ImageWidget + source_file: widgets/FileAttrWidget.cpp + base_classes: + - DWidget + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: FileAttrWidget + source_file: widgets/FileAttrWidget.h + base_classes: + - DAbstractDialog + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: FindWidget + source_file: widgets/FindWidget.cpp + base_classes: + - DFloatingWidget + object_names: [] + accessible_names: [] + dtk_instantiations: + - DFloatingWidget +- class_name: FindWidget + source_file: widgets/FindWidget.h + base_classes: + - DFloatingWidget + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: HandleMenu + source_file: widgets/HandleMenu.h + base_classes: + - DMenu + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: RestoreTipWidget + source_file: widgets/RestoreTipWidget.cpp + base_classes: + - DWidget + object_names: [] + accessible_names: [] + dtk_instantiations: + - DIconButton +- class_name: RestoreTipWidget + source_file: widgets/RestoreTipWidget.h + base_classes: + - DWidget + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: RoundColorWidget + source_file: widgets/RoundColorWidget.cpp + base_classes: + - DWidget + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: RoundColorWidget + source_file: widgets/RoundColorWidget.h + base_classes: + - DWidget + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: ScaleMenu + source_file: widgets/ScaleMenu.cpp + base_classes: + - DMenu + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: ScaleMenu + source_file: widgets/ScaleMenu.h + base_classes: + - DMenu + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: SlidePlayWidget + source_file: widgets/SlidePlayWidget.cpp + base_classes: + - DFloatingWidget + object_names: [] + accessible_names: [] + dtk_instantiations: + - DFloatingWidget +- class_name: SlidePlayWidget + source_file: widgets/SlidePlayWidget.h + base_classes: + - DFloatingWidget + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: SlideWidget + source_file: widgets/SlideWidget.cpp + base_classes: + - DWidget + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: SlideWidget + source_file: widgets/SlideWidget.h + base_classes: + - DWidget + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: TextEditShadowWidget + source_file: widgets/TextEditWidget.h + base_classes: + - DWidget + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: TipsWidget + source_file: widgets/TipsWidget.cpp + base_classes: + - DWidget + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: TipsWidget + source_file: widgets/TipsWidget.h + base_classes: + - DWidget + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: TransparentTextEdit + source_file: widgets/TransparentTextEdit.h + base_classes: + - QTextEdit + object_names: [] + accessible_names: [] + dtk_instantiations: [] +- class_name: WordWrapLabel + source_file: widgets/WordWrapLabel.cpp + base_classes: + - DLabel + object_names: [] + accessible_names: [] + dtk_instantiations: + - DLabel +- class_name: WordWrapLabel + source_file: widgets/WordWrapLabel.h + base_classes: + - DLabel + object_names: [] + accessible_names: [] + dtk_instantiations: [] diff --git a/tests/at/scan/scanned_gaps.yaml b/tests/at/scan/scanned_gaps.yaml new file mode 100644 index 00000000..86fa7a40 --- /dev/null +++ b/tests/at/scan/scanned_gaps.yaml @@ -0,0 +1,1828 @@ +--- +class_name: SideBarImageListView +source_file: sidebar/SideBarImageListview.h +base_classes: +- DListView +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: SideBarImageViewModel +source_file: sidebar/SideBarImageViewModel.cpp +base_classes: +- QAbstractListModel +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: SideBarImageViewModel +source_file: sidebar/SideBarImageViewModel.h +base_classes: +- QAbstractListModel +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: ThumbnailDelegate +source_file: sidebar/ThumbnailDelegate.cpp +base_classes: +- DStyledItemDelegate +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: ThumbnailDelegate +source_file: sidebar/ThumbnailDelegate.h +base_classes: +- DStyledItemDelegate +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: SheetBrowser +source_file: browser/SheetBrowser.h +base_classes: +- Dtk::Widget::DGraphicsView +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: DjVuPage +source_file: document/DjVuModel.cpp +base_classes: +- Page +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: DjVuDocument +source_file: document/DjVuModel.cpp +base_classes: +- Document +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: DjVuPage +source_file: document/DjVuModel.h +base_classes: +- Page +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: DjVuDocument +source_file: document/DjVuModel.h +base_classes: +- Document +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: Annotation +source_file: document/Model.cpp +base_classes: +- QObject +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: FormField +source_file: document/Model.cpp +base_classes: +- QObject +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: Page +source_file: document/Model.cpp +base_classes: +- QObject +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: Document +source_file: document/Model.cpp +base_classes: +- QObject +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: Annotation +source_file: document/Model.h +base_classes: +- QObject +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: FormField +source_file: document/Model.h +base_classes: +- QObject +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: Page +source_file: document/Model.h +base_classes: +- QObject +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: Document +source_file: document/Model.h +base_classes: +- QObject +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: PDFAnnotation +source_file: document/PDFModel.cpp +base_classes: +- Annotation +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: PDFPage +source_file: document/PDFModel.cpp +base_classes: +- Page +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: PDFDocument +source_file: document/PDFModel.cpp +base_classes: +- Document +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: PDFAnnotation +source_file: document/PDFModel.h +base_classes: +- Annotation +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: PDFPage +source_file: document/PDFModel.h +base_classes: +- Page +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: PDFDocument +source_file: document/PDFModel.h +base_classes: +- Document +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: XpsDocumentAdapter +source_file: document/XpsDocumentAdapter.cpp +base_classes: +- Document +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: XpsPageAdapter +source_file: document/XpsDocumentAdapter.cpp +base_classes: +- Page +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: XpsDocumentAdapter +source_file: document/XpsDocumentAdapter.h +base_classes: +- Document +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: XpsPageAdapter +source_file: document/XpsDocumentAdapter.h +base_classes: +- Page +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: EyeProtectionAction +source_file: eyeprotection/EyeProtectionAction.cpp +base_classes: +- QWidgetAction +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: EyeProtectionAction +source_file: eyeprotection/EyeProtectionAction.h +base_classes: +- QWidgetAction +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: EyeProtectionManager +source_file: eyeprotection/EyeProtectionManager.cpp +base_classes: +- QObject +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: EyeProtectionManager +source_file: eyeprotection/EyeProtectionManager.h +base_classes: +- QObject +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: MLogger +source_file: logger.cpp +base_classes: +- QObject +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: BrowserAnnotation +source_file: browser/BrowserAnnotation.cpp +base_classes: +- QGraphicsItem +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: BrowserAnnotation +source_file: browser/BrowserAnnotation.h +base_classes: +- QGraphicsItem +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: ReadMagnifierManager +source_file: browser/BrowserMagniFier.cpp +base_classes: +- QThread +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: BrowserMagniFier +source_file: browser/BrowserMagniFier.cpp +base_classes: +- QLabel +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: ReadMagnifierManager +source_file: browser/BrowserMagniFier.h +base_classes: +- QThread +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: BrowserMagniFier +source_file: browser/BrowserMagniFier.h +base_classes: +- QLabel +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: BrowserMenu +source_file: browser/BrowserMenu.h +base_classes: +- DMenu +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: BrowserPage +source_file: browser/BrowserPage.cpp +base_classes: +- QGraphicsItem +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: BrowserPage +source_file: browser/BrowserPage.h +base_classes: +- QGraphicsItem +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: BrowserWord +source_file: browser/BrowserWord.cpp +base_classes: +- QGraphicsItem +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: BrowserWord +source_file: browser/BrowserWord.h +base_classes: +- QGraphicsItem +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: PageRenderThread +source_file: browser/PageRenderThread.cpp +base_classes: +- QThread +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: PageRenderThread +source_file: browser/PageRenderThread.h +base_classes: +- QThread +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: PageSearchThread +source_file: browser/PageSearchThread.cpp +base_classes: +- QThread +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: PageSearchThread +source_file: browser/PageSearchThread.h +base_classes: +- QThread +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: SheetBrowser +source_file: browser/SheetBrowser.cpp +base_classes: +- Dtk::Widget::DGraphicsView +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: Application +source_file: Application.cpp +base_classes: +- DApplication +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: Application +source_file: Application.h +base_classes: +- DApplication +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: MainWindow +source_file: MainWindow.cpp +base_classes: +- Dtk::Widget::DMainWindow +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: +- DMainWindow +action_texts: [] +menu_actions: [] +--- +class_name: MainWindow +source_file: MainWindow.h +base_classes: +- Dtk::Widget::DMainWindow +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: DBusObject +source_file: app/DBusObject.cpp +base_classes: +- QObject +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: DBusObject +source_file: app/DBusObject.h +base_classes: +- QObject +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: Database +source_file: app/Database.cpp +base_classes: +- QObject +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: Database +source_file: app/Database.h +base_classes: +- QObject +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: TMFunctionThread +source_file: app/TMFunctionThread.cpp +base_classes: +- QThread +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: TMFunctionThread +source_file: app/TMFunctionThread.h +base_classes: +- QThread +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: Utils +source_file: app/Utils.cpp +base_classes: +- QObject +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: Utils +source_file: app/Utils.h +base_classes: +- QObject +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleMainWindow +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleCentral +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleCentralDocPage +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleCentralNavPage +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleDocSheet +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleDocTabBar +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleTitleWidget +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleSheetSidebar +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleSheetBrowser +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleThumbnailWidget +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleCatalogWidget +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleBookMarkWidget +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleNotesWidget +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleSearchResWidget +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleQFrame +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleQWidget +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleQPushButton +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleQSlider +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +- QAccessibleValueInterface +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleDFrame +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleDWidget +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleDBackgroundGroup +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleDSwitchButton +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleDFloatingButton +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleDSearchEdit +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleDPushButton +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleDIconButton +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleDCheckBox +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleDCommandLinkButton +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleDLabel +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +- QAccessibleTextInterface +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleDTitlebar +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleDToolButton +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleDDialog +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AccessibleDFileDialog +source_file: app/accessible.h +base_classes: +- QAccessibleWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: MLogger +source_file: logger.h +base_classes: +- QObject +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: BookMarkDelegate +source_file: sidebar/BookMarkDelegate.cpp +base_classes: +- DStyledItemDelegate +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: BookMarkDelegate +source_file: sidebar/BookMarkDelegate.h +base_classes: +- DStyledItemDelegate +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: CatalogTreeView +source_file: sidebar/CatalogTreeView.cpp +base_classes: +- DTreeView +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: ActiveProxyStyle +source_file: sidebar/CatalogTreeView.cpp +base_classes: +- QProxyStyle +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: CatalogModel +source_file: sidebar/CatalogTreeView.cpp +base_classes: +- QStandardItemModel +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: CatalogTreeView +source_file: sidebar/CatalogTreeView.h +base_classes: +- DTreeView +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: NotesDelegate +source_file: sidebar/NotesDelegate.cpp +base_classes: +- DStyledItemDelegate +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: NotesDelegate +source_file: sidebar/NotesDelegate.h +base_classes: +- DStyledItemDelegate +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: ReadImageTask +source_file: sidebar/ReaderImageThreadPoolManager.cpp +base_classes: +- QRunnable +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: ReaderImageThreadPoolManager +source_file: sidebar/ReaderImageThreadPoolManager.cpp +base_classes: +- QThreadPool +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: Holder +source_file: sidebar/ReaderImageThreadPoolManager.cpp +base_classes: +- HolderBase +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: Holder +source_file: sidebar/ReaderImageThreadPoolManager.cpp +base_classes: +- HolderBase +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: ReadImageTask +source_file: sidebar/ReaderImageThreadPoolManager.h +base_classes: +- QRunnable +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: ReaderImageThreadPoolManager +source_file: sidebar/ReaderImageThreadPoolManager.h +base_classes: +- QThreadPool +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: SearchResDelegate +source_file: sidebar/SearchResDelegate.cpp +base_classes: +- DStyledItemDelegate +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: SearchResDelegate +source_file: sidebar/SearchResDelegate.h +base_classes: +- DStyledItemDelegate +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: DocSheet +source_file: uiframe/DocSheet.cpp +base_classes: +- Dtk::Widget::DSplitter +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: LoadingWidget +source_file: uiframe/DocSheet.cpp +base_classes: +- QWidget +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: DocSheet +source_file: uiframe/DocSheet.h +base_classes: +- Dtk::Widget::DSplitter +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: LoadingWidget +source_file: uiframe/DocSheet.h +base_classes: +- QWidget +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: DocTabBar +source_file: uiframe/DocTabBar.cpp +base_classes: +- DTabBar +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: +- DTabBar +action_texts: [] +menu_actions: [] +--- +class_name: DocTabBar +source_file: uiframe/DocTabBar.h +base_classes: +- DTabBar +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: SheetRenderer +source_file: uiframe/SheetRenderer.cpp +base_classes: +- QObject +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: SheetRenderer +source_file: uiframe/SheetRenderer.h +base_classes: +- QObject +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: TitleMenu +source_file: uiframe/TitleMenu.cpp +base_classes: +- DMenu +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: TitleMenu +source_file: uiframe/TitleMenu.h +base_classes: +- DMenu +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: AttrScrollWidget +source_file: widgets/AttrScrollWidget.cpp +base_classes: +- Dtk::Widget::DFrame +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: +- DFrame +action_texts: [] +menu_actions: [] +--- +class_name: AttrScrollWidget +source_file: widgets/AttrScrollWidget.h +base_classes: +- Dtk::Widget::DFrame +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: BaseWidget +source_file: widgets/BaseWidget.cpp +base_classes: +- DWidget +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: BaseWidget +source_file: widgets/BaseWidget.h +base_classes: +- DWidget +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: ColorWidgetAction +source_file: widgets/ColorWidgetAction.cpp +base_classes: +- QWidgetAction +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: ColorWidgetAction +source_file: widgets/ColorWidgetAction.h +base_classes: +- QWidgetAction +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: EncryptionPage +source_file: widgets/EncryptionPage.h +base_classes: +- DWidget +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: FileAttrWidget +source_file: widgets/FileAttrWidget.cpp +base_classes: +- DAbstractDialog +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: +- DAbstractDialog +action_texts: [] +menu_actions: [] +--- +class_name: ImageWidget +source_file: widgets/FileAttrWidget.cpp +base_classes: +- DWidget +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: FileAttrWidget +source_file: widgets/FileAttrWidget.h +base_classes: +- DAbstractDialog +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: FindWidget +source_file: widgets/FindWidget.cpp +base_classes: +- DFloatingWidget +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: +- DFloatingWidget +action_texts: [] +menu_actions: [] +--- +class_name: FindWidget +source_file: widgets/FindWidget.h +base_classes: +- DFloatingWidget +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: HandleMenu +source_file: widgets/HandleMenu.h +base_classes: +- DMenu +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: PagingWidget +source_file: widgets/PagingWidget.h +base_classes: +- BaseWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: ProgressDialog +source_file: widgets/ProgressDialog.cpp +base_classes: +- Dtk::Widget::DDialog +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: +- DDialog +action_texts: [] +menu_actions: [] +--- +class_name: ProgressDialog +source_file: widgets/ProgressDialog.h +base_classes: +- Dtk::Widget::DDialog +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: RestoreTipWidget +source_file: widgets/RestoreTipWidget.cpp +base_classes: +- DWidget +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: +- DIconButton +action_texts: [] +menu_actions: [] +--- +class_name: RestoreTipWidget +source_file: widgets/RestoreTipWidget.h +base_classes: +- DWidget +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: RoundColorWidget +source_file: widgets/RoundColorWidget.cpp +base_classes: +- DWidget +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: RoundColorWidget +source_file: widgets/RoundColorWidget.h +base_classes: +- DWidget +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: SaveDialog +source_file: widgets/SaveDialog.cpp +base_classes: +- QObject +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: SaveDialog +source_file: widgets/SaveDialog.h +base_classes: +- QObject +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: ScaleMenu +source_file: widgets/ScaleMenu.cpp +base_classes: +- DMenu +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: ScaleMenu +source_file: widgets/ScaleMenu.h +base_classes: +- DMenu +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: ScaleWidget +source_file: widgets/ScaleWidget.cpp +base_classes: +- Dtk::Widget::DWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: ScaleWidget +source_file: widgets/ScaleWidget.h +base_classes: +- Dtk::Widget::DWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: SecurityDialog +source_file: widgets/SecurityDialog.cpp +base_classes: +- Dtk::Widget::DDialog +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: +- DDialog +- DLabel +action_texts: [] +menu_actions: [] +--- +class_name: SecurityDialog +source_file: widgets/SecurityDialog.h +base_classes: +- Dtk::Widget::DDialog +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: ShortCutShow +source_file: widgets/ShortCutShow.cpp +base_classes: +- QObject +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: KeyDataList +source_file: widgets/ShortCutShow.cpp +base_classes: +- QList > +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: ShortCutShow +source_file: widgets/ShortCutShow.h +base_classes: +- QObject +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: KeyDataList +source_file: widgets/ShortCutShow.h +base_classes: +- QList > +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: SlidePlayWidget +source_file: widgets/SlidePlayWidget.cpp +base_classes: +- DFloatingWidget +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: +- DFloatingWidget +action_texts: [] +menu_actions: [] +--- +class_name: SlidePlayWidget +source_file: widgets/SlidePlayWidget.h +base_classes: +- DFloatingWidget +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: SlideWidget +source_file: widgets/SlideWidget.cpp +base_classes: +- DWidget +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: SlideWidget +source_file: widgets/SlideWidget.h +base_classes: +- DWidget +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: TextEditWidget +source_file: widgets/TextEditWidget.cpp +base_classes: +- BaseWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: TextEditWidget +source_file: widgets/TextEditWidget.h +base_classes: +- BaseWidget +is_ui_widget: false +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: TextEditShadowWidget +source_file: widgets/TextEditWidget.h +base_classes: +- DWidget +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: TipsWidget +source_file: widgets/TipsWidget.cpp +base_classes: +- DWidget +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: TipsWidget +source_file: widgets/TipsWidget.h +base_classes: +- DWidget +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: TransparentTextEdit +source_file: widgets/TransparentTextEdit.h +base_classes: +- QTextEdit +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] +--- +class_name: WordWrapLabel +source_file: widgets/WordWrapLabel.cpp +base_classes: +- DLabel +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: +- DLabel +action_texts: [] +menu_actions: [] +--- +class_name: WordWrapLabel +source_file: widgets/WordWrapLabel.h +base_classes: +- DLabel +is_ui_widget: true +object_names: [] +accessible_names: [] +dtk_instantiations: [] +action_texts: [] +menu_actions: [] diff --git a/tests/at/dump/scanned_ok.yaml b/tests/at/scan/scanned_ok.yaml similarity index 60% rename from tests/at/dump/scanned_ok.yaml rename to tests/at/scan/scanned_ok.yaml index e4c4c789..37846ea7 100644 --- a/tests/at/dump/scanned_ok.yaml +++ b/tests/at/scan/scanned_ok.yaml @@ -1,6 +1,6 @@ --- class_name: SideBarImageListView -source_file: reader/sidebar/SideBarImageListview.cpp +source_file: sidebar/SideBarImageListview.cpp base_classes: - DListView is_ui_widget: true @@ -8,67 +8,95 @@ object_names: - sideBarImageListView - sideBarImageListViewViewport accessible_names: -- Menu_Note - Menu_BookMark +- Menu_Note dtk_instantiations: - DListView +action_texts: [] +menu_actions: [] --- class_name: SideBarImageListView -source_file: reader/sidebar/SideBarImageListview.cpp +source_file: sidebar/SideBarImageListview.cpp base_classes: [] is_ui_widget: false object_names: - sideBarImageListView - sideBarImageListViewViewport accessible_names: -- Menu_Note - Menu_BookMark +- Menu_Note dtk_instantiations: - DListView +action_texts: [] +menu_actions: [] +--- +class_name: BrowserMenu +source_file: browser/BrowserMenu.cpp +base_classes: +- DMenu +is_ui_widget: true +object_names: [] +accessible_names: +- Menu_Browser +dtk_instantiations: [] +action_texts: [] +menu_actions: [] --- class_name: EncryptionPage -source_file: reader/widgets/EncryptionPage.cpp +source_file: widgets/EncryptionPage.cpp base_classes: - DWidget is_ui_widget: true object_names: -- passwdEdit - ensureBtn +- passwdEdit accessible_names: [] -dtk_instantiations: [] +dtk_instantiations: +- DPasswordEdit +action_texts: [] +menu_actions: [] --- class_name: HandleMenu -source_file: reader/widgets/HandleMenu.cpp +source_file: widgets/HandleMenu.cpp base_classes: - DMenu -is_ui_widget: false +is_ui_widget: true object_names: - defaultshape - handleshape accessible_names: [] dtk_instantiations: [] +action_texts: +- Hand Tool +- Select Text +menu_actions: [] --- class_name: PagingWidget -source_file: reader/widgets/PagingWidget.cpp +source_file: widgets/PagingWidget.cpp base_classes: - BaseWidget is_ui_widget: false object_names: -- Edit_Page_P - Edit_Page -- thumbnailPreBtn +- Edit_Page_P - thumbnailNextBtn +- thumbnailPreBtn accessible_names: +- Button_ThumbnailNext +- Button_ThumbnailPre +- CurrentPage - Label_TotalPage - Page - pageEdit -- Button_ThumbnailPre -- Button_ThumbnailNext -- CurrentPage -dtk_instantiations: [] +dtk_instantiations: +- DIconButton +- DLabel +- DLineEdit +action_texts: [] +menu_actions: [] --- class_name: TextEditShadowWidget -source_file: reader/widgets/TextEditWidget.cpp +source_file: widgets/TextEditWidget.cpp base_classes: - DWidget is_ui_widget: true @@ -76,9 +104,11 @@ object_names: - TextEditShadowWidget accessible_names: [] dtk_instantiations: [] +action_texts: [] +menu_actions: [] --- class_name: TransparentTextEdit -source_file: reader/widgets/TransparentTextEdit.cpp +source_file: widgets/TransparentTextEdit.cpp base_classes: - QTextEdit is_ui_widget: true @@ -86,3 +116,5 @@ object_names: - TransparentTextEdit accessible_names: [] dtk_instantiations: [] +action_texts: [] +menu_actions: [] diff --git a/tests/at/suite-cases.yaml b/tests/at/suite-cases.yaml index 10bbc4dc..4f7309f3 100644 --- a/tests/at/suite-cases.yaml +++ b/tests/at/suite-cases.yaml @@ -1,634 +1,3771 @@ version: '1.0' metadata: - source: 文档查看器V25-用例.xlsx → cases_raw.yaml - normalized_at: '2026-07-16' - normalizer: LLM-assisted + human review + source: tests/casefile/文档查看器V25-用例.xlsx → cases_raw.yaml + normalized_at: '2026-08-20' + normalizer: AI-assisted non_gui_cases: - count: 12 - reason: ll-cli terminal commands, not GUI automation + count: 34 + reason: terminal commands, touchscreen/trackpad, stress/performance case_ids: - - case_1704991 - - case_1704989 + - case_1580803 - case_1704987 - - case_1704985 + - case_1580811 + - case_1580807 + - case_1580491 + - case_1580755 + - case_1704965 + - case_1580831 - case_1704983 - - case_1704981 - - case_1704975 - - case_1704971 + - case_1580981 + - case_1580837 + - case_1580829 - case_1704969 + - case_1580815 + - case_1704975 + - case_1580833 + - case_1580965 + - case_1580813 + - case_1704985 - case_1704967 - - case_1704965 + - case_1704989 + - case_1704971 + - case_1704991 + - case_1580999 + - case_1580817 + - case_1580835 + - case_1581003 + - case_1580889 + - case_1704981 + - case_1580805 + - case_1580809 - case_1704963 + - case_1580995 + - case_1580997 cases: -- id: suite_main_no_doc - name: 主界面 — 无文档打开 — 打开文件 +- id: suite_001 + name: 文档打开 — 打开各类格式文档 status: active annotation: - 测试界面: 主界面 — 无文档打开 - 测试功能: 打开文件 - 前置条件: deepin-reader 已启动,未打开任何文档 - AT元素引用: Button_SelectFile + 测试界面: 文档区域 + 测试功能: 打开各类格式文档 + 前置条件: deepin-reader 已启动,准备打开文档 + AT元素引用: Form_CentralDocPage, Form_DocTabBar, Form_DMainWindow steps: - step_type: action - description: 启动 deepin-reader,不打开任何文档 + description: 启动 deepin-reader action: session_start - - step_type: assert - description: 主界面显示打开文件按钮(Button_SelectFile) - element_ref: n6 - selector: - name: Button_SelectFile - action: assert_visible - - step_type: action - description: 点击打开文件按钮 - element_ref: n6 - selector: - name: Button_SelectFile - role: button - action: click - - step_type: assert - description: 弹出系统文件选择对话框 - action: assert_visible -- id: suite_sidebar_tabs - name: 左侧栏 — 按钮切换 — 缩略图/目录/书签/注释 - status: active - annotation: - 测试界面: 左侧栏 — 按钮切换 - 测试功能: 侧边栏四个功能按钮切换(缩略图/目录/书签/注释) - 前置条件: deepin-reader 已打开一个 PDF 文档 - AT元素引用: Button_thumbnail, Button_catalog, Button_bookmark, Button_annotation, Button_search, View_CatalogTree, Button_BookmarkAdd, Button_NotesAdd - steps: - step_type: action - description: 打开文档,展开左侧栏,点击缩略图按钮 - element_ref: n14 - selector: - name: Button_thumbnail - role: check box - action: click - - step_type: assert - description: 显示缩略图视图,含页数输入框和翻页按钮 - element_ref: n14 - selector: - name: Button_thumbnail - role: check box - action: assert_checked - - step_type: action - description: 点击目录按钮 - element_ref: n15 - selector: - name: Button_catalog - role: check box - action: click - - step_type: assert - description: 显示目录视图(View_CatalogTree) - element_ref: n163 - selector: - name: View_CatalogTree - action: assert_visible - - step_type: action - description: 点击书签按钮 - element_ref: n16 - selector: - name: Button_bookmark - role: check box - action: click - - step_type: assert - description: 显示书签视图,含添加书签按钮(Button_BookmarkAdd) - element_ref: n22 - selector: - name: Button_BookmarkAdd - action: assert_visible - - step_type: action - description: 点击注释按钮 - element_ref: n17 - selector: - name: Button_annotation - role: check box - action: click - - step_type: assert - description: 显示注释视图,含添加注释按钮(Button_NotesAdd) - element_ref: n49 - selector: - name: Button_NotesAdd - action: assert_visible -- id: suite_sidebar_thumbnails - name: 左侧栏 — 缩略图视图 — 分页导航 - status: active - annotation: - 测试界面: 左侧栏 — 缩略图视图 - 测试功能: 缩略图分页导航 - 前置条件: deepin-reader 已打开一个多页 PDF 文档,左侧栏展开且选中缩略图视图 - AT元素引用: pageEdit, Button_ThumbnailPre, Button_ThumbnailNext, DLineEditChildLineEdit - steps: + description: 1. 打开文档,分别查看右侧和底部进度条显示 - step_type: action - description: 删除底部页数框(pageEdit)中的数值 - element_ref: n156 - selector: - name: pageEdit - role: text - action: clear + description: 2. 切换至深色,打开文档,分别查看右侧和底部进度条显示 - step_type: action - description: 点击窗口内其他位置 - action: click - - step_type: assert - description: 输入框中应该再次显示最近一次的数据 - element_ref: n156 - selector: - name: pageEdit - action: assert_visible -- id: suite_tab_management - name: 顶部标签页栏 — 添加/滚动/切换 - status: active - annotation: - 测试界面: 顶部标签页栏 - 测试功能: 标签页添加、滚动、关闭 - 前置条件: deepin-reader 已打开一个 PDF 文档 - AT元素引用: normal.pdf, DTabBarAddButton, 向左滚动, 向右滚动 - steps: + description: 1. 显示清晰,无异常 - step_type: action - description: 点击新建标签页按钮(DTabBarAddButton) - element_ref: n213 - selector: - name: DTabBarAddButton - role: button - action: click - - step_type: assert - description: 标签栏需全部占满,无空出区域;标签页最小140px - element_ref: n209 - selector: - name: normal.pdf - action: assert_visible - - step_type: action - description: 点击左移按钮 - element_ref: n211 - selector: - name: 向左滚动 - role: button - action: click - - step_type: assert - description: 标签页正常向左滚动 - element_ref: n211 - selector: - name: 向左滚动 - action: assert_visible - - step_type: action - description: 点击右移按钮 - element_ref: n212 - selector: - name: 向右滚动 - role: button - action: click - - step_type: assert - description: 标签页正常向右滚动 - element_ref: n212 - selector: - name: 向右滚动 - action: assert_visible -- id: suite_titlebar_search - name: 标题栏搜索框 — 关键字输入/清除/搜索 - status: active - annotation: - 测试界面: 标题栏搜索框 - 测试功能: 搜索关键字输入、清除、搜索执行 - 前置条件: deepin-reader 已打开一个 PDF 文档 - AT元素引用: DLineEditChildLineEdit, DLineEditClearButton, DSearchEditIconButton - steps: + description: 2. 显示清晰,无异常 - step_type: action - description: 点击搜索框输入关键字 - element_ref: n243 - selector: - name: DLineEditChildLineEdit - role: text - action: input + description: 1. 重命名文档,在名称中按tab键 - step_type: action - description: 点击键盘enter键搜索 - action: keyboard_press_key - - step_type: assert - description: 正常显示搜索结果 - action: assert_visible - - step_type: action - description: 点击搜索框右侧清除按钮(DLineEditClearButton) - element_ref: n244 - selector: - name: DLineEditClearButton - role: button - action: click - - step_type: assert - description: 可以正常关闭搜索,搜索框和搜索结果都会消失 - action: assert_not_visible -- id: suite_titlebar_scale - name: 标题栏缩放输入框 — 缩放比例输入 - status: active - annotation: - 测试界面: 标题栏缩放输入框 - 测试功能: 缩放比例输入 - 前置条件: deepin-reader 已打开一个 PDF 文档 - AT元素引用: DLineEditChildLineEdit - steps: + description: 2. 重命名文档,在名称中按enter键 - step_type: action - description: 点击百分比图标编辑框输入数值 - element_ref: n227 - selector: - name: DLineEditChildLineEdit - role: text - action: click - - step_type: action - description: 输入新的缩放比例 - element_ref: n227 - selector: - name: DLineEditChildLineEdit - role: text - action: input - - step_type: assert - description: 文档按输入的缩放比例显示 - action: assert_visible -- id: suite_sidebar_catalog - name: 左侧栏 — 目录视图 — 目录树显示和点击跳转 - status: active - annotation: - 测试界面: 左侧栏 — 目录视图 - 测试功能: 目录树显示和点击跳转 - 前置条件: deepin-reader 已打开一个有目录的 PDF 文档,左侧栏展开且选中目录视图 - AT元素引用: Button_catalog, View_CatalogTree - steps: + description: 3. 重命名文档,在名称中按空格键,再打开此文档 - step_type: action - description: 展开左侧栏,点击目录按钮 - element_ref: n15 - selector: - name: Button_catalog - role: check box - action: click - - step_type: assert - description: 显示目录树(View_CatalogTree) - element_ref: n163 - selector: - name: View_CatalogTree - action: assert_visible - - step_type: action - description: 点击目录树中任意一个目录项 - element_ref: n163 - selector: - name: View_CatalogTree - role: tree - action: click + description: 4. 重命名文档,在名称中输入特殊字符、标点符号(%# ,。等),再打开此文档 + - step_type: action + description: 1. 按tab键不起作用 + - step_type: action + description: 2. 按enter键不起作用 + - step_type: action + description: 3. 正常打开 + - step_type: action + description: 4. 正常打开 + - step_type: action + description: 1. 仅打开一个文档查看器窗口,打开文档,点击最小化 + - step_type: action + description: 2. 双击另一份文档 + - step_type: action + description: 1. 最小化至任务栏 + - step_type: action + description: 2. 窗口重新在桌面打开,另一份文档打开显示在同一个窗口中 + - step_type: action + description: 1. 打开文档,默认百分比100%,快速滑动页面,查看 + - step_type: action + description: 2. 打开文档,调整百分比为10%,快速滑动页面,查看 + - step_type: action + description: 1. 界面显示正常,不会出现加载时长过长现象 + - step_type: action + description: 2. 界面显示正常,不会出现加载时长过长现象 + - step_type: action + description: 1. 选中多个PDF格式文档,右键菜单选择打开 + - step_type: action + description: 2. 选中多个DJVU格式文档,右键菜单选择打开 + - step_type: action + description: 3. 选中多个DOCX格式文档,右键菜单选择打开 + - step_type: action + description: 1. 正常打开所有选择的文档 + - step_type: action + description: 2. 正常打开所有选择的文档 + - step_type: action + description: 3. 正常打开所有选择的文档 + - step_type: action + description: 1. 打开文档,按Ctrl+鼠标滚轮,上滑 + - step_type: action + description: 2. 打开文档,按Ctrl+鼠标滚轮,下滑 + - step_type: action + description: 3. 打开文档,按Ctrl+“+”, + - step_type: action + description: 4. 打开文档,按Ctrl+“-”, + - step_type: action + description: 1. 文档正常进行放大,放大过程流畅,无闪烁 + - step_type: action + description: 2. 文档正常进行缩小,缩小过程流畅,无闪烁 + - step_type: action + description: 3. 文档正常进行放大,放大过程流畅,无闪烁 + - step_type: action + description: 4. 文档正常进行缩小,缩小过程流畅,无闪烁 + - step_type: action + description: 1. 打开文档,鼠标滚轮滑动,查看显示 + - step_type: action + description: 2. 打开文档,拖拽右侧和底部滚动条 + - step_type: action + description: 1. 页面翻页流畅,无闪烁 + - step_type: action + description: 2. 页面翻页流畅,无闪烁 + - step_type: action + description: 1. 打开文档,双页显示,拖拽窗口,查看 + - step_type: action + description: 2. 打开文档,适应高度,拖拽窗口,查看 + - step_type: action + description: 3. 打开文档,适应宽度,拖拽窗口,查看 + - step_type: action + description: 4. 打开文档,左旋转,拖拽窗口,查看 + - step_type: action + description: 5. 打开文档,右旋转,拖拽窗口,查看 + - step_type: action + description: 1. 界面显示顺畅,无闪烁、重影现象 + - step_type: action + description: 2. 界面显示顺畅,无闪烁、重影现象 + - step_type: action + description: 3. 界面显示顺畅,无闪烁、重影现象 + - step_type: action + description: 4. 界面显示顺畅,无闪烁、重影现象 + - step_type: action + description: 5. 界面显示顺畅,无闪烁、重影现象 + - step_type: action + description: 1. 打开文档,分别从上下左右、四个边角拖动改变窗口大小 + - step_type: action + description: 2. 打开文档,双页显示,分别从上下左右、四个边角拖动改变窗口大小 + - step_type: action + description: 3. 打开文档,适应高度,分别从上下左右、四个边角拖动改变窗口大小 + - step_type: action + description: 4. 打开文档,适应宽度,分别从上下左右、四个边角拖动改变窗口大小 + - step_type: action + description: 1. 窗口变化正常,界面显示正常,不会出现闪烁等异常 + - step_type: action + description: 2. 窗口变化正常,界面显示正常,不会出现闪烁等异常 + - step_type: action + description: 3. 窗口变化正常,界面显示正常,不会出现闪烁等异常;页面始终适应高度显示 + - step_type: action + description: 4. 窗口变化正常,界面显示正常,不会出现闪烁等异常;页面始终适应宽度显示 + - step_type: action + description: 1. 已添加文档,查看顶部工具栏的显示 + - step_type: action + description: 2. 点击菜单键,查看包含的菜单项 + - step_type: action + description: 3. 查看文档区域显示 + - step_type: action + description: 4. 展开左边栏,查看底部图标 + - step_type: action + description: '1.' + - step_type: action + description: 2. 包含的菜单有:新窗口、新标签页、保存、另存为、在文件管理器显示、放大镜、工具、打印、主题、帮助、关于、退出 + - step_type: action + description: 3. 左边栏缩略图默认收起,右侧文档首次打开默认显示第一页 + - step_type: action + description: 4. 显示缩略图图标和书签图标,显示无异常 + - step_type: action + description: 1. 在文件夹中双击一个docx文档 + - step_type: action + description: 2. 在文件夹中右击一个docx文档,选择打开方式为:文档查看器 + - step_type: action + description: 3. 拖拽一个docx文档至初始页面 + - step_type: action + description: 4. 打开应用,点击“选择文件”进行选择:进入文件选择页面,选择一个docx文档,点击打开 + - step_type: action + description: 5. 初始界面按Ctrl+O键,选择一个docx文档打开 + - step_type: action + description: 6. 打开应用,点击菜单列表中的“新标签页”菜单,选择一个docx文档打开 + - step_type: action + description: 7. 已打开文档后,点击标签栏右侧的+菜单 + - step_type: action + description: '1.' + - step_type: action + description: '2.' + - step_type: action + description: '3.' + - step_type: action + description: '4.' + - step_type: action + description: '5.' + - step_type: action + description: '6.' + - step_type: action + description: '7.' + - step_type: action + description: 1. 1.选中多个docx文档,右键菜单选择打开 + - step_type: action + description: 1. 正常打开所有选择的文档 + - step_type: action + description: 1. 初始界面按Ctrl+O键 + - step_type: action + description: 2. 文件选择页面点击取消,或者点击ESC键,查看是否退出文件选择界面 + - step_type: action + description: 1. 弹出文件选择界面 + - step_type: action + description: 2. 退出文件选择界面 + - step_type: action + description: 1. 打开应用,选中三种格式文档(docx、pdf、djvu)拖拽至窗口中,查看 + - step_type: action + description: 2. 打开应用,点击“选择文件”进行选择:进入文件选择页面,选中三种格式文档(docx、pdf、djvu)打开 + - step_type: action + description: 3. 初始界面按Ctrl+O键,进入文件选择页面,选中三种格式文档(docx、pdf、djvu)打开 + - step_type: action + description: 4. 打开应用,点击菜单列表中的“新标签页”菜单,选中三种格式文档(docx、pdf、djvu)打开 + - step_type: action + description: 5. 已打开文档后,点击标签栏右侧的+菜单,三种格式文档(docx、pdf、djvu)打开 + - step_type: action + description: 1. pdf和djvu格式直接打开,docx格式文档转化为pdf打开 + - step_type: action + description: 2. pdf和djvu格式直接打开,docx格式文档转化为pdf打开 + - step_type: action + description: 3. pdf和djvu格式直接打开,docx格式文档转化为pdf打开 + - step_type: action + description: 4. pdf和djvu格式直接打开,docx格式文档转化为pdf打开 + - step_type: action + description: 5. pdf和djvu格式直接打开,docx格式文档转化为pdf打开 + - step_type: action + description: 1. 打开docx文档,查看界面显示 + - step_type: action + description: '1.0' - step_type: assert - description: 右侧文档跳转到对应页面 - action: assert_visible -- id: suite_sidebar_bookmarks - name: 左侧栏 — 书签视图 — 添加书签 + description: 确认应用运行正常 +- id: suite_002 + name: 文档打开 — 打开各类格式文档 (续1) status: active annotation: - 测试界面: 左侧栏 — 书签视图 - 测试功能: 添加书签 - 前置条件: deepin-reader 已打开一个 PDF 文档,左侧栏展开且选中书签视图 - AT元素引用: Button_bookmark, Button_BookmarkAdd + 测试界面: 文档区域 + 测试功能: 打开各类格式文档 + 前置条件: deepin-reader 已启动,准备打开文档 + AT元素引用: Form_CentralDocPage, Form_DocTabBar, Form_DMainWindow steps: - step_type: action - description: 切换到书签视图 - element_ref: n16 - selector: - name: Button_bookmark - role: check box - action: click - - step_type: action - description: 点击添加书签按钮 - element_ref: n22 - selector: - name: Button_BookmarkAdd - role: button - action: click + description: 1. 在文档查看器应用中打开一份docx文档 + - step_type: action + description: 2. 文档未编辑,点击工具栏关闭按钮或“退出”菜单 + - step_type: action + description: 3. 文档编辑后,点击工具栏关闭按钮或“退出”菜单 + - step_type: action + description: 1. 检查所有保存的文档,编辑内容都正确保存 + - step_type: action + description: 2. 是否保存弹框的文案改为“是否保存对文档xxx的编辑” + - step_type: action + description: '3.' + - step_type: action + description: 1. 单个窗口中打开三份docx文档,全部未编辑,点击工具栏中的关闭,查看 + - step_type: action + description: 1. 窗口直接关闭,无提示弹出 + - step_type: action + description: 1. 打开docx文档,文档未编辑,按快捷键Ctrl+S + - step_type: action + description: 2. 打开docx文档,文档编辑后,按快捷键Ctrl+S + - step_type: action + description: 3. 打开docx文档,文档编辑后,按快捷键Ctrl+Shift+S + - step_type: action + description: 1. 无提示语弹出 + - step_type: action + description: 2. 弹出另存为界面,可以修改文件名进行另存 + - step_type: action + description: 3. 弹出另存为界面,可以修改文件名进行另存 + - step_type: action + description: 1. 打开一份docx文档,编辑后不保存,重启电脑 + - step_type: action + description: 2. 打开一份docx文档,编辑后不保存,注销电脑 + - step_type: action + description: 3. 打开一份docx文档,编辑后不保存,关机 + - step_type: action + description: 1. 会弹出“文档未保存”的提示,点击“取消”返回桌面编辑内容不消失,点击“重启”继续重启编辑内容不会被保存 + - step_type: action + description: 2. 会弹出“文档未保存”的提示,点击“取消”返回桌面编辑内容不消失,点击“注销”PC会注销,编辑内容不会被保存 + - step_type: action + description: 3. 会弹出“文档未保存”的提示,点击“取消”返回桌面编辑内容不消失,点击“关机”PC 会关机,编辑内容不会被保存 + - step_type: action + description: 1. 打开一份docx文档,编辑后另存为新的pdf文档,原docx文档关闭,重启电脑 + - step_type: action + description: 2. 打开一份docx文档,编辑后另存为新的pdf文档,原docx文档关闭,关机 + - step_type: action + description: 3. 打开一份docx文档,编辑后另存为新的pdf文档,原docx文档关闭,注销 + - step_type: action + description: 1. 无“文档未保存”的提示弹出,直接进入重启;再次开机,另存后的pdf文档中编辑内容不会消失 + - step_type: action + description: 2. 无“文档未保存”的提示弹出,直接关机。再次开机,另存后的pdf文档中编辑内容不会消失 + - step_type: action + description: 3. 无“文档未保存”的提示弹出,直接注销。再次开机,另存后的pdf文档中编辑内容不会消失 + - step_type: action + description: 1. 打开文档,编辑后关闭,查看提示语显示 + - step_type: action + description: 1. 弹出是否保存弹框,提示语为 是否保存对“xxx”的编辑 + - step_type: action + description: 1. 进入设置添加新的用户 + - step_type: action + description: 2. 切换至新的用户,检查文档查看器版本和基本功能 + - step_type: action + description: '1.' + - step_type: action + description: 2. 版本正确,基本功能正常 + - step_type: action + description: 1. 刷机后首次双击PDF格式文档 + - step_type: action + description: 2. 刷机后首次双击DJVU格式文档 + - step_type: action + description: 3. 刷机后首次双击DOCX格式文档 + - step_type: action + description: 1. 若有其他支持的应用,可能使用文档查看器打开;如无,直接通过文档查看器应用打开。 + - step_type: action + description: 2. 若有其他支持的应用,可能使用文档查看器打开;如无,直接通过文档查看器应用打开 + - step_type: action + description: 3. 若有其他支持的应用,可能使用文档查看器打开;如无,直接通过文档查看器应用打开 - step_type: assert - description: 当前页正常添加书签,左边栏显示书签缩略图 - action: assert_visible -- id: suite_titlebar_main_menu - name: 标题栏主菜单 — 所有菜单项导航 + description: 确认应用运行正常 +- id: suite_003 + name: 主菜单 — 主菜单功能验证 status: active annotation: 测试界面: 标题栏主菜单 - 测试功能: 主菜单所有菜单项导航测试 - 前置条件: deepin-reader 已打开一个 PDF 文档 - AT元素引用: Button_SelectFile + 测试功能: 主菜单功能验证 + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素引用: DTitlebarMainMenu, DTitlebarDWindowOptionButton, 新窗口, 新标签页 steps: - step_type: action - description: 启动 deepin-reader 并打开文档 + description: 启动 deepin-reader action: session_start - step_type: action - description: 打开主菜单,选择"新建窗口" - action: dtk_main_menu - items: - - 新建窗口 - - step_type: action - description: 打开主菜单,选择"新建标签页" - action: dtk_main_menu - items: - - 新建标签页 - - step_type: action - description: 打开主菜单,选择"保存" - action: dtk_main_menu - items: - - 保存 - - step_type: action - description: 打开主菜单,选择"另存为" - action: dtk_main_menu - items: - - 另存为 - - step_type: action - description: 打开主菜单,选择"在文件管理器中显示" - action: dtk_main_menu - items: - - 在文件管理器中显示 - - step_type: action - description: 打开主菜单,选择"放大镜" - action: dtk_main_menu - items: - - 放大镜 - - step_type: action - description: 打开主菜单,选择"工具" -> "选择文本" - action: dtk_main_menu - items: - - 工具 - - 选择文本 - - step_type: action - description: 打开主菜单,选择"工具" -> "手型工具" - action: dtk_main_menu - items: - - 工具 - - 手型工具 - - step_type: action - description: 打开主菜单,选择"搜索" - action: dtk_main_menu - items: - - 搜索 - - step_type: action - description: 打开主菜单,选择"打印" - action: dtk_main_menu - items: - - 打印 - - step_type: assert - description: 菜单操作后应用仍正常响应 - action: assert_visible -- id: suite_context_menu_doc - name: 右键文档区域菜单 — 所有菜单项 - status: active - annotation: - 测试界面: 右键文档区域菜单 - 测试功能: 文档右键菜单所有菜单项 - 前置条件: deepin-reader 已打开一个 PDF 文档 - AT元素引用: Form_CentralDocPage - steps: + description: 1. 打开文档,添加书签或注释 - step_type: action - description: 启动 deepin-reader 并打开文档 - action: session_start + description: 2. 点击主菜单查看 - step_type: action - description: 在文档区域右键,选择"搜索" - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 搜索 - - step_type: action - description: 在文档区域右键,选择"添加书签" - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 添加书签 - - step_type: action - description: 在文档区域右键,选择"添加注释" - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 添加注释 - - step_type: action - description: 在文档区域右键,选择"全屏" - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 全屏 - - step_type: action - description: 在文档区域右键,选择"幻灯片放映" - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 幻灯片放映 - - step_type: action - description: 在文档区域右键,选择"首页" - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 首页 - - step_type: action - description: 在文档区域右键,选择"上一页" - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 上一页 - - step_type: action - description: 在文档区域右键,选择"下一页" - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 下一页 - - step_type: action - description: 在文档区域右键,选择"末页" - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 末页 - - step_type: action - description: 在文档区域右键,选择"左旋转" - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 左旋转 - - step_type: action - description: 在文档区域右键,选择"右旋转" - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 右旋转 - - step_type: action - description: 在文档区域右键,选择"打印" - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 打印 - - step_type: action - description: 在文档区域右键,选择"文档信息" - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 文档信息 - - step_type: assert - description: 右键菜单操作后应用仍正常响应 - action: assert_visible -- id: suite_context_menu_scale - name: 右键缩放区域菜单 — 所有菜单项 - status: active - annotation: - 测试界面: 右键缩放区域菜单 - 测试功能: 缩放菜单所有菜单项 - 前置条件: deepin-reader 已打开一个 PDF 文档 - AT元素引用: DLineEditChildLineEdit - steps: + description: 3. 打开文档,添加书签或注释,按键盘中Ctrl+S键,关闭再打开文档查看是否可以保存 - step_type: action - description: 启动 deepin-reader 并打开文档 - action: session_start + description: 4. 关闭再打开文档查看是否可以保存 - step_type: action - description: 在缩放输入区域右键,选择"双页视图" - action: dtk_context_menu - selector: - name: DLineEditChildLineEdit - items: - - 双页视图 - - step_type: action - description: 在缩放输入区域右键,选择"实际大小" - action: dtk_context_menu - selector: - name: DLineEditChildLineEdit - items: - - 实际大小 - - step_type: action - description: 在缩放输入区域右键,选择"适合页面" - action: dtk_context_menu - selector: - name: DLineEditChildLineEdit - items: - - 适合页面 - - step_type: action - description: 在缩放输入区域右键,选择"适合高度" - action: dtk_context_menu - selector: - name: DLineEditChildLineEdit - items: - - 适合高度 - - step_type: action - description: 在缩放输入区域右键,选择"适合宽度" - action: dtk_context_menu - selector: - name: DLineEditChildLineEdit - items: - - 适合宽度 - - step_type: assert - description: 缩放菜单操作后应用仍正常响应 - action: assert_visible -- id: suite_context_menu_note - name: 右键侧栏注释菜单 — 所有菜单项 - status: active - annotation: - 测试界面: 右键侧栏注释菜单 - 测试功能: 注释右键菜单所有菜单项 - 前置条件: deepin-reader 已打开一个 PDF 文档且侧栏有注释 - AT元素引用: View_ImageList - steps: + description: 1. 添加成功 - step_type: action - description: 启动 deepin-reader 并打开文档 - action: session_start + description: 2. 保存菜单高亮显示 + - step_type: action + description: 3. 保存成功 + - step_type: action + description: 4. 书签和注释可以被保存 + - step_type: action + description: 1. 添加或删除书签、高亮、注释,点击右上角关闭按钮 + - step_type: action + description: 2. 点击弹框中的“不保存” - step_type: action - description: 在侧栏注释列表右键,选择"复制" - action: dtk_context_menu - selector: - name: View_ImageList - items: - - 复制 - - step_type: action - description: 在侧栏注释列表右键,选择"删除注释" - action: dtk_context_menu - selector: - name: View_ImageList - items: - - 删除注释 - - step_type: action - description: 在侧栏注释列表右键,选择"删除全部" - action: dtk_context_menu - selector: - name: View_ImageList - items: - - 删除全部 + description: 3. 点击弹框中的“保存” + - step_type: action + description: 1. 弹出是否保存的弹框,点击取消,停留在当前页面 + - step_type: action + description: 2. 应用关闭,编辑的内容不会被保存 + - step_type: action + description: 3. 应用关闭,编辑的内容都会被保存 + - step_type: action + description: 1. 打开文档,分别点击最小化. 最大化. 关闭菜单 + - step_type: action + description: 1. 当前页面正常最小化. 最大化. 关闭退出 + - step_type: action + description: 1. 打开一份文档,不作任何修改,点击菜单中退出,查看 + - step_type: action + description: 2. 修改文档中内容,点击菜单中的退出,弹出弹框提示是否同意保存,分别点击取消、不保存、保存 + - step_type: action + description: 3. 打开一份文档,不作任何修改,按快捷键Alt+F4或Alt+空格并选择关闭,查看 + - step_type: action + description: 4. 修改文档中内容,按快捷键Alt+F4或Alt+空格并选择关闭,弹出弹框提示是否同意保存,分别点击取消、不保存、保存 + - step_type: action + description: 1. 直接退出,无提示 + - step_type: action + description: 2. 可以正常取消退出、保存并关闭、不保存并关闭 + - step_type: action + description: 3. 直接退出,无提示 + - step_type: action + description: 4. 可以正常取消退出、保存并关闭、不保存并关闭 + - step_type: action + description: 1. 点击工具栏中的菜单键,再点击关于 + - step_type: action + description: 1. 进入关于页面,界面显示正确,最后一行为:“文档查看器是一款支持PDF,DJVU,DOCX等多种格式的文档阅读工具。” + - step_type: action + description: 1. 打开软件,使用快捷键F1,查看系统显示 + - step_type: action + description: 2. 点击工具栏中的菜单键,再点击帮助,查看系统显示 + - step_type: action + description: '1.' + - step_type: action + description: 2. 1&2. 进入帮助页面,界面显示正确 + - step_type: action + description: 1. 点击工具栏中的菜单键,鼠标放置在主题菜单上 + - step_type: action + description: 1. 弹出三个主题菜单:浅色、深色、跟随主题,点击后应用相应主题 + - step_type: action + description: 1. 点击工具栏中的菜单键,再点击在文件管理器中显示菜单 + - step_type: action + description: 1. 进入当前文档所在的文件夹,并显示文档查看器中当前浏览的文档 + - step_type: action + description: 1. 打开文档,添加高亮、书签或注释,点击工具栏中的菜单键,再点击另存为 + - step_type: action + description: 2. 点击打开新文档,查看高亮、书签、注释等内容是否均被保存 + - step_type: action + description: 3. 关闭旧文档,弹出是否保存的提示框,分别点击保存和不保存按钮 + - step_type: action + description: 1. 弹出系统文件弹框,弹出文档选择器,输入名字可将文件保存为新的文件 + - step_type: action + description: 2. 文档中编辑内容都被保存 + - step_type: action + description: 3. 点击不保存,编辑内容不会被保存;点击保存,编辑内容会被保存 + - step_type: action + description: 1. 点击工具栏中的菜单键,再点击新标签页 + - step_type: action + description: 1. 可以打开一个新标签页 + - step_type: action + description: 1. 打开一个文档查看器窗口进入初始界面,点击菜单中的“新窗口”菜单查看是否添加新窗口 + - step_type: action + description: 2. 打开一份文档,点击菜单中的“新窗口”菜单查看是否添加新窗口 + - step_type: action + description: 3. 新窗口中未添加文档时查看各菜单显示并点击 + - step_type: action + description: 4. 新窗口中添加文档后查看各菜单显示并点击 + - step_type: action + description: 1. 正常添加新窗口 + - step_type: action + description: 2. 正常添加新窗口,前一个打开的文档仍保留开启状态 + - step_type: action + description: 3. 工具栏左侧按钮均置灰显示点击无作用;右侧菜单中新窗口、新标签页、主题、帮助、关于、退出菜单高亮显示点击后功能正常,其他菜单置灰显示点击无作用 + - step_type: action + description: 4. 工具栏、左边栏菜单均可点击,功能正常,文档中高亮和图标方式添加注释功能正常 + - step_type: action + description: 1. 使用放大镜功能时,按键盘上的ESC键 + - step_type: action + description: 2. 使用放大镜功能时,点击鼠标右键 + - step_type: action + description: 1. 可以取消放大镜功能 + - step_type: action + description: 2. 可以取消放大镜功能 + - step_type: action + description: 1. 点击菜单中放大镜菜单查看是否可以使用放大镜 + - step_type: action + description: 2. 鼠标移动到页面中相应区域(包括文字和图片),查看有无放大作用 + - step_type: action + description: 3. 查看放大镜是否可以移动到左边栏或标题、标签栏位置 + - step_type: action + description: 1. 可以使用放大镜 + - step_type: action + description: 2. 该区域内容(包括文字和图片)放大 + - step_type: action + description: 3. 无法移动至左边栏或标题、标签栏位置 + - step_type: action + description: 1. 编辑文档,点击保存或按Ctrl+S,查看 + - step_type: action + description: 2. 不关闭文档,再次编辑文档,点击保存或按Ctrl+S,查看 + - step_type: action + description: 1. 正常保存 + - step_type: action + description: 2. 正常保存 + - step_type: action + description: 1. 添加高亮/注释/书签,点击另存为 + - step_type: action + description: 2. 不改变名称,点击“保存”按钮 + - step_type: action + description: 3. 点击“替换”按钮 + - step_type: action + description: 4. 点击文档查看器应用关闭按钮 + - step_type: action + description: 5. 再次打开替换后的文档 + - step_type: action + description: 1. 弹出保存文档界面 + - step_type: action + description: 2. 弹出是否替换文档弹框 + - step_type: action + description: 3. 新编辑的文档正常替换原文档 + - step_type: action + description: 4. 直接关闭应用 + - step_type: action + description: 5. 界面显示正常,添加的高亮/注释/书签保存正常 - step_type: assert - description: 注释菜单操作后应用仍正常响应 - action: assert_visible -- id: suite_context_menu_bookmark - name: 右键侧栏书签菜单 — 所有菜单项 + description: 确认应用运行正常 +- id: suite_004 + name: 主菜单 — 主菜单功能验证 (续1) status: active annotation: - 测试界面: 右键侧栏书签菜单 - 测试功能: 书签右键菜单所有菜单项 - 前置条件: deepin-reader 已打开一个 PDF 文档且侧栏有书签 - AT元素引用: View_ImageList + 测试界面: 标题栏主菜单 + 测试功能: 主菜单功能验证 + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素引用: DTitlebarMainMenu, DTitlebarDWindowOptionButton, 新窗口, 新标签页 steps: - step_type: action - description: 启动 deepin-reader 并打开文档 + description: 1. 打开终端,输入 apt show deepin-reader,查看debian/control文件description字段,长、短描述 + - step_type: action + description: 1. 描述与文案相符 + - step_type: action + description: 1. 打开已添加过书签、高亮、注释的文档,不编辑,点击工具栏中的菜单键,再点击另存为 + - step_type: action + description: 2. 点击打开新文档,查看内容显示是否正常,原有的书签、高亮、注释是否改变 + - step_type: action + description: 3. 关闭旧文档 + - step_type: action + description: 1. 弹出系统文件弹框,弹出文档选择器,输入名字可将文件保存为新的文件 + - step_type: action + description: 2. 内容显示是否正常,原有的书签、高亮、注释无改变 + - step_type: action + description: 3. 旧文档被直接关闭,不会弹出是否保存的提示框 + - step_type: action + description: 1. 检查如下路径下 /usr/share/deepin-manual/manual-assets/application下是否存在deepin-reader文件夹 + - step_type: action + description: 2. 打开deepin-reader文件夹进入document-viewer/zh_CN ,查看document-viewer.md中内容显示 + - step_type: action + description: 3. 帮助手册更新到最新版本,查看应用图标显示是否正确 + - step_type: action + description: 4. 打开文档查看器,点击帮助菜单,查看文案是否正确 + - step_type: action + description: 1. 存在deepin-reader文件夹 + - step_type: action + description: 2. 首行显示为:# 文档查看器 | deepin-reader + - step_type: action + description: 3. 显示正确 + - step_type: action + description: 4. 文案正确 + - step_type: action + description: 1. 打开窗口A和窗口B-> 在窗口A中打开关于窗口,并关闭窗口A + - step_type: action + description: 2. 窗口B中点击“关于”菜单,查看 + - step_type: action + description: 1. 窗口A关闭 + - step_type: action + description: 2. 正常查看 + - step_type: action + description: 1. 打开放大镜后缓慢移动查看 + - step_type: action + description: 2. 在高分屏中切换分辨率后移动放大镜查看 + - step_type: action + description: 1. 界面显示正常,无抖动现象 + - step_type: action + description: 2. 界面显示正常,无抖动现象 + - step_type: action + description: 1. 打开文档,点击主菜单再点击“打印”菜单 + - step_type: action + description: 2. 打印预览界面默认选择“存为PDF”,页码范围是“全部”,点击保存菜单,进入选择路径界面,选择后保存 + - step_type: action + description: 3. 打印预览界面默认选择“存为PDF”,页码范围选择“当前页”,点击保存菜单,进入选择路径界面,选择后保存 + - step_type: action + description: 4. 打印预览界面默认选择“存为PDF”,页码范围选择“指定页面”,点击保存菜单,进入选择路径界面,选择后保存 + - step_type: action + description: 1. 弹出打印预览界面 + - step_type: action + description: 2. 打印预览界面关闭,进入文件保存的路径,打开打印后的文档,显示正确 + - step_type: action + description: 3. 打印预览界面关闭,进入文件保存的路径,打开打印后的文档,仅显示当前的1页 + - step_type: action + description: 4. 打印预览界面关闭,进入文件保存的路径,打开打印后的文档,仅显示指定的页面 + - step_type: action + description: 1. 打开文档,点击主菜单再点击“打印”菜单 + - step_type: action + description: 2. 打印预览界面默认选择“另存为图片”,页码范围是“全部”,点击保存菜单,进入选择路径界面,选择后保存 + - step_type: action + description: 3. 打印预览界面默认选择“另存为图片”,页码范围选择“当前页”,点击保存菜单,进入选择路径界面,选择后保存 + - step_type: action + description: 4. 打印预览界面默认选择“另存为图片”,页码范围选择“指定页面”,点击保存菜单,进入选择路径界面,选择后保存 + - step_type: action + description: 1. 弹出打印预览界面 + - step_type: action + description: 2. 打印预览界面关闭,进入文件保存的路径,打开另存的图片文件夹,显示全部页面图片 + - step_type: action + description: 3. 打印预览界面关闭,进入文件保存的路径,打开打印后的文档,仅显示当前的1页图片 + - step_type: action + description: 4. 打印预览界面关闭,进入文件保存的路径,打开打印后的文档,仅显示指定的页面图片 + - step_type: action + description: 1. 打开文档查看器 + - step_type: action + description: 2. 点击主菜单弹出菜单列表,点击“新窗口”菜单 + - step_type: action + description: 3. 重复步骤2 + - step_type: action + description: '1.' + - step_type: action + description: 2. 弹出一个新窗口 + - step_type: action + description: 3. 继续弹出新窗口,窗口数量限制在20个以内,窗口不会重叠在一起 + - step_type: assert + description: 确认应用运行正常 +- id: suite_005 + name: 窗口管理 — 窗口最小化/最大化/关闭 + status: active + annotation: + 测试界面: 标题栏窗口按钮 + 测试功能: 窗口最小化/最大化/关闭 + 前置条件: deepin-reader 已启动 + AT元素引用: DTitlebarDWindowMinButton, DTitlebarDWindowMaxButton, DTitlebarDWindowCloseButton, + DTitlebarDWindowQuitFullscreenButton + steps: + - step_type: action + description: 启动 deepin-reader + action: session_start + - step_type: action + description: 1. 调整窗口大小,查看界面显示 + - step_type: action + description: 2. 手动拖拽目录边框,查看界面显示 + - step_type: action + description: 1. 左边栏区域和右侧文档区域始终保持约1:3的比例变化,左边栏文档、书签、注释、搜索结果缩略图大小跟随变化,左边栏宽度范围:266px~380px + - step_type: action + description: 2. 左边栏文档、书签、注释、搜索结果缩略图大小跟随变化,左边栏宽度范围:266px~380px + - step_type: action + description: 1. 检查窗口尺寸 + - step_type: action + description: 2. 打开新窗口,检查新窗口尺寸 + - step_type: action + description: 3. 检查各个子页面 + - step_type: action + description: 1. 应用窗口尺寸680*300 + - step_type: action + description: 2. 新窗口尺寸为默认尺寸 + - step_type: action + description: 3. 无遮挡、无压缩变形 + - step_type: action + description: 1. 窗口最大化之后再点击最小化按钮 + - step_type: action + description: 1. 窗口尺寸为最小窗口680*300 + - step_type: action + description: 1. 关闭后再次打开应用 + - step_type: action + description: 1. 窗口尺寸为最小窗口680*300 + - step_type: assert + description: 确认应用运行正常 +- id: suite_006 + name: 操作 — 文档浏览、缩放、翻页等基本操作 + status: active + annotation: + 测试界面: 文档区域/标题栏 + 测试功能: 文档浏览、缩放、翻页等基本操作 + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素引用: Form_CentralDocPage, Form_DMainWindow, Button_ThumbnailToggle + steps: + - step_type: action + description: 启动 deepin-reader + action: session_start + - step_type: action + description: 1. 展开左边栏,删除底部页数框中的数值,再点击窗口内外其他位置 + - step_type: action + description: 2. 删除百分比数值框中的数值,再点击窗口内外其他位置 + - step_type: action + description: 1. 输入框中应该再次显示最近一次的数据 + - step_type: action + description: 2. 输入框中应该再次显示最近一次的数据 + - step_type: action + description: 1. 打开文档,查看默认百分比显示 + - step_type: action + description: 2. 切换到双页显示 + - step_type: action + description: 3. 再切到单页显示 + - step_type: action + description: 4. 单页显示时打开左边栏 + - step_type: action + description: 5. 双页页显示时打开左边栏 + - step_type: action + description: 1. 默认显示单页,100%比例 + - step_type: action + description: 2. 页面适配,无截断显示 + - step_type: action + description: 3. 页面适配,无截断显示 + - step_type: action + description: 4. 页面适配,无截断显示 + - step_type: action + description: 5. 页面适配,无截断显示 + - step_type: action + description: 1. 输入关键字并搜索 + - step_type: action + description: 2. 按键盘Backspace键删除关键字,重新输入其他关键字并搜索 + - step_type: action + description: 3. 点击搜索框中的上下键切换 + - step_type: action + description: 1. 左边栏弹出搜索结果缩略图,文档中关键字被选中 + - step_type: action + description: 2. 左边栏正常显示新的搜索结果缩略图,不会叠加显示,右侧文档中显示正常 + - step_type: action + description: 3. 左边栏和右侧文档中显示均正确 + - step_type: action + description: 1. 点击搜索框最右侧X,查看 + - step_type: action + description: 1. 可以正常关闭搜索,搜索框和搜索结果都会消失 + - step_type: action + description: 1. 点击关键字右侧的X,查看显示 + - step_type: action + description: 2. 全选关键字,按delete键,或者按backspace删除关键字,查看界面显示 + - step_type: action + description: 1. 搜索框中的关键字被删除,关键字旁边的X消失,搜索结果被关闭,搜索弹框不会关闭,可以继续输入关键字 + - step_type: action + description: 2. 只有关键字被删除,界面无变化,搜索结果不会被删除 + - step_type: action + description: 1. 搜索弹框中未输入任何内容,点击键盘Enter键,查看界面显示 + - step_type: action + description: 1. 界面无任何改变 + - step_type: action + description: 1. 在搜索框输入关键字搜索,且文档中无此关键字,查看界面显示 + - step_type: action + description: 1. 左边栏显示“无搜索结果”,右侧文档无变化 + - step_type: action + description: 1. 点击左边栏任意一个搜索结果缩略图,查看页面显示 + - step_type: action + description: 2. 左边栏页面超过一页时,滑动滑鼠,查看页面显示 + - step_type: action + description: 1. 点击的搜索结果缩略图显示选中状态,右侧文档跳转到相应页面,页面中所有关键字保持高亮 + - step_type: action + description: 2. 页面正常滑动显示 + - step_type: action + description: 1. 点击搜索框手动输入关键字,点击键盘enter键搜索,查看搜索结果显示 + - step_type: action + description: 2. 点击上一个按钮 + - step_type: action + description: 3. 点击下一个按钮 + - step_type: action + description: 1. 正常显示搜索结果 + - step_type: action + description: 2. 正常切换关键字,选中的关键字自动添加绿色高亮效果 + - step_type: action + description: 3. 正常切换关键字,选中的关键字自动添加绿色高亮效果 + - step_type: action + description: 1. 在主菜单中选择搜索,查看界面显示 + - step_type: action + description: 2. 右击未选中文本或空白区域,弹出右键菜单项,选择搜索,查看界面显示 + - step_type: action + description: 1. 弹出搜索弹框,搜索框中显示搜索字样、搜索框右侧显示上一个、下一个按钮、关闭图标 + - step_type: action + description: 2. 弹出搜索弹框,搜索框中显示搜索字样、搜索框右侧显示上一个、下一个按钮、关闭图标 + - step_type: action + description: 1. 跨页选中文本添加高亮 + - step_type: action + description: 2. 右击高亮文本选择“取消高亮” + - step_type: action + description: 1. 可以正常添加跨页高亮 + - step_type: action + description: 2. 仅可取消当前页高亮 + - step_type: action + description: 1. 文本已高亮显示,重叠选中另一段文本,右击未高亮区域添加颜色,查看 + - step_type: action + description: 1. 出现两段重叠颜色,重叠部分为混合色 + - step_type: action + description: 1. 选中/不选中已高亮的文本,点击右键菜单中“取消高亮”菜单,查看是否可以取消高亮 + - step_type: action + description: 1. 可以正常取消高亮 + - step_type: action + description: 1. 选中文本,右击选择一种高亮颜色(如:蓝色) + - step_type: action + description: 2. 不关闭应用,右击另一段高亮文本,右击弹出右键菜单查看 + - step_type: action + description: 3. 选中文本,右击选择一种高亮颜色(如:蓝色) + - step_type: action + description: 4. 不关闭应用,选择另一段未高亮文本,右击弹出右键菜单查看 + - step_type: action + description: 1. 文本添加蓝色高亮 + - step_type: action + description: 2. 右键菜单中蓝色图标仍为选中状态,点击“高亮”菜单,文本切换为蓝色高亮 + - step_type: action + description: 3. 文本添加蓝色高亮 + - step_type: action + description: 4. 右键菜单中蓝色图标仍为选中状态,点击“高亮”菜单,文本添加蓝色高亮 + - step_type: action + description: 1. 选中已高亮的文本,右击这段文本,点击右键菜单中任意颜色圈图标进行切换,查看 + - step_type: action + description: 2. 不选中已高亮的文本,右击这段文本,点击右键菜单中任意颜色圈图标进行切换,查看是否可以切换 + - step_type: action + description: 3. 选中一段未高亮的文本,右击这段文本,点击右键菜单中任意颜色圈图标添加高亮,查看 + - step_type: action + description: 4. 再次右击这段文本,选择其他颜色进行切换,查看是否切换成功 + - step_type: action + description: 1. 每点击一种颜色,会叠加成混合色 + - step_type: action + description: 2. 可以正常切换高亮颜色 + - step_type: action + description: 3. 可以正常添加高亮 + - step_type: action + description: 4. 可以正常切换高亮颜色 + - step_type: assert + description: 确认应用运行正常 +- id: suite_007 + name: 操作 — 文档浏览、缩放、翻页等基本操作 (续1) + status: active + annotation: + 测试界面: 文档区域/标题栏 + 测试功能: 文档浏览、缩放、翻页等基本操作 + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素引用: Form_CentralDocPage, Form_DMainWindow, Button_ThumbnailToggle + steps: + - step_type: action + description: 1. 添加高亮后,查看“高亮”菜单和“取消高亮”菜单显示,查看颜色圈图标是否可以继续点击切换颜色 + - step_type: action + description: 1. “高亮”菜单置灰,“取消高亮”菜单可点击,颜色圈图标可继续点击切换颜色 + - step_type: action + description: 1. 选中一段未高亮文字,查看取消高亮菜单是否置灰 + - step_type: action + description: 2. 点击右键菜单中的高亮菜单添加 + - step_type: action + description: 1. 取消高亮菜单置灰 + - step_type: action + description: 2. 可以添加高亮,添加的高亮颜色为当前颜色圈图标选中的颜色 + - step_type: action + description: 1. 首次打开文档,选中多行文本右击,查看默认选中的颜色圈图标 + - step_type: action + description: 2. 切换颜色后,选中多行文本右击,关闭文档再打开,查看默认的颜色图标 + - step_type: action + description: 1. 默认选中橘黄色图标 + - step_type: action + description: 2. 默认选中橘黄色图标 + - step_type: action + description: 1. 点击选择图标,在下拉框中选择手型图标 + - step_type: action + description: 2. 鼠标移动到左边栏和右侧文档并点击 + - step_type: action + description: 3. 长按鼠标,查看能否拖动页面 + - step_type: action + description: 1. 工具栏显示手型工具图标 + - step_type: action + description: 2. 鼠标移动到左边栏仍显示选择样式,点击可选择任意缩略图和按钮;鼠标移动到右侧文档显示为手型样式,无法选择文本;鼠标移动到链接内容仍显示为手型样式,点击无法进入相应链接 + - step_type: action + description: 3. 可以拖动页面 + - step_type: action + description: 1. 文档打开后,查看默认使用的工具 + - step_type: action + description: 2. 鼠标移动到左边栏和右侧文档并点击 + - step_type: action + description: 3. 长按鼠标,查看能否拖动页面 + - step_type: action + description: 1. 默认使用选择工具,工具栏显示选择工具图标 + - step_type: action + description: 2. 鼠标移动到非可选文档处仍显示选择样式,点击可选择任意缩略图和按钮;鼠标移动到右侧文档变成竖形选择文本图标,可以选择文本;鼠标移动到链接内容显示为手型样式,点击进入相应链接 + - step_type: action + description: 3. 无法拖动页面 + - step_type: action + description: 1. 点击下拉框,选择百分比选项 + - step_type: action + description: 2. 点击+、-按钮 + - step_type: action + description: 1. 文档行相应百分比大小调整 + - step_type: action + description: 2. 缩放比例调整为列表中相邻比例选项进行调整 + - step_type: action + description: 1. 点击编辑框,输入10%-500%范围内任意百分比值(可以输小数点,小数点保留2位),按enter键,查看文档显示 + - step_type: action + description: 2. 点击+、-按钮, + - step_type: action + description: 1. 文档进行相应百分比大小调整,按enter键后输入框中内容无截断显示 + - step_type: action + description: 2. 缩放比例调整为列表中最靠近该比例的比例选项进行调整 + - step_type: action + description: 1. 查看工具栏中的百分比图标显示 + - step_type: action + description: 2. 点击编辑框中的下拉按钮,查看显示的百分比选项 + - step_type: action + description: 1. 显示带有下拉按钮的编辑框,编辑框左右两侧显示+-按钮;显示效果与设计图一致 + - step_type: action + description: 2. 点击下拉框显示12个百分比选项:10%、25%、50%、75%、100%、125%、150%、175%、200%、300%、400%、500%;显示效果与设计图一致 + - step_type: action + description: 1. 调整文档百分比大小,按ctrl1查看 + - step_type: action + description: 2. 调整文档百分比大小为任意值,且双页显示/左旋转/右旋转,按ctrl1查看 + - step_type: action + description: 3. 调整文档百分比大小为任意值,且双页显示/左旋转/右旋转,按ctrl2或适应高度菜单查看 + - step_type: action + description: 4. 调整文档百分比大小为任意值,且双页显示/左旋转/右旋转,按ctrl3或适应宽度菜单查看 + - step_type: action + description: 5. 分别按ctrl1、ctrl2、ctrl3 + - step_type: action + description: 1. 文档显示为100%大小 + - step_type: action + description: 2. 文档显示为100%大小,双页显示/左旋转/右旋转状态不会变化 + - step_type: action + description: 3. 文档高度全部显示在当前页面,双页显示/左旋转/右旋转状态不会变化 + - step_type: action + description: 4. 文档宽度全部显示在当前页面,双页显示/左旋转/右旋转状态不会变化 + - step_type: action + description: 5. 文档在实际大小、适应高度、适应宽度菜状态之间正常切换 + - step_type: action + description: 1. 百分比与比例选择列表中不匹配(大多数情况),点击+、-按钮 + - step_type: action + description: 2. 百分比与比例选择列表中匹配(少部分情况),点击+、-按钮 + - step_type: action + description: 1. 缩放比例调整为列表中最靠近该比例的比例选项进行调整 + - step_type: action + description: 2. 缩放比例调整为列表中相邻比例选项进行调整 + - step_type: action + description: 1. 文档已调整为适合宽度状态,选择适合高度或按快捷键Ctrl2 + - step_type: action + description: 2. 文档已调整为适合宽度状态,在工具栏缩放比例图标中选择一个比例 + - step_type: action + description: 3. 文档已调整为适合宽度状态,在工具栏缩放比例图标中手动编辑一个比例 + - step_type: action + description: 4. 文档已调整为适合宽度状态,按快捷键Ctrl1 + - step_type: action + description: 1. 进入适合高度状态,适合宽度被取消勾选,文档百分比显示正确 + - step_type: action + description: 2. 文档显示选择的比例,适合宽度取消勾选 + - step_type: action + description: 3. 文档显示编辑的比例,适合宽度取消勾选 + - step_type: action + description: 4. 文档恢复默认大小,适合宽度取消勾选 + - step_type: action + description: 1. 文档已调整为适合高度状态,选择适合宽度或按快捷键Ctrl3 + - step_type: action + description: 2. 文档已调整为适合高度状态,在工具栏缩放比例图标中选择一个比例 + - step_type: action + description: 3. 文档已调整为适合高度状态,在工具栏缩放比例图标中手动编辑一个比例 + - step_type: action + description: 4. 文档已调整为适合高度状态,按快捷键Ctrl1 + - step_type: action + description: 1. 进入适合宽度状态,适合高度被勾选 + - step_type: action + description: 2. 文档显示选择的比例,适合高度取消勾选 + - step_type: action + description: 3. 文档显示编辑的比例,适合高度取消勾选 + - step_type: action + description: 4. 文档恢复默认大小,适合高度取消勾选 + - step_type: action + description: 1. 打开一份PDF文档,未展开左边栏,关闭应用再打开 + - step_type: action + description: 2. 打开一份PDF文档,展开左边栏,关闭应用再打开 + - step_type: action + description: 3. 打开一份PDF文档,浏览文档,如当前页数为:5,关闭应用再打开 + - step_type: action + description: 1. 左边栏保持隐藏状态 + - step_type: action + description: 2. 左边栏保持展开状态 + - step_type: action + description: 3. 页面仍停留在页数5 + - step_type: action + description: 1. 窗口中只有一个标签页,分别点击调整百分比/双页视图/适应宽度/适应高度/左旋转/右旋转,关闭应用再进入查看 + - step_type: action + description: 2. 窗口中有多个标签页,分别点击调整百分比/双页视图/适应宽度/适应高度/左旋转/右旋转,关闭应用再进入查看 + - step_type: action + description: 3. 窗口中只有一个标签页,分别点击调整百分比/双页视图/适合宽度/适合高度/左旋转/右旋转,关闭标签页,不关闭应用,再次打开文档查看 + - step_type: action + description: 4. 窗口中有多标签页,分别点击调整百分比/双页视图/适合宽度/适合高度/左旋转/右旋转,关闭标签页,不关闭应用,再次打开文档查看 + - step_type: action + description: 1. 保持退出之前的状态 + - step_type: action + description: 2. 保持退出之前的状态 + - step_type: action + description: 3. 保持退出之前的状态 + - step_type: action + description: 4. 保持退出之前的状态 + - step_type: action + description: 1. 文档单页显示时,改变工具栏百分比大小,查看文档内容变化 + - step_type: action + description: 2. 文档单页显示时,使用Ctrl+滚轮或Ctrl++/Ctrl--改变文档大小,查看工具栏百分比数值变化 + - step_type: action + description: 3. 文档双页显示时,改变工具栏百分比大小,查看文档内容变化 + - step_type: action + description: 4. 文档双页显示时,使用Ctrl+滚轮或Ctrl++/Ctrl--改变文档大小,查看工具栏百分比数值变化 + - step_type: action + description: 1. 文档内容大小同步变化 + - step_type: action + description: 2. 工具栏百分比数值同步变化 + - step_type: action + description: 3. 文档内容大小同步变化 + - step_type: action + description: 4. 工具栏百分比数值同步变化 + - step_type: assert + description: 确认应用运行正常 +- id: suite_008 + name: 操作 — 文档浏览、缩放、翻页等基本操作 (续2) + status: active + annotation: + 测试界面: 文档区域/标题栏 + 测试功能: 文档浏览、缩放、翻页等基本操作 + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素引用: Form_CentralDocPage, Form_DMainWindow, Button_ThumbnailToggle + steps: + - step_type: action + description: 1. 默认文档比例进入双页显示,再切换大小窗口和窗口比例 + - step_type: action + description: 2. 调整适合宽度,再切换大小窗口和窗口比例 + - step_type: action + description: 3. 调整适合高度,再切换大小窗口和窗口比例 + - step_type: action + description: 4. 左旋转,再切换大小窗口和窗口比例 + - step_type: action + description: 5. 右旋转,再切换大小窗口和窗口比例 + - step_type: action + description: 1. 保持双页显示,文档百分比显示正常,不会出现闪退等异常 + - step_type: action + description: 2. 保持适合宽度,文档百分比显示正常,不会出现闪退等异常 + - step_type: action + description: 3. 保持适合高度,文档百分比显示正常,不会出现闪退等异常 + - step_type: action + description: 4. 保持左旋转,文档百分比显示正常,不会出现闪退等异常 + - step_type: action + description: 5. 保持右旋转,文档百分比显示正常,不会出现闪退等异常 + - step_type: action + description: 1. 选择任意百分比(如:35%),再切换窗口大小 + - step_type: action + description: 2. 点击适合宽度,再切换窗口大小 + - step_type: action + description: 3. 点击适合高度,再切换窗口大小 + - step_type: action + description: 4. 选择任意百分比(如:35%),左旋转,且未选择适合高度/适合宽度,再切换窗口大小 + - step_type: action + description: 5. 选择任意百分比(如:35%),右旋转,且未选择适合高度/适合宽度,再切换窗口大小 + - step_type: action + description: 6. 选择任意百分比(如:35%),左旋转,且选择适合高度/适合宽度,再切换窗口大小 + - step_type: action + description: 7. 选择任意百分比(如:35%),右旋转,且选择适合高度/适合宽度,再切换窗口大小 + - step_type: action + description: 1. 百分比大小不会改变,界面显示正常 + - step_type: action + description: 2. 保持适合宽度,文档百分比相应改变,不会出现闪退等异常 + - step_type: action + description: 3. 保持适合高度,文档百分比相应改变,不会出现闪退等异常 + - step_type: action + description: 4. 百分比大小不会改变,界面显示正常 + - step_type: action + description: 5. 百分比大小不会改变,界面显示正常 + - step_type: action + description: 6. 保持适合高/宽度,文档百分比相应改变,不会出现闪退等异常 + - step_type: action + description: 7. 保持适合高/宽度,文档百分比相应改变,不会出现闪退等异常 + - step_type: action + description: 1. 首次打开文档,查看文档默认显示效果 + - step_type: action + description: 2. 点击双页显示 + - step_type: action + description: 3. 点击适合宽度 + - step_type: action + description: 4. 点击适合高度 + - step_type: action + description: 5. 点击左旋转 + - step_type: action + description: 6. 点击右旋转 + - step_type: action + description: 1. 默认为单页,适合页面 + - step_type: action + description: 2. 进入双页显示模式 + - step_type: action + description: 3. 页面宽度在视窗内全部显示 + - step_type: action + description: 4. 页面高度在视窗内全部显示 + - step_type: action + description: 5. 仅当前页面正常进行左旋转,左边栏和工具栏不会翻转,旋转效果顺畅 + - step_type: action + description: 6. 仅当前页面正常进行右旋转,左边栏和工具栏不会翻转,旋转效果顺畅 + - step_type: action + description: 1. 打开文档,鼠标不点击,任意移动,按键盘上下键或pageup/pagedown + - step_type: action + description: 2. 点击工具栏任意菜单(除去百分比菜单)后,按键盘上下键或pageup/pagedown + - step_type: action + description: 3. 点击百分比或页数输入框后,按键盘上下键或pageup/pagedown + - step_type: action + description: 4. 展开左边栏,鼠标点击左边栏区域后任意移动,按键盘上下键或pageup/pagedown + - step_type: action + description: 5. 鼠标点击右侧文档区域后任意移动,按键盘上下键或pageup/pagedown + - step_type: action + description: 6. 鼠标点击窗口外桌面区域,,按键盘上下键或pageup/pagedown + - step_type: action + description: 1. 焦点默认在文档中,文档正常逐行翻页/逐页翻页 + - step_type: action + description: 2. 焦点仍然默认在文档中,文档正常逐行翻页/逐页翻页 + - step_type: action + description: 3. 焦点在输入框,文档不会进行翻页 + - step_type: action + description: 4. 焦点在左侧,缩略图进行翻页 + - step_type: action + description: 5. 焦点在右侧,文档进行翻页 + - step_type: action + description: 6. 焦点在桌面中,选中桌面应用 + - step_type: action + description: 1. 选中一个书签/注释缩略图,鼠标任意移动后,按键盘delete键 + - step_type: action + description: 2. 选中一个书签/注释缩略图,鼠标点击右侧文档区域后,按键盘delete键 + - step_type: action + description: 3. 选中一个书签/注释缩略图,点击百分比或页数输入框,按键盘delete键 + - step_type: action + description: 1. 正常删除书签/注释缩略图 + - step_type: action + description: 2. 无法删除签/注释缩略图 + - step_type: action + description: 3. 无法删除签/注释缩略图 + - step_type: action + description: 1. 点击适合高度/适合宽度/调整百分比,查看 + - step_type: action + description: 2. 添加书签和注释 + - step_type: action + description: 1. 界面显示正常 + - step_type: action + description: 2. 显示正常 + - step_type: action + description: 1. 隐藏侧边栏时,进入全屏 + - step_type: action + description: 2. 展开侧边栏时,进入全屏 + - step_type: action + description: 1. 侧边栏和标题栏自动隐藏 + - step_type: action + description: 2. 侧边栏和标题栏自动隐藏 + - step_type: action + description: 1. 进入全屏,鼠标移到窗口顶端,查看是否在1秒内呼唤出工具栏; + - step_type: action + description: 2. 鼠标移出标题栏区域,查看是否在1秒内隐藏出工具栏; + - step_type: action + description: 1. 1秒内可以呼唤出工具栏; + - step_type: action + description: 2. 1秒内自动隐藏工具栏; + - step_type: action + description: 1. 全屏前打开了左侧栏再进入全屏,鼠标移动到窗口侧边 + - step_type: action + description: 2. 鼠标移出侧边栏区域 + - step_type: action + description: 1. 1秒钟呼唤出侧边栏 + - step_type: action + description: 2. 1秒钟自动隐藏侧边栏 + - step_type: action + description: 1. 全屏前隐藏了左侧栏再进入全屏,鼠标移动到窗口侧边 + - step_type: action + description: 2. 鼠标移出侧边栏区域 + - step_type: action + description: 1. 1秒内呼唤出侧边栏; + - step_type: action + description: 2. 1秒内自动隐藏侧边栏 + - step_type: action + description: 1. 全屏后唤出工具栏,未唤出侧边栏时,点击缩略图图标 + - step_type: action + description: 2. 全屏后唤出工具栏和侧边栏时,点击缩略图图标 + - step_type: action + description: 1. 缩略图图标高亮显示,鼠标移动到左侧栏不会隐藏左侧栏 + - step_type: action + description: 2. 缩略图图标高亮显示,鼠标移动到左侧栏不会隐藏左侧栏 + - step_type: action + description: 1. 打开文档,不选中文本右击,弹出右键菜单,点击全屏菜单 + - step_type: action + description: 2. 打开文档,按F11键 + - step_type: action + description: '1.' + - step_type: action + description: 2. 1&2.进入全屏界面,隐藏“标题栏”和“侧边栏” + - step_type: action + description: 1. 进入全屏,鼠标移到窗口顶端 + - step_type: action + description: 2. 鼠标移出标题栏区域 + - step_type: action + description: 1. 1秒钟内呼唤出工具栏,当存在两个标签页时,工具栏和标签栏同时被唤出 + - step_type: action + description: 2. 1秒钟内自动隐藏工具栏和标签栏; + - step_type: action + description: 1. 打开文档,展开侧边栏,点击全屏菜单 + - step_type: action + description: 2. 鼠标移动到窗口侧边 + - step_type: action + description: 3. 鼠标移出侧边栏区域 + - step_type: action + description: 1. 进入全屏界面,侧边栏隐藏 + - step_type: action + description: 2. 1秒内呼唤出侧边栏,“侧边栏”按钮为非选中状态,底部选中的按钮与全屏前一致 + - step_type: action + description: 3. 自动隐藏侧边栏 + - step_type: action + description: 1. 进入全屏显示,唤出工具栏 + - step_type: action + description: 2. 点击工具栏中的“侧边栏”按钮,查看界面显示 + - step_type: action + description: 3. 再次点击“侧边栏”按钮,查看 + - step_type: action + description: 1. 工具栏正常唤出 + - step_type: action + description: 2. “侧边栏”按钮高亮显示,左侧栏固定显示,鼠标移出左侧栏不会隐藏左侧栏 + - step_type: action + description: 3. 左侧栏被隐藏 + - step_type: assert + description: 确认应用运行正常 +- id: suite_009 + name: 操作 — 文档浏览、缩放、翻页等基本操作 (续3) + status: active + annotation: + 测试界面: 文档区域/标题栏 + 测试功能: 文档浏览、缩放、翻页等基本操作 + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素引用: Form_CentralDocPage, Form_DMainWindow, Button_ThumbnailToggle + steps: + - step_type: action + description: 1. 进入全屏显示,先唤出侧边栏,再将鼠标移至左侧栏顶端区域 + - step_type: action + description: 2. 点击工具栏中的“侧边栏”按钮 + - step_type: action + description: 3. 再次点击“侧边栏”按钮,查看 + - step_type: action + description: 1. 侧边栏和工具栏同时唤出 + - step_type: action + description: 2. “侧边栏”按钮高亮显示,左侧栏固定显示,鼠标移出左侧栏不会隐藏左侧栏 + - step_type: action + description: 3. 左侧栏被隐藏 + - step_type: action + description: 1. 进入全屏,打开多个标签页,鼠标移至页面顶端查看 + - step_type: action + description: 2. 关闭仅剩余一个标签页,鼠标移至页面顶端查看 + - step_type: action + description: 1. 显示工具栏和标签栏 + - step_type: action + description: 2. 仅显示工具栏,标题显示在工具栏中间 + - step_type: action + description: 1. 进入全屏,点击右上角菜单按钮 + - step_type: action + description: 2. 进入全屏,点击右上角退出全屏按钮 + - step_type: action + description: 3. 进入全屏,点击右上角关闭按钮 + - step_type: action + description: 1. 弹出菜单弹框 + - step_type: action + description: 2. 退出全屏 + - step_type: action + description: 3. 关闭文档 + - step_type: action + description: 1. 进入全屏,点击工具栏右侧退出全屏菜单 + - step_type: action + description: 2. 进入全屏,点击键盘esc按钮 + - step_type: action + description: 3. 进入全屏,按快捷键F1 1 + - step_type: action + description: 4. 进入全屏,右击文档弹出右键菜单,点击“退出全屏” + - step_type: action + description: 1. 退出全屏 + - step_type: action + description: 2. 退出全屏 + - step_type: action + description: 3. 退出全屏 + - step_type: action + description: 4. 退出全屏 + - step_type: action + description: 1. 进入全屏翻页(如:第5页),左侧栏选中第5页文档缩略图,退出全屏查看 + - step_type: action + description: 1. 退出全屏显示后仍显示在第5页 + - step_type: action + description: 1. 进入全屏选中一个目录,退出全屏查看 + - step_type: action + description: 1. 退出全屏左侧栏仍选中此目录 + - step_type: action + description: 1. 进入全屏添加书签,退出全屏后查看 + - step_type: action + description: 1. 书签页数和书签个数无变化 + - step_type: action + description: 1. 进入全屏添加注释,退出全屏后查看 + - step_type: action + description: 1. 注释页数、个数、内容无变化 + - step_type: action + description: 1. 进入全屏选择手型工具,退出全屏后查看 + - step_type: action + description: 1. 仍显示手型工具 + - step_type: action + description: 1. 进入全屏搜索并弹出搜索结果,退出全屏查看 + - step_type: action + description: 1. 搜索结果仍显示 + - step_type: action + description: 1. 仅只打开一份文档,进入再退出全屏,查看标题栏的显示 + - step_type: action + description: 2. 打开多份文档,进入再退出全屏,查看标题栏的显示 + - step_type: action + description: 1. 标题栏的显示无变化 + - step_type: action + description: 2. 标题栏的显示无变化 + - step_type: action + description: 1. 进入全屏调整视图(双页显示、适合页面、默认大小、适应宽度、适应高度、每个百分比),退出后查看 + - step_type: action + description: 1. 退出全屏视图状态无变化,百分比数值相应变化 + - step_type: action + description: 1. 进入全屏,未唤出左侧栏,点击双页显示(适应宽度默认勾选) + - step_type: action + description: 2. 鼠标移出左侧栏再移入 + - step_type: action + description: 1. 界面正常双页显示 + - step_type: action + description: 2. 保持双页显示和适应宽度状态,百分比值改变 + - step_type: action + description: 1. 进入全屏,未唤出左侧栏,点击适应高度 + - step_type: action + description: 2. 鼠标移出左侧栏再移入 + - step_type: action + description: 1. 显示为适应高度状态 + - step_type: action + description: 2. 文档保持适应高度状态 + - step_type: action + description: 1. 进入全屏,未唤出左侧栏,点击适应宽度 + - step_type: action + description: 2. 鼠标移出左侧栏再移入 + - step_type: action + description: 1. 显示为适应宽度状态 + - step_type: action + description: 2. 文档保持适应宽度状态,百分比数值不改变 + - step_type: assert + description: 确认应用运行正常 +- id: suite_010 + name: 操作 — 文档浏览、缩放、翻页等基本操作 (续4) + status: active + annotation: + 测试界面: 文档区域/标题栏 + 测试功能: 文档浏览、缩放、翻页等基本操作 + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素引用: Form_CentralDocPage, Form_DMainWindow, Button_ThumbnailToggle + steps: + - step_type: action + description: 1. 进入全屏,未唤出左侧栏,搜索关键字并弹出搜索结果 + - step_type: action + description: 2. 鼠标移出左侧栏再移入 + - step_type: action + description: 1. 搜索结果缩略图显示,关键字黄色高亮显示,选中的关键字为绿色 + - step_type: action + description: 2. 搜索结果无变化 + - step_type: action + description: 1. 进入全屏,点击左上角左侧栏按钮固定显示左侧栏,点击适合页面 + - step_type: action + description: 2. 收起再展开左侧栏 + - step_type: action + description: 1. 界面显示适合页面状态 + - step_type: action + description: 2. 文档保持适合页面状态 + - step_type: action + description: 1. 进入全屏,点击左上角左侧栏按钮固定显示左侧栏,点击适应高度 + - step_type: action + description: 2. 收起再展开左侧栏 + - step_type: action + description: 1. 显示为适应高度状态 + - step_type: action + description: 2. 文档保持适应高度状态 + - step_type: action + description: 1. 进入全屏,点击左上角左侧栏按钮固定显示左侧栏,点击适应宽度 + - step_type: action + description: 2. 收起再展开左侧栏 + - step_type: action + description: 1. 显示为适应宽度状态 + - step_type: action + description: 2. 文档保持适应宽度状态,百分比数值相应改变 + - step_type: action + description: 1. 进入全屏,点击左上角左侧栏按钮固定显示左侧栏,搜索关键字,左侧弹出搜索结果 + - step_type: action + description: 2. 收起再展开左侧栏 + - step_type: action + description: 1. 搜索结果缩略图显示,关键字黄色高亮显示,选中的关键字为绿色 + - step_type: action + description: 2. 搜索结果无变化 + - step_type: action + description: 1. 进入全屏,未选中文本右击,查看右键菜单显示 + - step_type: action + description: 1. 全屏菜单变成“退出全屏” + - step_type: action + description: 1. 进入全屏,点击右键菜单中的第一页菜单 + - step_type: action + description: 2. 进入全屏,点击右键菜单中的前一页菜单 + - step_type: action + description: 3. 进入全屏,点击右键菜单中的后一页菜单 + - step_type: action + description: 4. 进入全屏,点击右键菜单中的最后一页菜单 + - step_type: action + description: 5. 进入全屏,点击右键菜单中的保存菜单 + - step_type: action + description: 6. 进入全屏,点击右键菜单中的另存为菜单 + - step_type: action + description: 7. 进入全屏,点击右键菜单中的打印菜单 + - step_type: action + description: 8. 进入全屏,点击右键菜单中的幻灯片放映菜单 + - step_type: action + description: 9. 进入全屏,点击右键菜单中的退出菜单 + - step_type: action + description: '1.' + - step_type: action + description: '2.' + - step_type: action + description: '3.' + - step_type: action + description: '4.' + - step_type: action + description: '5.' + - step_type: action + description: '6.' + - step_type: action + description: '7.' + - step_type: action + description: '8.' + - step_type: action + description: 9. 1~9.功能正常 + - step_type: action + description: 1. 搜索完成后,鼠标放置在左侧栏底部四个按钮之上 + - step_type: action + description: 1. 按钮置灰,不应该有hover效果 + - step_type: action + description: 1. 全屏显示界面打开放大镜 + - step_type: action + description: 2. 按esc键 + - step_type: action + description: 1. 正常打开 + - step_type: action + description: 2. 退出放大镜,不会退出全屏显示 + - step_type: action + description: 1. 搜索关键字,当搜索结果较多正在进行时,点新窗口菜单 + - step_type: action + description: 2. 搜索关键字,当搜索结果较多正在进行时,点新标签页菜单 + - step_type: action + description: 3. 搜索关键字,当搜索结果较多正在进行时,点保存菜单 + - step_type: action + description: 4. 搜索关键字,当搜索结果较多正在进行时,点另存为菜单,另存为新文档 + - step_type: action + description: 5. 搜索关键字,当搜索结果较多正在进行时,点击幻灯片放映菜单 + - step_type: action + description: 6. 搜索关键字,当搜索结果较多正在进行时,点击放大镜菜单 + - step_type: action + description: 7. 搜索关键字,当搜索结果较多正在进行时,点击在文件管理器中显示菜单 + - step_type: action + description: 8. 搜索关键字,当搜索结果较多正在进行时,点击在主题菜单 + - step_type: action + description: 9. 搜索关键字,当搜索结果较多正在进行时,点击在帮助菜单 + - step_type: action + description: 10. 搜索关键字,当搜索结果较多正在进行时,点击在关于菜单 + - step_type: action + description: 11. 搜索关键字,当搜索结果较多正在进行时,点击在退出菜单 + - step_type: action + description: 1. 正常弹出新窗口 + - step_type: action + description: 2. 正常弹出文件管理器选择界面 + - step_type: action + description: 3. 正常保存文档 + - step_type: action + description: 4. 可以另存成功 + - step_type: action + description: 5. 进入幻灯片放映界面 + - step_type: action + description: 6. 放大镜正常可以使用 + - step_type: action + description: 7. 可以打开所在文件夹 + - step_type: action + description: 8. 正常切换主题 + - step_type: action + description: 9. 进入帮助手册界面 + - step_type: action + description: 10. 打开关于弹窗 + - step_type: action + description: 11. 退出应用 + - step_type: action + description: 1. 百分比调整到10%,分别点击双页显示、适合宽度、 适合高度、适合页面、 左旋转、 右旋转,查看界面显示 + - step_type: action + description: 2. 百分比调整到500%,分别点击双页显示、适合宽度、 适合高度、适合页面、 左旋转、 右旋转,查看界面显示 + - step_type: action + description: 1. 界面显示正常 + - step_type: action + description: 2. 界面显示正常 + - step_type: action + description: 1. 打开文档,鼠标不点击,任意移动,按键盘上下键或pageup/pagedown + - step_type: action + description: 2. 点击工具栏任意菜单(除去百分比菜单)后,按键盘上下键或pageup/pagedown + - step_type: action + description: 3. 点击百分比或页数输入框后,按键盘上下键或pageup/pagedown + - step_type: action + description: 4. 展开左边栏,鼠标点击左边栏区域后任意移动,按键盘上下键或pageup/pagedown + - step_type: action + description: 5. 鼠标点击右侧文档区域后任意移动,按键盘上下键或pageup/pagedown + - step_type: action + description: 6. 鼠标点击窗口外桌面区域,,按键盘上下键或pageup/pagedown + - step_type: action + description: 1. 焦点默认在文档中,文档正常逐行翻页/逐页翻页 + - step_type: action + description: 2. 焦点转移到工具栏 + - step_type: action + description: 3. 焦点在输入框,文档不会进行翻页 + - step_type: action + description: 4. 焦点在左侧,缩略图进行翻页 + - step_type: action + description: 5. 焦点在右侧,文档进行翻页 + - step_type: action + description: 6. 焦点在桌面中,选中桌面应用 + - step_type: action + description: 1. 打开多份文档并进入全屏 + - step_type: action + description: 2. 全屏界面添加新的文档 + - step_type: action + description: 3. 退出全屏 + - step_type: action + description: 4. 全屏界面关闭部分文档,再退出全屏 + - step_type: action + description: 1. 文档正常显示,不会丢失 + - step_type: action + description: 2. 文档标题正常显示 + - step_type: action + description: 3. 文档正常显示,不会丢失 + - step_type: action + description: 4. 文档正常显示 + - step_type: action + description: 1. 打开文档,打开搜索框,未输入关键词查看界面显示 + - step_type: action + description: 2. 打开文档,打开搜索框,输入关键词未按enter键,查看界面显示 + - step_type: action + description: 3. 打开文档,打开搜索框,输入关键词并按enter键,查看界面显示 + - step_type: action + description: 1. 向上、向下切换按键置灰显示 + - step_type: action + description: 2. 向上、向下切换按键置灰显示 + - step_type: action + description: 3. 向上、向下切换按键高亮显示 + - step_type: action + description: 1. 打开文档,在输入框中输入英文关键字,如:user,按键盘enter键,查看 + - step_type: action + description: 2. 点击搜索框上一个、下一个按钮 + - step_type: action + description: 3. 打开文档,在输入框中输入中文关键字,如:系统,按键盘enter键,查看 + - step_type: action + description: 4. 点击搜索框上一个、下一个按钮 + - step_type: action + description: 1. 搜索结果高亮显示,左侧栏中搜索结果内容与个数显示正确 + - step_type: action + description: 2. 按整个单词跳转,而不是按单个字母跳转;点击“上一个” 、“下一个”按钮均可以起作用,跳转到最后一个关键字后循环切换 + - step_type: action + description: 3. 搜索结果高亮显示,左侧栏中搜索结果个数显示正确 + - step_type: action + description: 4. 按整个词语跳转,而不是按单个字跳转;点击“上一个” 、“下一个”按钮均可以起作用,跳转到最后一个关键字后循环切换 + - step_type: assert + description: 确认应用运行正常 +- id: suite_011 + name: 操作 — 文档浏览、缩放、翻页等基本操作 (续5) + status: active + annotation: + 测试界面: 文档区域/标题栏 + 测试功能: 文档浏览、缩放、翻页等基本操作 + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素引用: Form_CentralDocPage, Form_DMainWindow, Button_ThumbnailToggle + steps: + - step_type: action + description: 1. 打开文档,点击最大化按钮 + - step_type: action + description: 2. 点击右键菜单中的“全屏”菜单 + - step_type: action + description: 3. 右击主视图界面弹出右键菜单,点击“退出全屏”菜单 + - step_type: action + description: 4. 打开文档,显示为默认窗口大小,点击右键菜单中的“全屏”菜单 + - step_type: action + description: 5. 右击主视图界面弹出右键菜单,点击“退出全屏”菜单 + - step_type: action + description: 1. 窗口最大化显示 + - step_type: action + description: 2. 进入全屏显示 + - step_type: action + description: 3. 可以退出全屏显示,窗口需保持最大化显示 + - step_type: action + description: 4. 进入全屏显示 + - step_type: action + description: 5. 可以退出全屏显示,窗口需保持默认大小显示 + - step_type: action + description: 1. 打开文档,点击最大化显示 + - step_type: action + description: 2. 鼠标放置在屏幕顶端,按快捷键F11 + - step_type: action + description: 3. 打开文档,点击最大化显示 + - step_type: action + description: 4. 鼠标放置在屏幕左侧边缘,按快捷键F11 + - step_type: action + description: 1. 文档最大化显示 + - step_type: action + description: 2. 工具栏自动弹出,按钮可点击,不会置灰显示 + - step_type: action + description: 3. 文档最大化显示 + - step_type: action + description: 4. 左侧栏自动弹出,按钮可点击,不会置灰显示 + - step_type: action + description: 1. 打开带有超链接文本的文档,鼠标(默认选择样式)放置在超链接文本之上,查看 + - step_type: action + description: 2. 移走鼠标,查看 + - step_type: action + description: 1. 鼠标显示为手形样式,显示超链接详情浮窗,浮窗立即显示无间隔时长,与UI图相符。浮窗内容无法点击 + - step_type: action + description: 2. 超链接详情浮窗和手形样式消失,鼠标恢复选择样式 + - step_type: action + description: 1. 鼠标放置在超链接文本之上,弹出手形样式和详情浮窗,点击超链接,查看 + - step_type: action + description: 2. 安全提示弹框弹出后,点击关闭按钮 + - step_type: action + description: 3. 安全提示弹框弹出后,点击“阻止”按钮 + - step_type: action + description: 4. 安全提示弹框弹出后,点击“允许”按钮 + - step_type: action + description: 1. 弹出安全提示弹框,弹框中显示关闭、“阻止”、“允许”按钮 + - step_type: action + description: 2. 关闭弹窗,不做任何操作 + - step_type: action + description: 3. 关闭弹窗,不做任何操作 + - step_type: action + description: 4. 关闭弹窗,打开浏览器并跳转至该链接(网页的超链接会打开浏览器,email超链接会打开邮箱应用,多媒体超链接会打开相应的应用) + - step_type: action + description: 1. 安全提示弹框弹出后,点击应用其他菜单 + - step_type: action + description: 1. 点击均无作用 + - step_type: action + description: 1. 点击超链接文本,点击安全提示弹框中的“允许”按钮 + - step_type: action + description: 2. 再次点击此超链接 + - step_type: action + description: 1. 关闭弹窗,打开浏览器并跳转至该链接 + - step_type: action + description: 2. 继续弹出安全提示弹框,点击“允许”按钮,浏览器中重新打开另一个标签页 + - step_type: action + description: 备注:每次点击超链接都会弹出安全提示弹框 + - step_type: action + description: 1. 切换至手形工具,放置在超链接文本之上 + - step_type: action + description: 2. 切换至手形工具,点击超链接文本 + - step_type: action + description: 3. 切换至手形工具,选中超链接文本或普通文本 + - step_type: action + description: 4. 切换至手形工具,右击超链接文本 + - step_type: action + description: 1. 会显示超链接浮窗 + - step_type: action + description: 2. 弹出安全提示弹框,弹框中显示关闭、“阻止”、“允许”按钮,点击各按钮功能正常 + - step_type: action + description: 3. 无法选中超链接文本或普通文本 + - step_type: action + description: 4. 弹出搜索相关的右键菜单 + - step_type: action + description: 1. 不选中,直接右击超链接文本 + - step_type: action + description: 1. 弹出包含搜索等的菜单的右键菜单,点击各菜单功能正常 + - step_type: action + description: 1. 点击超链接弹出安全提示弹框 + - step_type: action + description: 2. 按tab键切换 + - step_type: action + description: '1.' + - step_type: action + description: '2.' + - step_type: action + description: 1. 在新标签页首次打开文档A + - step_type: action + description: 1. 文档A页面视图 默认为适合页面 + - step_type: action + description: 1. 打开文档A且调整页面视图为A(适合页面) + - step_type: action + description: 2. 在新窗口打开文档B + - step_type: action + description: 1. 调整页面视图成功 + - step_type: action + description: 2. 新打开的文档B页面视图为A(适合页面) + - step_type: action + description: 1. 窗口1查看文档C且调整页面视图C(200%),窗口2查看文档D且调整页面视图D(适应宽度) + - step_type: action + description: 2. 两个窗口分别在新标签页打开文档A、文档B + - step_type: action + description: 1. 调整页面视图成功 + - step_type: action + description: 2. 文档A页面视图为A(适合页面),文档B页面视图为B(25%) + - step_type: action + description: 1. 窗口1查看文档C且调整页面视图C(300%),窗口2查看文档D且调整页面视图D(75%) + - step_type: action + description: 2. 分别在两个新窗口打开文档A、文档B + - step_type: action + description: 1. 调整页面视图成功 + - step_type: action + description: 2. 文档A页面视图为A(双页显示、默认大小),文档B页面视图为B(双页显示、500%) + - step_type: assert + description: 确认应用运行正常 +- id: suite_012 + name: 键盘 — 快捷键功能验证 + status: active + annotation: + 测试界面: 文档区域(快捷键) + 测试功能: 快捷键功能验证 + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素引用: Form_CentralDocPage + steps: + - step_type: action + description: 启动 deepin-reader + action: session_start + - step_type: action + description: 1. 打开文档查看器进入首页界面,按tab键查看菜单按钮切换顺序 + - step_type: action + description: 2. 按enter或空格键 + - step_type: action + description: 3. 主菜单弹出后按enter或空格键和上下方向键 + - step_type: action + description: 4. 主菜单弹出后按左右方向键 + - step_type: action + description: 5. 主菜单弹出后按esc键交互操作 + - step_type: action + description: 1. 依次选中主菜单、最小化、最大化、选择文件按钮,focus效果正确 + - step_type: action + description: 2. 执行选择 + - step_type: action + description: 3. 切换和执行选择 + - step_type: action + description: 4. 按左方向键收起子菜单,按右方向键展开子菜单 + - step_type: action + description: 5. 退出菜单,返回到主菜单按钮的选中 + - step_type: action + description: 1. 打开单个文档,未展开左侧栏,按tab键 + - step_type: action + description: 2. 按enter或空格键 + - step_type: action + description: 1. 焦点从工具栏开始,从上至下,从左至右依次切换,focus效果正确 + - step_type: action + description: 2. 执行选择 + - step_type: action + description: 1. 打开单个文档,展开左侧栏,按tab键 + - step_type: action + description: 2. 按enter或空格键 + - step_type: action + description: 1. 焦点从工具栏开始,从上至下,从左至右依次切换,focus效果正确 + - step_type: action + description: 2. 执行选择 + - step_type: action + description: 1. 打开多个文档,未展开左侧栏,按tab键 + - step_type: action + description: 2. 按enter或空格键 + - step_type: action + description: 1. 焦点从工具栏开始,从上至下,从左至右依次切换 + - step_type: action + description: 2. 执行选择 + - step_type: action + description: 1. 打开多个文档,展开左侧栏,按tab键 + - step_type: action + description: 2. 按enter或空格键 + - step_type: action + description: 1. 焦点从工具栏开始,从上至下,从左至右依次切换 + - step_type: action + description: 2. 执行选择 + - step_type: action + description: 1. tab键选中百分比输入框的下拉按钮,按enter或空格键 + - step_type: action + description: 2. 按上下方向键 + - step_type: action + description: 3. 按enter或空格键 + - step_type: action + description: 4. 选中任意菜单时按esc键 + - step_type: action + description: 1. 下拉菜单界面弹出 + - step_type: action + description: 2. 切换选中菜单,选中效果正确 + - step_type: action + description: 3. 执行选择 + - step_type: action + description: 4. 退出菜单,返回到百分比输入框的选中 + - step_type: action + description: 1. tab键选中主菜单,按enter或空格键 + - step_type: action + description: 2. 按上下方向键 + - step_type: action + description: 3. 按enter或空格键 + - step_type: action + description: 4. 按左右方向键 + - step_type: action + description: 5. 选中任意菜单时按esc键 + - step_type: action + description: 1. 下拉菜单界面弹出 + - step_type: action + description: 2. 切换选中菜单,选中效果正确 + - step_type: action + description: 3. 执行选择 + - step_type: action + description: 4. 按左方向键收起子菜单,按右方向键展开子菜单 + - step_type: action + description: 5. 退出菜单,返回到主菜单按钮的选中 + - step_type: action + description: 1. 右击主视图界面 + - step_type: action + description: 2. 按上下方向键 + - step_type: action + description: 3. 按enter或空格键 + - step_type: action + description: 4. 按左右方向键 + - step_type: action + description: 5. 选中任意菜单时按esc键 + - step_type: action + description: 1. 弹出右键菜单 + - step_type: action + description: 2. 切换选中菜单,选中效果正确 + - step_type: action + description: 3. 执行选择 + - step_type: action + description: 4. 按左方向键收起子菜单,按右方向键展开子菜单 + - step_type: action + description: 5. 退出菜单,返回到百分比输入框的选中 + - step_type: action + description: 1. 文档缩略图界面,按上下方向键或pageup、pagedown + - step_type: action + description: 2. 目录界面,按上下方向键或pageup、pagedown + - step_type: action + description: 3. 书签目录界面,按上下方向键或pageup、pagedown,delete键 + - step_type: action + description: 4. 注释目录界面,按上下方向键或pageup、pagedown,delete键 + - step_type: action + description: 1. 正确切换 + - step_type: action + description: 2. 正确切换 + - step_type: action + description: 3. 正确切换,正常删除 + - step_type: action + description: 4. 正确切换,正常删除 + - step_type: action + description: 1. 选中文本,按Alt+M键 + - step_type: action + description: 2. 按上下方向键 + - step_type: action + description: 3. 按enter或空格键 + - step_type: action + description: 4. 按左右方向键 + - step_type: action + description: 5. 选中任意菜单时按esc键 + - step_type: action + description: 1. 弹出右键菜单 + - step_type: action + description: 2. 切换选中菜单,选中效果正确 + - step_type: action + description: 3. 执行选择 + - step_type: action + description: 4. 按左方向键收起子菜单,按右方向键展开子菜单 + - step_type: action + description: 5. 退出菜单,文本仍是选中状态 + - step_type: action + description: 1. 选中一个书签目录,按Alt+M键 + - step_type: action + description: 2. 按上下方向键 + - step_type: action + description: 3. 按enter或空格键 + - step_type: action + description: 4. 按左右方向键 + - step_type: action + description: 5. 选中任意菜单时按esc键 + - step_type: action + description: 1. 弹出右键菜单 + - step_type: action + description: 2. 切换选中菜单,选中效果正确 + - step_type: action + description: 3. 执行选择 + - step_type: action + description: 4. 按左方向键收起子菜单,按右方向键展开子菜单 + - step_type: action + description: 5. 退出菜单,书签目录仍是选中状态 + - step_type: action + description: 1. 选中一个注释目录,按Alt+M键 + - step_type: action + description: 2. 按上下方向键 + - step_type: action + description: 3. 按enter或空格键 + - step_type: action + description: 4. 按左右方向键 + - step_type: action + description: 5. 选中任意菜单时按esc键 + - step_type: action + description: 1. 弹出右键菜单 + - step_type: action + description: 2. 切换选中菜单,选中效果正确 + - step_type: action + description: 3. 执行选择 + - step_type: action + description: 4. 按左方向键收起子菜单,按右方向键展开子菜单 + - step_type: action + description: 5. 退出菜单,注释目录仍是选中状态 + - step_type: action + description: 1. 选中输入框内容,按Alt+M键 + - step_type: action + description: 2. 按上下方向键 + - step_type: action + description: 3. 按enter或空格键 + - step_type: action + description: 4. 按左右方向键 + - step_type: action + description: 5. 选中任意菜单时按esc键 + - step_type: action + description: 1. 弹出右键菜单 + - step_type: action + description: 2. 切换选中菜单,选中效果正确 + - step_type: action + description: 3. 执行选择 + - step_type: action + description: 4. 按左方向键收起子菜单,按右方向键展开子菜单 + - step_type: action + description: 5. 退出菜单,注释目录仍是选中状态 + - step_type: action + description: 1. 点击“删除全部书签” + - step_type: action + description: 2. 对话框界面按tab键切换 + - step_type: action + description: 3. 按回车键 + - step_type: action + description: 4. 选中任意菜单时按esc键 + - step_type: action + description: 1. 弹出对话框界面 + - step_type: action + description: 2. 可以在对话框界面循环切换,focus效果正确 + - step_type: action + description: 3. 执行选中的按钮 + - step_type: action + description: 4. 关闭对话框,焦点返回至选中的书签目录 + - step_type: action + description: 1. 点击“删除全部注释” + - step_type: action + description: 2. 对话框界面按tab键切换 + - step_type: action + description: 3. 按回车键 + - step_type: action + description: 4. 选中任意菜单时按esc键 + - step_type: action + description: 1. 弹出对话框界面 + - step_type: action + description: 2. 可以在对话框界面循环切换,focus效果正确 + - step_type: action + description: 3. 执行选中的按钮 + - step_type: action + description: 4. 关闭对话框,焦点返回至选中的注释目录 + - step_type: assert + description: 确认应用运行正常 +- id: suite_013 + name: 键盘 — 快捷键功能验证 (续1) + status: active + annotation: + 测试界面: 文档区域(快捷键) + 测试功能: 快捷键功能验证 + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素引用: Form_CentralDocPage + steps: + - step_type: action + description: 1. 编辑文档后关闭或退出 + - step_type: action + description: 2. 对话框界面按tab键切换 + - step_type: action + description: 3. 按回车键 + - step_type: action + description: 4. 选中任意按钮时按esc键 + - step_type: action + description: 1. 弹出是否保存对话框 + - step_type: action + description: 2. 可以在对话框界面循环切换,focus效果正确 + - step_type: action + description: 3. 执行选中的按钮 + - step_type: action + description: 4. 关闭对话框 + - step_type: action + description: 1. 不改变文件名保存替换 + - step_type: action + description: 2. 对话框界面按tab键切换 + - step_type: action + description: 3. 按回车键 + - step_type: action + description: 4. 选中任意按钮时按esc键 + - step_type: action + description: '1.' + - step_type: action + description: 2. 可以在对话框界面循环切换,focus效果正确 + - step_type: action + description: 3. 执行选中的按钮 + - step_type: action + description: 4. 关闭对话框 + - step_type: action + description: 1. 搜索框弹出,按tab键切换 + - step_type: action + description: 2. focus每个按钮时分别按回车键 + - step_type: action + description: 1. 正常切换,focus效果正确 + - step_type: action + description: 2. 执行选中的按钮 + - step_type: action + description: 1. 文档信息界面弹出,按tab键切换 + - step_type: action + description: 2. 按回车键 + - step_type: action + description: 3. 选中任意按钮时按esc键 + - step_type: action + description: 1. 选中关闭按钮,focus效果正确 + - step_type: action + description: 2. 执行选中的按钮 + - step_type: action + description: 3. 退出文档信息界面 + - step_type: action + description: 1. 在文件管理器显示弹出,按tab键切换 + - step_type: action + description: 2. 按回车键 + - step_type: action + description: 1. 循环切换,focus效果正确 + - step_type: action + description: 2. 执行选中的按钮 + - step_type: action + description: 1. 文档信息界面弹出,按tab键切换 + - step_type: action + description: 2. 按回车键 + - step_type: action + description: 3. 选中任意按钮时按esc键 + - step_type: action + description: 1. 选中关闭按钮,focus效果正确 + - step_type: action + description: 2. 执行选中的按钮 + - step_type: action + description: 3. 退出关于界面 + - step_type: action + description: 1. 百分比框输入数值,按键盘enter键 + - step_type: action + description: 2. 页码框输入数值,按键盘enter键 + - step_type: action + description: 1. 页面跳转,焦点仍然在百分比框 + - step_type: action + description: 2. 页面跳转,焦点仍然在页码框 + - step_type: action + description: 1. 打开PDF文档,选中文本并右击 + - step_type: action + description: 2. 按键盘上下键,焦点切换 + - step_type: action + description: 1. 弹出右键菜单 + - step_type: action + description: 2. 焦点在每个高亮菜单切换,置灰菜单直接跳过,不会出现焦点消失现象 + - step_type: assert + description: 确认应用运行正常 +- id: suite_014 + name: 标签页 — 标签页新增、切换、关闭 + status: active + annotation: + 测试界面: 顶部标签页栏 + 测试功能: 标签页新增、切换、关闭 + 前置条件: deepin-reader 已启动并打开至少一个文档 + AT元素引用: Form_DocTabBar, DTabBarAddButton, 向左滚动, 向右滚动 + steps: + - step_type: action + description: 启动 deepin-reader + action: session_start + - step_type: action + description: 1. 打开多个标签页,查看显示 + - step_type: action + description: 2. 已打开多个标签页,添加其他标签页 + - step_type: action + description: 3. 点击左移右移按钮 + - step_type: action + description: 1. 标签栏需全部占满,无空出区域;标签页最小140px;显示效果与设计图一致 + - step_type: action + description: 2. 新添加的标签页高亮显示 + - step_type: action + description: 3. 正常显示 + - step_type: action + description: 1. 窗口中只有一个标签页,将标签页拖拽到其他应用(如:编辑器)的工具栏或正文区域,查看 + - step_type: action + description: 2. 窗口中有多个标签页,将标签页拖拽到其他应用(如:编辑器)的工具栏区域,查看 + - step_type: action + description: 3. 窗口中有多个标签页,将标签页拖拽到其他应用(如:编辑器)的正文区域,查看 + - step_type: action + description: 1. 应该无法拖拽 + - step_type: action + description: 2. 打开一个新窗口以显示此标签页 + - step_type: action + description: 3. 打开一个新窗口以显示此标签页 + - step_type: action + description: 1. 打开文档,添加多个标签页 + - step_type: action + description: 2. 点击标题栏的x,关闭所有标签页 + - step_type: action + description: 3. 关闭所有标签页后查看界面显示 + - step_type: action + description: 1. 正常添加 + - step_type: action + description: 2. 正常关闭,若有编辑内容会弹出是否保存的提示弹框 + - step_type: action + description: '3.' + - step_type: action + description: 1. 打开多份文档文档,点击标签页右侧的+按钮 + - step_type: action + description: 2. 退出选择界面,点击标签页中X进行关闭 + - step_type: action + description: 3. 打开多份文档文档,其中一份文档A编辑后,点击标签页中X + - step_type: action + description: 4. 点击弹框中的保存 + - step_type: action + description: 5. 点击弹框中的不保存 + - step_type: action + description: 1. 进入文件选择界面 + - step_type: action + description: 2. 正常关闭 + - step_type: action + description: 3. 弹出是否保存的提示弹框 + - step_type: action + description: 4. 文档A关闭,再次打开文档A,编辑的内容正常保存 + - step_type: action + description: 5. 文档A关闭,再次打开文档A,编辑的内容未保存 + - step_type: action + description: 1. 单个窗口中只有一个标签页,拖拽标签页移出窗口,查看 + - step_type: action + description: 2. 单个窗口中只有一个标签页,拖拽标签页移至所在窗口的正文区域,查看 + - step_type: action + description: 3. 单个窗口中只有一个标签页,拖拽标签页移至所在窗口内标签栏或工具栏 + - step_type: action + description: 1. 无法拖拽,无提示弹出 + - step_type: action + description: 2. 无法拖拽,无提示弹出 + - step_type: action + description: 3. 无法拖拽,无提示弹出 + - step_type: action + description: 1. 打开多个标签页,点击视图调整中适合高度、适合宽度、双页、左旋转、右旋转菜单;调整百分 + - step_type: action + description: 2. 点击切换另一个标签页,查看视图调整中菜单显示 + - step_type: action + description: 1. 页面正常进入相应状态 + - step_type: action + description: 2. 显示当前页的状态 + - step_type: action + description: 1. 未打开任何文档查看器窗口时,双击一份文档,查看 + - step_type: action + description: 2. 已打开一个文档查看器窗口,双击另一份文档并查看 + - step_type: action + description: 3. 有多个窗口时,双击文档并查看 + - step_type: action + description: 1. 文档在一个新窗口中打开 + - step_type: action + description: 2. .窗口中新增标签页 + - step_type: action + description: 3. 文档展示在最早开启的窗口中 + - step_type: action + description: 1. 只打开一个窗口并添加文档A,双击/拖拽/点击添加标签页菜单方式打开再次添加文档A至此窗口 + - step_type: action + description: 2. 打开多个窗口,文档A已在其中一个窗口打开,双击/拖拽/点击添加标签页菜单方式打开再次拖拽文档A至任意窗口,查看 + - step_type: action + description: 1. 无法添加相同文档,激活当前页,无提示弹出 + - step_type: action + description: 2. 无法添加相同文档,激活当前页,无提示弹出 + - step_type: action + description: 1. 打开多个窗口,每个窗口中分别有多个标签页 + - step_type: action + description: 2. 将一个窗口标签页拖拽到另外一个窗口中任意位置 + - step_type: action + description: 3. .当窗口A中只有一个标签页,将此标签页拖拽至其他窗口,查看 + - step_type: action + description: '1.' + - step_type: action + description: 2. 标签页可以正常在不同窗口之间拖拽移动,拖拽过程中鼠标显示绿色可拖拽标志 + - step_type: action + description: 3. 窗口A自动关闭退出 + - step_type: action + description: 1. 拖拽标签页移至另一个窗口中标签栏和文档区域,查看 + - step_type: action + description: 2. 拖拽标签页至另一个窗口中工具栏区域或移出当前窗口,查看是否创建一个新的窗口 + - step_type: action + description: 1. 标签页合并至另一个窗口中,拖拽过程中鼠标显示绿色可拖拽标志;拖动过程中界面显示正确 + - step_type: action + description: 2. 正常创建一个新的窗口,拖拽过程中鼠标显示绿色可拖拽标志 + - step_type: action + description: 1. 在不同标签页中进行搜索 + - step_type: action + description: 2. 切换产生搜索结果的标签页 + - step_type: action + description: 3. 点击当前页搜索框中的关闭按钮 + - step_type: action + description: 1. 每个标签页分别显示搜索结果, + - step_type: action + description: 2. 每个标签页的搜索结果和搜索弹框正常显示不会被关闭 + - step_type: action + description: 3. 仅当前页搜索结果被正常关闭,其他标签页搜索弹框和搜索结果仍正常显示 + - step_type: action + description: 1. 窗口中打开多个标签页直到超过标签栏范围,窗口界面显示 + - step_type: action + description: 2. 点击左翻按钮 + - step_type: action + description: 3. 点击右翻按钮 + - step_type: action + description: 4. 选择首个标签页或左侧无隐藏文件时,查看左翻按钮是否置灰 + - step_type: action + description: 5. 选择最后一个标签页右侧无隐藏文件时,查看右翻按钮是否置灰 + - step_type: action + description: 1. 左翻箭头高亮显示,可以点击 + - step_type: action + description: 2. 左侧隐藏的文档左移 + - step_type: action + description: 3. 右侧隐藏的文档右移 + - step_type: action + description: 4. 左翻按钮置灰显示 + - step_type: action + description: 5. 右翻按钮置灰显示 + - step_type: action + description: 1. 长按任意一个标签页拖拽,查看是否正常调整标签页排序 + - step_type: action + description: 2. 在标签栏滚动鼠标,查看是否可以滚动切换标签页 + - step_type: action + description: 3. 点击切换标签页 + - step_type: action + description: 1. 可以调整标签页排序 + - step_type: action + description: 2. 可以滚动切换标签页 + - step_type: action + description: 3. 正常切换无异常 + - step_type: action + description: 1. 点击多标签栏右侧“+”图标添加新标签页 + - step_type: action + description: 2. 从文件管理器或桌面中拖拽其他文档至窗口中 + - step_type: action + description: 3. 点击菜单中的“新标签页”菜单添加新标签页 + - step_type: action + description: 4. 双击另一份文档 + - step_type: action + description: 5. 右击另一份文档,选择文档查看器 + - step_type: action + description: 1. 可以在已打开的窗口中添加标签页,文档显示正常 + - step_type: action + description: 2. 可以在已打开的窗口中添加标签页,文档显示正常 + - step_type: action + description: 3. 可以在已打开的窗口中添加标签页,文档显示正常 + - step_type: action + description: 4. 可以在已打开的窗口中添加标签页,文档显示正常 + - step_type: action + description: 5. 可以在已打开的窗口中添加标签页,文档显示正常 + - step_type: action + description: 1. 窗口中无标签页,打开文档查看器进入初始页面,从文件管理器或桌面拖拽多个文档添加 + - step_type: action + description: 2. 窗口中无标签页,点击菜单中的“新标签页”菜单,查看是否添加新标签页 + - step_type: action + description: 3. 窗口中无标签页,双击另一份文档 + - step_type: action + description: 4. 窗口中无标签页,右击另一份文档,选择文档查看器 + - step_type: action + description: 1. 可以在已打开的窗口窗口中显示多个标签页,文档显示正常 + - step_type: action + description: 2. 可以在已打开的窗口添加标签页,文档显示正常 + - step_type: action + description: 3. 可以在已打开的窗口添加标签页,文档显示正常 + - step_type: action + description: 4. 可以在已打开的窗口添加标签页,文档显示正常 + - step_type: assert + description: 确认应用运行正常 +- id: suite_015 + name: 标签页 — 标签页新增、切换、关闭 (续1) + status: active + annotation: + 测试界面: 顶部标签页栏 + 测试功能: 标签页新增、切换、关闭 + 前置条件: deepin-reader 已启动并打开至少一个文档 + AT元素引用: Form_DocTabBar, DTabBarAddButton, 向左滚动, 向右滚动 + steps: + - step_type: action + description: 1. 不同窗口间文档拖拽 + - step_type: action + description: 2. 窗口中拖拽添加的文档,进行视图调整操作:双页显示、适应高度、适应宽度、左旋转、右旋转 + - step_type: action + description: 3. 窗口中拖拽添加的文档,添加书签、高亮、注释 + - step_type: action + description: 4. 窗口中拖拽添加的文档,进行翻页操作 + - step_type: action + description: 5. 窗口中拖拽添加的文档,选择选择工具和手形工具拖拽文档 + - step_type: action + description: 6. 窗口中拖拽添加的文档,点击菜单中选项:新窗口、新标签页、保存、另存为、打印、幻灯片放映、放大镜、文档信息、在文件管理器中显示、主题、帮助、关于、退出 + - step_type: action + description: 1. 正常拖拽 + - step_type: action + description: 2. 功能正常 + - step_type: action + description: 3. 功能正常 + - step_type: action + description: 4. 功能正常 + - step_type: action + description: 5. 功能正常 + - step_type: action + description: 6. 功能正常 + - step_type: action + description: 1. 打开文档查看器后,点击“新窗口”菜单 + - step_type: action + description: 2. 拖拽文档至新打开的窗口中 + - step_type: action + description: 3. 在新窗口中点击“选择文件”按钮打开文档 + - step_type: action + description: 4. 在新窗口中点击“新标签页”添加文档 + - step_type: action + description: 5. 关闭旧窗口,双击桌面或文件夹的一份文档 + - step_type: action + description: 1. 打开一个新的窗口 + - step_type: action + description: 2. 文档在新窗口中正常打开 + - step_type: action + description: 3. 文档在新窗口中正常打开 + - step_type: action + description: 4. 文档在新窗口中正常打开 + - step_type: action + description: 5. 文档在新窗口中正常打开 + - step_type: assert + description: 确认应用运行正常 +- id: suite_016 + name: 右键菜单 — 右键菜单功能验证 + status: active + annotation: + 测试界面: 文档区域(右键菜单) + 测试功能: 右键菜单功能验证 + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素引用: BrowserMenu + steps: + - step_type: action + description: 启动 deepin-reader + action: session_start + - step_type: action + description: 1. 上下页面均有一部分显示在当前窗口时,右击鼠标,点击第一页 + - step_type: action + description: 2. 上下页面均有一部分显示在当前窗口时,右击鼠标,点击前一页 + - step_type: action + description: 3. 上下页面均有一部分显示在当前窗口时,右击鼠标,点击后一页,查看 + - step_type: action + description: 4. 上下页面均有一部分显示在当前窗口时,右击鼠标,点击最后一页,查看 + - step_type: action + description: 1. 页面跳转正确 + - step_type: action + description: 2. 页面跳转正确 + - step_type: action + description: 3. 页面跳转正确 + - step_type: action + description: 4. 页面跳转正确 + - step_type: action + description: 1. 未选中文本,点击鼠标右键,查看右键菜单显示 + - step_type: action + description: 2. 点击搜索菜单,查看 + - step_type: action + description: 3. 点击添加书签,查看 + - step_type: action + description: 4. 点击添加注释,查看 + - step_type: action + description: 5. 点击全屏,查看 + - step_type: action + description: 6. 点击幻灯片放映,查看 + - step_type: action + description: 7. 点击第一页,查看 + - step_type: action + description: 8. 点击前一页,查看 + - step_type: action + description: 9. 点击后一页,查看 + - step_type: action + description: 10. 点击最后一页,查看 + - step_type: action + description: 11. 点击左旋转,查看 + - step_type: action + description: 12. 点击右旋转,查看 + - step_type: action + description: 13. 点击打印,查看 + - step_type: action + description: 14. 点击文档信息,查看 + - step_type: action + description: 1. 显示:搜索、添加书签、添加注释、全屏、幻灯片放映、第一页、前一页、后一页、最后一页、左旋转、右旋转、打印、文档信息 + - step_type: action + description: 2. 弹出搜索弹框,可以正常进行搜索 + - step_type: action + description: 3. 当前页面正常添加后书签,右上角显示书签图标,左边栏显示书签缩略图 + - step_type: action + description: 4. 弹出注释小窗口,可以正常添加注释,左边栏和右侧文档中注释显示正确 + - step_type: action + description: 5. 进入全屏显示 + - step_type: action + description: 6. 正常播放幻灯片 + - step_type: action + description: 7. 跳转至第一页,如当前文档已在第一页,则“第一页”菜单置灰显示 + - step_type: action + description: 8. 跳转至前一页,如当前文档已在第一页,则“前一页”菜单置灰显示 + - step_type: action + description: 9. 跳转至后一页,如当前文档已在最后一页,则“后一页”菜单置灰显示 + - step_type: action + description: 10. 跳转至最后一页,如当前文档已在最后一页,则“最后一页”菜单置灰显示 + - step_type: action + description: 11. 文档正常左旋转,界面显示正常 + - step_type: action + description: 12. 文档正常右旋转,界面显示正常 + - step_type: action + description: 13. 跳转到打印预览界面 + - step_type: action + description: 14. 显示文档信息界面,界面显示无异常 + - step_type: action + description: 1. 选中已添加高亮注释的文本,右击弹出右键菜单,点击复制菜单 + - step_type: action + description: 2. 分别点击高亮、8种高亮图标、取消高亮、添加注释、添加书签,查看 + - step_type: action + description: 3. 选中已添加高亮的文本(未加注释),右击弹出右键菜单,点击复制菜单 + - step_type: action + description: 4. 分别点击高亮、8种高亮图标、取消高亮、添加注释、添加书签,查看 + - step_type: action + description: 1. 可以复制选中的文本(注释内容无法复制) + - step_type: action + description: 2. 各菜单正常可用 + - step_type: action + description: 3. 可以复制选中的文本 + - step_type: action + description: 4. 各菜单正常可用 + - step_type: action + description: 1. 点击右键菜单中“幻灯片放映” + - step_type: action + description: 2. 分别点击ESC键、鼠标右键、控制按钮中的x键 + - step_type: action + description: 3. 分别在浅色和深色主题下,查看和长按控制按钮,查看UI是否与设计图一致 + - step_type: action + description: 4. 打开文档,按快捷键Crtl+H,查看是否进入幻灯片播放界面 + - step_type: action + description: 1. 进入幻灯片放映 + - step_type: action + description: 2. 退出幻灯片放映 + - step_type: action + description: 3. 与设计图显示一致 + - step_type: action + description: 4. 进入幻灯片放映,放映到最后一页后,继续循环至第一页播放 + - step_type: action + description: 1. 已连接打印机,点击右键菜单中的打印 + - step_type: action + description: 2. 选择打印机打印 + - step_type: action + description: 1. 跳转到打印预览界面 + - step_type: action + description: 2. 可正常打印纸张;打印预览和实际打印界面显示正常 + - step_type: action + description: 1. 未连接打印机,点击主菜单中的打印菜单 + - step_type: action + description: 2. 选择打印到文件(PDF) + - step_type: action + description: 1. 跳转到打印预览界面, + - step_type: action + description: 2. 打印正常,打印文档可以保存 + - step_type: action + description: 1. 选中一段未高亮文本,点击右键菜单中复制菜单 + - step_type: action + description: 2. 选中一段未高亮文本,按键盘中的Ctrl+C键,打开新的文本按键盘中的Ctrl+V键 + - step_type: action + description: 3. 选中一段未高亮文本,点击右键菜单中高亮菜单和8种颜色图标 + - step_type: action + description: 4. 选中一段未高亮文本,点击右键菜单中添加注释菜单 + - step_type: action + description: 5. 选中一段未高亮文本,点击右键菜单中添加书签菜单 + - step_type: action + description: 1. 可以复制选中的文本 + - step_type: action + description: 2. 可以复制选中的文本 + - step_type: action + description: 3. 可以增加高亮和切换颜色 + - step_type: action + description: 4. 在文本右下角打开注释窗口,可以编辑注释,关闭后注释添加完成,文本自动高亮 + - step_type: action + description: 5. 当前页面添加为书签 + - step_type: action + description: 1. 选中页面中一段未高亮文本,查看右键菜单包含的菜单项 + - step_type: action + description: 1. 右键菜单包含的选项为:复制、高亮、8种高亮颜色、取消高亮、添加注释、添加书签;其中“取消高亮”置灰显示,其他菜单高亮可选择 + - step_type: action + description: 1. 分别点击右键菜单中添加书签,添加注释,第一页,上一页,下一页,最后一页菜单,查看是否正确跳转 + - step_type: action + description: 1. 页面正确跳转 + - step_type: action + description: 1. 选中一段文本,翻页后回到原位置查看 + - step_type: action + description: 1. 选中文本不会消失 + - step_type: action + description: 1. 选中一段文本,右击文本 + - step_type: action + description: 2. 鼠标分别放置在任意一个菜单 + - step_type: action + description: 3. 右侧主视图区域,右击弹出右键菜单,鼠标放置在任意菜单 + - step_type: action + description: 4. 鼠标放置在百分比下拉框菜单任意位置 + - step_type: action + description: 5. 点击菜单键,鼠标放置在任意菜单位置 + - step_type: action + description: 1. 弹出右键菜单 + - step_type: action + description: 2. 正常高亮显示 + - step_type: action + description: 3. 正常高亮显示 + - step_type: action + description: 4. 正常高亮显示 + - step_type: action + description: 5. 正常高亮显示 + - step_type: action + description: 1. 打开PDF文档,选中一段文本,鼠标在选中区域右击 + - step_type: action + description: 2. 打开PDF文档,选中一段文本,鼠标在非选中区域右击 + - step_type: action + description: 1. 弹出高亮相关的右键菜单 + - step_type: action + description: 2. 弹出进行上下页跳转相关的右键菜单 + - step_type: action + description: 1. 未选中文本,点击鼠标右键,查看右键菜单显示 + - step_type: action + description: 2. 点击添加书签,查看 + - step_type: action + description: 3. 点击全屏,查看 + - step_type: action + description: 4. 点击幻灯片放映,查看 + - step_type: action + description: 5. 点击第一页,查看 + - step_type: action + description: 6. 点击前一页,查看 + - step_type: action + description: 7. 点击后一页,查看 + - step_type: action + description: 8. 点击最后一页,查看 + - step_type: action + description: 9. 点击左旋转,查看 + - step_type: action + description: 10. 点击右旋转,查看 + - step_type: action + description: 11. 点击打印,查看 + - step_type: action + description: 12. 点击文档信息,查看 + - step_type: action + description: 1. 显示:添加书签、全屏、幻灯片放映、第一页、前一页、后一页、最后一页、左旋转、右旋转、打印、文档信息 + - step_type: action + description: 2. 当前页面正常添加后书签,右上角显示书签图标,左边栏显示书签缩略图 + - step_type: action + description: 3. 进入全屏显示 + - step_type: action + description: 4. 正常播放幻灯片 + - step_type: action + description: 5. 跳转至第一页,如当前文档已在第一页,则“第一页”菜单置灰显示 + - step_type: action + description: 6. 跳转至前一页,如当前文档已在第一页,则“前一页”菜单置灰显示 + - step_type: action + description: 7. 跳转至后一页,如当前文档已在最后一页,则“后一页”菜单置灰显示 + - step_type: action + description: 8. 跳转至最后一页,如当前文档已在最后一页,则“最后一页”菜单置灰显示 + - step_type: action + description: 9. 文档正常左旋转,界面显示正常 + - step_type: action + description: 10. 文档正常右旋转,界面显示正常 + - step_type: action + description: 11. 跳转到打印预览界面 + - step_type: action + description: 12. 显示文档信息界面,界面显示无异常 + - step_type: action + description: 1. 打开文档,点击最大化 + - step_type: action + description: 2. 右击主视图界面弹出右键菜单,点击幻灯片播放菜单 + - step_type: action + description: 3. 点击底部按钮的X键,或键盘ESC键 + - step_type: action + description: 4. 打开文档,查看默认状态 + - step_type: action + description: 5. 右击主视图界面弹出右键菜单,点击幻灯片播放菜单 + - step_type: action + description: 6. 点击底部按钮的X键,或键盘ESC键 + - step_type: action + description: 1. 应用最大化显示 + - step_type: action + description: 2. 进入幻灯片播放 + - step_type: action + description: 3. 退出幻灯片播放,应用窗口保持最大化显示 + - step_type: action + description: 4. 窗口为默认大小 + - step_type: action + description: 5. 进入幻灯片播放 + - step_type: action + description: 6. 退出幻灯片播放,应用窗口保持默认大小 + - step_type: action + description: 1. 打开横向显示的PDF格式文档(可以通过ppt转化) + - step_type: action + description: 2. 点击打印,进入打印预览界面,查看预览图片的显示 + - step_type: action + description: 3. 打开普通纵向显示的PDF格式文档 + - step_type: action + description: 4. 点击打印,进入打印预览界面,查看预览图片的显示 + - step_type: action + description: 1. 界面内容显示正常 + - step_type: action + description: 2. 正常横向显示,不会被纵向拉伸 + - step_type: action + description: 3. 界面内容显示正常 + - step_type: action + description: 4. 显示正常 + - step_type: assert + description: 确认应用运行正常 +- id: suite_017 + name: 书签 — 书签的添加、删除、列表管理 + status: active + annotation: + 测试界面: 左侧栏—书签视图 + 测试功能: 书签的添加、删除、列表管理 + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素引用: SideBarImageListView + steps: + - step_type: action + description: 启动 deepin-reader + action: session_start + - step_type: action + description: 1. 从FTP服务器中拖拽PDF、DOCX格式文档至UOS系统中,使用文档查看器打开此文档 + - step_type: action + description: 2. 从U盘中拖拽PDF、DOCX格式文档至UOS系统中,使用文档查看器打开此文档 + - step_type: action + description: 3. 从网页端下载PDF、DOCX格式文档,使用文档查看器打开此文档 + - step_type: action + description: 1. 可以正常打开 + - step_type: action + description: 2. 可以正常打开 + - step_type: action + description: 3. 可以正常打开 + - step_type: action + description: 1. 选中一个书签缩略图,鼠标不点击移动至左边栏以外区域,按快捷键delete,查看是否正常删除 + - step_type: action + description: 1. 可以正常删除 + - step_type: action + description: 1. 点击右侧已出现的的书签标志 + - step_type: action + description: 2. 鼠标放在缩略图_书签上面,点击鼠标右键,出现右键菜单:删除书签,点击此菜单 + - step_type: action + description: 3. 鼠标选中该缩略图_书签,直接按键盘上Delete键 + - step_type: action + description: 1. 点击右侧已出现的的书签图标,则删除该页书签,书签图标变成空心实线图标且无填充色; + - step_type: action + description: 说明:鼠标移到书签位置附近才会显示虚线的书签图标,鼠标移出书签区域,虚线书签图标消失;再次点击此图标则可以添加书签 + - step_type: action + description: 2. 可以删除该页书签,书签缩略图消失,该页右上角书签图标变成空心实线图标且无填充色 + - step_type: action + description: 3. 可以删除该页书签,书签缩略图消失,该页右上角书签图标变成空心实线图标且无填充色 + - step_type: action + description: 1. 点击左边栏任意一条缩略图_书签,查看是否跳转到相应页面 + - step_type: action + description: 2. 查看右侧文档添加的书签是否与缩略图_书签同步展示 + - step_type: action + description: 1. 跳转至相应页面 + - step_type: action + description: 2. 同步展示 + - step_type: action + description: 1. 选中文本,点击右键菜单中的“添加书签”菜单,查看 + - step_type: action + description: 2. 未选中文本,点击右键菜单中的“添加书签”菜单,查看 + - step_type: action + description: 1. 文本所在页面添加为书签,文档右上角显示蓝色填充色的书签图标,右键菜单中“添加书签”菜单变为“删除书签” + - step_type: action + description: 2. 文本所在页面添加为书签,文档右上角显示蓝色填充色的书签图标,右键菜单中“添加书签”菜单变为“删除书签” + - step_type: action + description: 1. 进入缩略图_书签页面,查看未添加任何书签时检查界面显示 + - step_type: action + description: 2. 点击书签图标上方的添加书签按钮 + - step_type: action + description: 3. 查看加入书签后的页面显示 + - step_type: action + description: 1. 界面显示正确 + - step_type: action + description: 2. 当前浏览的页面可以加入书签 + - step_type: action + description: 3. 左边栏列出加入书签的页面:以页面缩略图和页面数(如页面20)形式显示;按照页面顺序展示 + - step_type: action + description: 1. 打开损坏的文档,查看 + - step_type: action + description: 1. 弹出提示:请检查文件是否损坏;提示语前面的应该是红色禁止图标 + - step_type: action + description: 1. 当前已打开文档并浏览,关闭应用后再打开 + - step_type: action + description: 1. 进入初始界面,默认要选择文件或拖拽文件进行浏览; + - step_type: action + description: 1. 分别打开以下支持的文档格式,查看能否正常打开查看: + - step_type: action + description: PDF(扫描件和非扫描件格式), DJVU, DOCX格式文档 + - step_type: action + description: 1. 支持的格式文档均可以正常打开浏览 + - step_type: action + description: 1. 拖拽一个文档至初始页面 + - step_type: action + description: 2. 在文件夹中双击一个文档 + - step_type: action + description: 3. 在文件夹中右击一个文档,选择打开方式为:文档查看器 + - step_type: action + description: 4. 点击选择文件进行选择:进入文件选择页面,选择一个文档,点击打开 + - step_type: action + description: 5. 文件选择页面点击取消,或者点击ESC键,查看是否退出选择弹框 + - step_type: action + description: 6. 初始界面按Ctrl+O键 + - step_type: action + description: 7. 已打开文档后,点击标签栏右侧的+按钮 + - step_type: action + description: 1. 可以打开文档,正常进行浏览 + - step_type: action + description: 2. 默认使用文档查看器打开文档浏览 + - step_type: action + description: 3. 可以打开文档,正常进行浏览 + - step_type: action + description: 4. 可以打开文档,正常进行浏览 + - step_type: action + description: 5. 会退出选择弹框 + - step_type: action + description: 6. 进入文件选择页面,可以选择文件 + - step_type: action + description: 7. 进入文件选择页面,可以选择文件添加 + - step_type: action + description: 1. 已添加PDF/DOCX文档,查看顶部工具栏的显示 + - step_type: action + description: 2. 点击菜单键,查看包含的菜单项 + - step_type: action + description: 3. 查看文档区域显示 + - step_type: action + description: 4. 展开左边栏,查看底部图标 + - step_type: action + description: '1.' + - step_type: action + description: 2. 包含的菜单有:新窗口、新标签页、保存、另存为、在文件管理器显示、放大镜、工具、搜索、打印、主题、帮助、关于、退出 + - step_type: action + description: 3. 左边栏缩略图默认收起,右侧文档首次打开默认显示第一页 + - step_type: action + description: 4. 显示缩略图图标、目录图标、书签图标、注释图标,显示无异常 + - step_type: action + description: 1. 未添加文档界面,点击工具栏左侧图标 + - step_type: action + description: 2. 未添加文档界面,点击菜单图标 + - step_type: action + description: 3. 未添加文档界面,分别点击最小化、还原、关闭图标 + - step_type: action + description: 1. 缩略图图标、百分比输入框图标均置灰显示,点击无作用 + - step_type: action + description: 2. 弹出菜单弹框,显示菜单:新窗口、新标签页、保存、另存为、在文件管理器显示、放大镜、选择工具、搜索、打印、主题、帮助、关于、退出。其中仅新窗口、新标签页、主题、帮助、关于、退出菜单高亮显示可以点击进入,其余菜单置灰显示 + - step_type: action + description: 3. 最小化、还原、关闭功能正常 + - step_type: action + description: 1. 查看应用的图标和名称是否正确 + - step_type: action + description: 2. 打开应用,未添加文档界面,查看左上角logo显示是否正确 + - step_type: action + description: 3. 打开应用,未添加文档界面,查看文档区域显示 + - step_type: action + description: 1. 应用的图标和名称显示正确 + - step_type: action + description: 2. 显示正确 + - step_type: action + description: 3. 显示:“拖拽文件到此 支持格式:PDF,DJVU,DOCX””提示语和“选择文件”按钮 + - step_type: action + description: 1. 打开PDF文档,点击百分比输入框,查看弹出框中的菜单显示 + - step_type: action + description: 2. 在右侧文档区域,未选中文本直接点击鼠标右键,查看右键菜单显示 + - step_type: action + description: 1. 依次显示菜单:双页显示、默认大小、适合页面、适应高度、适应宽度;10%、25%、50%、75%、100%、125%、150%、175%、200%、300%、400%、500% + - step_type: action + description: 2. 依次显示菜单:搜索,添加书签,添加注释,全屏,幻灯片放映,第一页,前一页,后一页,最后一页;左旋转,右旋转,打印,文档信息;不可操作时,菜单置灰显示 + - step_type: action + description: 1. 打开文档,右击任意一个书签目录,查看菜单显示 + - step_type: action + description: 2. 点击“删除所有书签”菜单,查看弹出的提示 + - step_type: action + description: 3. 点击提示框中的取消 + - step_type: action + description: 4. 点击提示框中的确定 + - step_type: action + description: 5. 弹框弹出时,点击应用中其他菜单 + - step_type: action + description: 1. 显示“删除书签”和“删除所有书签”菜单 + - step_type: action + description: 2. 弹出提示:您确定要删除所有书签吗? + - step_type: action + description: 3. 弹框关闭,所有书签均不会被被删除 + - step_type: action + description: 4. 弹框关闭,所有书签被删除 + - step_type: action + description: 5. 其他菜单均无法被点击 + - step_type: assert + description: 确认应用运行正常 +- id: suite_018 + name: 书签 — 书签的添加、删除、列表管理 (续1) + status: active + annotation: + 测试界面: 左侧栏—书签视图 + 测试功能: 书签的添加、删除、列表管理 + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素引用: SideBarImageListView + steps: + - step_type: action + description: 1. 添加书签 + - step_type: action + description: 2. 右击蓝色书签图标,点击右键菜单中删除书签菜单 + - step_type: action + description: 1. 右上角正常显示蓝色书签图标 + - step_type: action + description: 2. 可以正常删除,鼠标移走后文档右上角不显示任何书签图标 + - step_type: action + description: 1. 添加多个书签 + - step_type: action + description: 2. 选择一个书签缩略图,按键盘上下/pageup/pagedown + - step_type: action + description: 3. 双页显示时,添加多个书签 + - step_type: action + description: 4. 选择一个书签缩略图,按键盘上下/pageup/pagedown + - step_type: action + description: 1. 展开左边栏,显示多个书签缩略图 + - step_type: action + description: 2. 正确切换,右侧文档跟随变化 + - step_type: action + description: 3. 展开左边栏,显示多个书签缩略图 + - step_type: action + description: 4. 正确切换,右侧文档跟随变化 + - step_type: assert + description: 确认应用运行正常 +- id: suite_019 + name: 注释 — 注释的添加、编辑、删除 + status: active + annotation: + 测试界面: 左侧栏—注释视图 + 测试功能: 注释的添加、编辑、删除 + 前置条件: deepin-reader 已启动并打开一个PDF文档 + AT元素引用: SideBarImageListView + steps: + - step_type: action + description: 启动 deepin-reader + action: session_start + - step_type: action + description: 1. 选中一个左侧栏的注释目录,鼠标不点击移动至左边栏以外区域,按快捷键delete,查看是否正常删除 + - step_type: action + description: 1. 可以正常删除 + - step_type: action + description: 1. 文本已添加高亮注释,重叠选中另一段文本,右击未高亮区域添加注释, + - step_type: action + description: 2. 文本已添加高亮注释,重叠选中另一段文本,右击高亮区域 + - step_type: action + description: 1. 出现两段重叠颜色,添加另一条注释 + - step_type: action + description: 2. 仅可修改原注释内容,无法添加注释 + - step_type: action + description: 1. 添加高亮注释或图标注释,保存关闭文档,再进行重命名,打开查看 + - step_type: action + description: 2. UOS系统中,文档添加高亮注释或图标注释后,发送至另一台UOS电脑,使用文档查看器应用打开查看 + - step_type: action + description: 3. UOS系统中文档查看器,添加高亮、高亮注释和图标注释并保存,再使用wps打开此文档 + - step_type: action + description: 4. UOS系统中文档查看器,添加高亮、高亮注释和图标注释并保存,发送至Windows/苹果电脑中,打开此文档 + - step_type: action + description: 1. 添加的高亮或注释不会消失 + - step_type: action + description: 2. 添加的高亮或注释不会消失 + - step_type: action + description: 3. 添加的高亮或注释不会消失 + - step_type: action + description: 4. 添加的高亮或注释不会消失 + - step_type: action + description: 1. 右击左侧栏的注释目录,查看弹出的右键菜单 + - step_type: action + description: 2. 点击复制,查看是否可以复制该条注释内容 + - step_type: action + description: 1. 显示菜单:复制、删除注释、删除所有注释 + - step_type: action + description: 2. 可以复制该条注释内容 + - step_type: action + description: 1. 点击左边栏任意一个注释,查看是否跳转到该页相应注释内容处 + - step_type: action + description: 1. 正确跳转到该页相应注释内容处,注释目录与文档注释页面同步展示 + - step_type: action + description: 1. 不同页面添加注释 + - step_type: action + description: 2. 同一页面添加注释 + - step_type: action + description: 1. 按照页面顺序展示,页面靠前则该页面的注释目录靠前 + - step_type: action + description: 2. 同一页面按时间先后顺序显示 + - step_type: action + description: 1. 添加图标注释和高亮注释,查看左边栏注释目录显示 + - step_type: action + description: '1.0' + - step_type: action + description: 1. 右击高亮注释文本,选择右键菜单中的取消高亮进行删除 + - step_type: action + description: 2. 点击高亮注释文本,弹出小窗口,删除窗口所有内容,点击窗口的x或窗口之外区域 + - step_type: action + description: 3. 右击缩略图_注释,选择删除菜单 + - step_type: action + description: 4. 单击缩略图_注释,按delete快捷键进行删除 + - step_type: action + description: 1. 可以正常删除注释,左边栏缩略图_注释同步被删除 + - step_type: action + description: 2. 可以正常删除注释,左边栏缩略图_注释同步被删除 + - step_type: action + description: 3. 可以正常删除注释,左边栏缩略图_注释同步被删除 + - step_type: action + description: 4. 可以正常删除注释,左边栏缩略图_注释同步被删除 + - step_type: action + description: 1. 右击注释小图标,选择右键菜单中的删除注释进行删除 + - step_type: action + description: 2. 点击注释小图标,弹出小窗口,删除窗口所有内容,点击窗口的x或窗口之外区域 + - step_type: action + description: 3. 右击缩略图_注释,选择删除菜单 + - step_type: action + description: 4. 单击缩略图_注释,按delete快捷键进行删除 + - step_type: action + description: 1. 可以正常删除注释,左边栏缩略图_注释同步被删除 + - step_type: action + description: 2. 可以正常删除注释,左边栏缩略图_注释同步被删除 + - step_type: action + description: 3. 可以正常删除注释,左边栏缩略图_注释同步被删除 + - step_type: action + description: 4. 可以正常删除注释,左边栏缩略图_注释同步被删除 + - step_type: action + description: 1. 添加高亮注释后,查看左边栏是否对应添加注释目录 + - step_type: action + description: 1. 左边栏是否对应添加注释目录 + - step_type: action + description: 1. 鼠标悬停在高亮注释上,浮窗显示部分注释文案 + - step_type: action + description: 2. 滚动滑鼠或按键盘上下键查看是否可以滑动浮窗中内容 + - step_type: action + description: 1. 浮框显示部分注释文案 + - step_type: action + description: 2. 浮窗中内容无法滑动 + - step_type: action + description: 1. 右键点击高亮注释文本 + - step_type: action + description: 2. 选中高亮文本,点击右键菜单中复制 + - step_type: action + description: 3. 直接右击高亮文本,点击菜单中复制 + - step_type: action + description: 1. 显示右键菜单:复制,高亮,取消高亮,添加注释,添加书签 + - step_type: action + description: 2. 可以正确复制选中的文本 + - step_type: action + description: 3. 可以正确复制注释内容 + - step_type: action + description: 1. 单击高亮注释 + - step_type: action + description: 2. 编辑修改输入框中内容 + - step_type: action + description: 3. 鼠标左击或右击注释框外其他区域,查看 + - step_type: action + description: 1. 显示注释输入框,输入光标显示在内容后方 + - step_type: action + description: 2. 可以修改 + - step_type: action + description: 3. 注释框关闭,注释编辑成功 + - step_type: action + description: 1. 编辑注释界面,鼠标滑动注释小窗口中内容 + - step_type: action + description: 1. 可以滑动 + - step_type: action + description: 1. 右击高亮注释,弹出右键菜单;鼠标左键点击其他区域 + - step_type: action + description: 2. 右击高亮注释,弹出右键菜单;鼠标右键点击其他区域 + - step_type: action + description: 1. 右键菜单框消失 + - step_type: action + description: 2. 右键菜单框消失 + - step_type: assert + description: 确认应用运行正常 +- id: suite_020 + name: 注释 — 注释的添加、编辑、删除 (续1) + status: active + annotation: + 测试界面: 左侧栏—注释视图 + 测试功能: 注释的添加、编辑、删除 + 前置条件: deepin-reader 已启动并打开一个PDF文档 + AT元素引用: SideBarImageListView + steps: + - step_type: action + description: 1. 选中一段文本并右击弹出右键菜单,点击“添加注释” + - step_type: action + description: 2. 注释输入窗口,输入内容,查看是否可以自动换行 + - step_type: action + description: 3. 注释输入窗口,查看是否支持滚动或按上下键、pageup、pagedown查看全部信息 + - step_type: action + description: 4. 当输入框内容输入超过1500字符(中文或英文)限制,查看是否弹出提示 + - step_type: action + description: 1. 弹出注释小窗口,固定显示在点击位置 + - step_type: action + description: 2. 可以自动换行 + - step_type: action + description: 3. 支持滚动或按键查看全部信息 + - step_type: action + description: 4. 正确弹出提示:输入已达上限 + - step_type: action + description: 1. 每个注释小图标添加后,查看左边栏是否对应添加注释目录 + - step_type: action + description: 1. 左边栏对应添加注释目录 + - step_type: action + description: 1. 鼠标悬停在注释图标上,查看显示 + - step_type: action + description: 2. 滚动滑鼠或按键盘上下键查看是否可以滑动浮窗中内容 + - step_type: action + description: 1. 浮框显示部分注释文案 + - step_type: action + description: 2. 浮窗中内容无法滑动 + - step_type: action + description: 1. 右键点击已添加的注释小图标 + - step_type: action + description: 2. 点击复制菜单并粘贴至txt等文档中,查看 + - step_type: action + description: 3. 点击添加注释菜单,查看 + - step_type: action + description: 4. 点击删除注释菜单,查看 + - step_type: action + description: 5. 点击添加书签菜单,查看 + - step_type: action + description: 1. 显示右键菜单:复制,删除注释,添加注释,添加书签 + - step_type: action + description: 2. 注释内容被正确复制 + - step_type: action + description: 3. 展开注释窗口,可以进行注释编辑 + - step_type: action + description: 4. 注释小图标被正确删除 + - step_type: action + description: 5. 当前页面正确添加为书签页 + - step_type: action + description: 1. 注释添加完成后,鼠标左键单击注释图标,查看显示 + - step_type: action + description: 2. 编辑注释内容 + - step_type: action + description: 3. 鼠标左击其他区域(非注释图标和注释框),查看 + - step_type: action + description: 4. 左击注释图标,查看 + - step_type: action + description: 5. 编辑注释内容 + - step_type: action + description: 6. 鼠标右击其他区域(非注释图标和注释框),查看 + - step_type: action + description: 1. 图标为选中状态,同时弹出注释框,输入光标显示在注释内容后方 + - step_type: action + description: 2. 可以正常修改 + - step_type: action + description: 3. 注释框消失,注释图标选中状态被取消,注释内容编辑成功 + - step_type: action + description: 4. 图标为选中状态,同时弹出注释框,输入光标显示在注释内容后方 + - step_type: action + description: 5. 可以正常修改 + - step_type: action + description: 6. 注释框消失,注释图标选中状态被取消,注释内容编辑成功 + - step_type: action + description: 1. 右击注释图标,弹出右键菜单;鼠标左键点击其他区域 + - step_type: action + description: 2. 右击注释图标,弹出右键菜单;鼠标右键点击其他区域 + - step_type: action + description: 1. 右键菜单框消失 + - step_type: action + description: 2. 右键菜单框消失 + - step_type: action + description: 1. 点击“添加注释”,再点击文档界面,展开空白小窗口,不输入内容,直接点击右上角关闭图标或文档中其他位置 + - step_type: action + description: 1. 注释自动取消; + - step_type: action + description: 1. 点击“添加注释”,鼠标移至页面单击任意位置,查看弹出显示 + - step_type: action + description: 2. 注释输入窗口,输入内容,查看是否可以自动换行 + - step_type: action + description: 3. 注释输入窗口,查看是否支持滚动或按上下键、pageup、pagedown查看全部信息 + - step_type: action + description: 4. 当输入框内容输入超过1500字符(中文或英文)限制,查看是否弹出提示 + - step_type: action + description: 1. 弹出注释小图标和小窗口,均固定显示在点击位置 + - step_type: action + description: 2. 可以自动换行 + - step_type: action + description: 3. 支持滚动或按键查看全部信息 + - step_type: action + description: 4. 正确弹出提示:输入已达上限 + - step_type: action + description: 1. 选中文本,右键点击在文字上,点击右键菜单的“添加注释”,查看是否弹出高亮注释窗口 + - step_type: action + description: 1. 弹出高亮注释窗口,可以添加高亮注释成功 + - step_type: action + description: 1. 未选中文本,点击左边栏添加注释按钮,点击页面区域任意位置,查看是否弹出图标注释窗口 + - step_type: action + description: 2. 输入注释内容,点击窗口外其他区域 + - step_type: action + description: 3. 未选中文本,右键点击在非图标注释及非高亮注释的空白区域,点击右键菜单的“添加注释”,查看是否弹出图标注释窗口 + - step_type: action + description: 4. 输入注释内容,点击窗口外其他区域 + - step_type: action + description: 1. 弹出图标注释窗口 + - step_type: action + description: 2. 窗口关闭,图标注释正常显示,图标注释添加成功 + - step_type: action + description: 3. 弹出图标注释窗口 + - step_type: action + description: 4. 窗口关闭,图标注释正常显示,图标注释添加成功 + - step_type: action + description: 1. 打开文档,添加一个书签,右击底部注释目录图标,查看菜单显示 + - step_type: action + description: 2. 点击“删除所有注释”菜单,查看弹出的提示 + - step_type: action + description: 3. 点击提示框中的取消 + - step_type: action + description: 4. 点击提示框中的确定 + - step_type: action + description: 5. 弹框弹出时,点击应用中其他菜单 + - step_type: action + description: 1. 显示“删除注释”和“删除所有注释”菜单 + - step_type: action + description: 2. 弹出提示:您确定要删除所有注释吗? + - step_type: action + description: 3. 弹框关闭,所有注释均不会被删除 + - step_type: action + description: 4. 弹框关闭,所有注释被删除 + - step_type: action + description: 5. 其他菜单点击均无作用 + - step_type: action + description: 1. 鼠标左键单击注释图标,查看显示 + - step_type: action + description: 2. 编辑注释内容 + - step_type: action + description: 3. 鼠标左击其他区域(非注释图标和注释框),查看 + - step_type: action + description: 1. 图标为选中状态,同时弹出注释框,输入光标显示在注释内容后方 + - step_type: action + description: 2. 可以正常修改 + - step_type: action + description: 3. 注释框消失,注释内容编辑成功,注释图标选中状态被取消 + - step_type: action + description: 1. 左击注释图标,查看 + - step_type: action + description: 2. 编辑注释内容 + - step_type: action + description: 3. 鼠标右击其他区域(非注释图标和注释框),查看 + - step_type: action + description: 1. 图标为选中状态,同时弹出注释框,输入光标显示在注释内容后方 + - step_type: action + description: 2. 可以正常修改 + - step_type: action + description: 3. 注释框消失,注释图标选中状态被取消,注释内容编辑成功 + - step_type: action + description: 1. 非选中图标状态,鼠标左键长按注释图标移动 + - step_type: action + description: 2. 移动到目标区域,松开鼠标 + - step_type: action + description: 3. 鼠标左键点击其他区域(非注释图标和注释框) + - step_type: action + description: 1. 注释图标变成选中状态,可以移动 + - step_type: action + description: 2. 松开鼠标完成移动,注释图标显示为选中状态 + - step_type: action + description: 3. 取消注释图标选中状态; + - step_type: action + description: 1. 选中图标状态,鼠标左键长按注释图标移动 + - step_type: action + description: 2. 移动到目标区域,松开鼠标 + - step_type: action + description: 3. 鼠标左键点击其他区域(非注释图标和注释框) + - step_type: action + description: 1. 注释图标保持选中状态,可以移动 + - step_type: action + description: 2. 松开鼠标完成移动,注释图标显示为选中状态 + - step_type: action + description: 3. 注释图标选中状态吧被取消 + - step_type: assert + description: 确认应用运行正常 +- id: suite_021 + name: 注释 — 注释的添加、编辑、删除 (续2) + status: active + annotation: + 测试界面: 左侧栏—注释视图 + 测试功能: 注释的添加、编辑、删除 + 前置条件: deepin-reader 已启动并打开一个PDF文档 + AT元素引用: SideBarImageListView + steps: + - step_type: action + description: 1. 鼠标焦点在注释图标区域外,进行移动 + - step_type: action + description: 1. 无法移动注释图标 + - step_type: action + description: 1. 按住鼠标左键移动注释图标至其他页面 + - step_type: action + description: 1. 无法移动至其他页面,仅支持在当前页移动 + - step_type: action + description: 1. 右击注释图标,查看 + - step_type: action + description: 2. 鼠标左键点击其他区域 + - step_type: action + description: 3. 右击注释图标弹出右键菜单,鼠标右键点击其他区域 + - step_type: action + description: 1. 弹出右键菜单 + - step_type: action + description: 2. 右键菜单框消失 + - step_type: action + description: 3. 右键菜单框消失 + - step_type: action + description: 1. 弹出注释编辑窗口,输入内容 + - step_type: action + description: 2. 按Ctrl+A快捷键 + - step_type: action + description: 3. 按Ctrl+C快捷键 + - step_type: action + description: 4. 按Ctrl+V快捷键 + - step_type: action + description: 5. 按Ctrl+X快捷键 + - step_type: action + description: 6. 按Ctrl+Z快捷键 + - step_type: action + description: 7. 按Ctrl+S快捷键 + - step_type: action + description: 8. 按delete快捷键 + - step_type: action + description: 1. 内容正常显示 + - step_type: action + description: 2. 全选内容 + - step_type: action + description: 3. 复制内容 + - step_type: action + description: 4. 粘贴内容 + - step_type: action + description: 5. 剪切内容 + - step_type: action + description: 6. 撤销操作 + - step_type: action + description: 7. 保存内容 + - step_type: action + description: 8. 删除选中的内容 + - step_type: action + description: 1. 鼠标悬停在图标注释或高亮注释之上 + - step_type: action + description: 2. 按快捷键Windows+D进入桌面查看 + - step_type: action + description: 3. 鼠标悬停在图标注释或高亮注释之上 + - step_type: action + description: 4. 鼠标移出注释区域 + - step_type: action + description: 1. 注释浮窗显示 + - step_type: action + description: 2. 应用最小化,浮窗不会单独显示桌面 + - step_type: action + description: 3. 注释浮窗显示注释浮窗显示 + - step_type: action + description: 4. 注释浮窗应该消失 + - step_type: action + description: 1. 添加多个注释 + - step_type: action + description: 2. 选择一个注释目录,按键盘上下键/pageup、pagedown,查看 + - step_type: action + description: 3. 双页显示时,添加多个注释 + - step_type: action + description: 4. 选择一个注释目录,按键盘上下键/pageup、pagedown,查看 + - step_type: action + description: 1. 展开左边栏,显示多个注释目录 + - step_type: action + description: 2. 切换正常,右侧文档对应跳转 + - step_type: action + description: 3. 展开左边栏,显示多个注释目录 + - step_type: action + description: 4. 切换正常,右侧文档对应跳转 + - step_type: action + description: 1. 打开文档,分别添加高亮注释和图标注释,输入注释内容均达到上限1500字 + - step_type: action + description: 2. 按快捷键Ctrl+S保存 + - step_type: action + description: 3. 关闭文档,再打开 + - step_type: action + description: 1. 添加成功 + - step_type: action + description: 2. 弹出“保存成功”提示 + - step_type: action + description: 3. 高亮注释和图标注释显示正确 + - step_type: assert + description: 确认应用运行正常 +- id: suite_022 + name: 目录 — 文档目录导航 + status: active + annotation: + 测试界面: 左侧栏—目录视图 + 测试功能: 文档目录导航 + 前置条件: deepin-reader 已启动并打开一个带目录的文档 + AT元素引用: Form_CentralDocPage + steps: + - step_type: action + description: 启动 deepin-reader action: session_start - step_type: action - description: 在侧栏书签列表右键,选择"删除书签" - action: dtk_context_menu - selector: - name: View_ImageList - items: - - 删除书签 - - step_type: action - description: 在侧栏书签列表右键,选择"删除全部" - action: dtk_context_menu - selector: - name: View_ImageList - items: - - 删除全部 + description: 1. 进入左边栏目录界面,点击选中目录索引,查看右侧文档显示 + - step_type: action + description: 2. 进入左边栏目录界面,按键盘上下键/pageup/pagedown切换目录选中,查看右侧文档页面显示 + - step_type: action + description: 3. 改变右侧文档当前所在页数,查看左边栏目录显示 + - step_type: action + description: 1. 右侧文档跳转至当前所选目录索引页,且显示为第一行;左侧目录点击后正常高亮显示,不会出现高亮定位不准现象 + - step_type: action + description: 2. 右侧文档跳转至当前所选目录索引页,且显示为第一行;左侧目录点击后正常高亮显示,不会出现高亮定位不准现象 + - step_type: action + description: 3. 目录会对应高亮显示 + - step_type: action + description: 1. 打开文档,查看目录默认展示方式 + - step_type: action + description: 2. 展开层级索引后关闭再打开文档,查看目录展示方式 + - step_type: action + description: 1. 默认展示为收起状态,展示一级目录 + - step_type: action + description: 2. 恢复默认状态 + - step_type: action + description: 1. 调整左边栏宽度,查看目录显示 + - step_type: action + description: 2. 点击收起及展开目录层级索引 + - step_type: action + description: 1. 目录显示内容相应调整,超出省略,不省略页数 + - step_type: action + description: 2. 可以正常收起及展开目录层级索引,最多显示三级 + - step_type: action + description: 1. 点击左边栏底部目录图标 + - step_type: action + description: 2. 查看目录显示 + - step_type: action + description: 1. 左边栏显示文档目录 + - step_type: action + description: '2.' + - step_type: action + description: 1. 打开一份不可读取页数的文档,查看输入框一行的显示 + - step_type: action + description: 2. 输入框中输入页码(包括数字和字母),查看是否正常跳转 + - step_type: action + description: 3. 输入非有效内容,查看提示 + - step_type: action + description: 4. 点击页数右侧的上翻、下翻按钮 + - step_type: action + description: 1. 显示为:输入框和文档总页数;文档翻页时页数显示正确 + - step_type: action + description: 2. 跳转至对应页面 + - step_type: action + description: 3. 提示“请输入有效页码” + - step_type: action + description: 4. 点击上翻按钮,页数上翻;点击下翻按钮,页数下翻 + - step_type: action + description: 1. 打开一份可读取页数的文档,查看输入框一行的显示 + - step_type: action + description: 2. 输入框中输入页码(包括数字和字母),查看是否正常跳转 + - step_type: action + description: 3. 输入任意非有效内容,查看提示 + - step_type: action + description: 4. 点击页数右侧的上翻、下翻按钮 + - step_type: action + description: 1. 显示为:输入框、默认计算页数和文档总页数;文档翻页时页数显示正确 + - step_type: action + description: 2. 跳转至对应页面 + - step_type: action + description: 3. 提示“请输入有效页码” + - step_type: action + description: 4. 点击上翻按钮,页数上翻;点击下翻按钮,页数下翻 + - step_type: action + description: 1. 打开有目录的文档,点击正文的目录 + - step_type: action + description: 2. 文档左旋转,点击正文的目录 + - step_type: action + description: 3. 文档右旋转,点击正文的目录 + - step_type: action + description: 4. 文档旋转180度后,击右侧正文的目录 + - step_type: action + description: 1. 跳转至相应文档内容处 + - step_type: action + description: 2. 跳转至相应文档内容处 + - step_type: action + description: 3. 跳转至相应文档内容处 + - step_type: action + description: 4. 跳转至相应文档内容处 - step_type: assert - description: 书签菜单操作后应用仍正常响应 - action: assert_visible -- id: suite_theme_menu_v2 - name: 标题栏主题菜单 — 浅色/深色/跟随系统切换(items方式) + description: 确认应用运行正常 +- id: suite_023 + name: 缩略图 — 缩略图视图翻页和跳转 status: active annotation: - 测试界面: 标题栏主题菜单 - 测试功能: 浅色/深色/跟随系统主题切换 - 前置条件: deepin-reader 已打开,标题栏主题菜单可用 - AT元素引用: Button_SelectFile, 浅色, 深色, 跟随系统 + 测试界面: 左侧栏—缩略图视图 + 测试功能: 缩略图视图翻页和跳转 + 前置条件: deepin-reader 已启动并打开一个多页文档 + AT元素引用: PagingWidget, SideBarImageListView steps: - step_type: action - description: 启动 deepin-reader,不打开文档 + description: 启动 deepin-reader action: session_start - step_type: action - description: 打开主题菜单,选择"浅色" - action: dtk_main_menu - items: - - 浅色 + description: 1. 展开左边栏,查看左边栏界面显示 + - step_type: action + description: 2. 点击缩略图图标查看左边栏界面显示 + - step_type: action + description: 3. 点击目录图标查看左边栏界面显示 + - step_type: action + description: 4. 点击书签图标查看左边栏界面显示 + - step_type: action + description: 5. 点击注释图标查看左边栏界面显示 + - step_type: action + description: 1. 底部显示4个按钮:缩略图图标、目录图标、书签图标、注释图标;界面显示正常 + - step_type: action + description: 2. 显示页数输入框、总页数,上下翻页按钮;输入页数正确跳转,上下翻页正常;左边栏宽度范围在266px~380px之间,界面显示正常 + - step_type: action + description: 3. 显示目录界面,无目录文档则显示空白;界面显示正常 + - step_type: action + description: 4. 显示添加书签按钮,点击可将当前浏览页面添加书签;界面显示正常 + - step_type: action + description: 5. .显示添加注释按钮,点击添加注释按钮再点击文档任意位置,可弹出添加注释小窗口界面;界面显示正常 + - step_type: action + description: 1. 打开文档,查看文档缩略图默认显示内容 + - step_type: action + description: 2. 文档中添加高亮、书签、注释,查看左边栏文档缩略图中是否显示 + - step_type: action + description: 3. 删除高亮、书签、注释,查看左边栏文档缩略图中是否显示 + - step_type: action + description: 1. 显示所有页面缩略图 + - step_type: action + description: 2. 文档缩略图中正常显示高亮、书签图标、注释图标 + - step_type: action + description: 3. 删除的高亮、书签图标、注释图标,文档缩略图也会删除 + - step_type: action + description: 1. 点击左边栏任意一个文档缩略图标,查看右侧文档是否跳转到相应页面 + - step_type: action + description: 2. 左边栏页面超过一页时,滑动鼠标中间滑轮,查看页面是否正常滑动显示 + - step_type: action + description: 1. 右侧文档是否跳转到相应页面 + - step_type: action + description: 2. 页面是否正常滑动显示 + - step_type: action + description: 1. 点击顶端工具栏中缩略图标,查看界面显示 + - step_type: action + description: 2. 分别点击目录图标、书签图标和注释图标,查看界面显示 + - step_type: action + description: 3. 再次点击顶端工具栏中缩略图标 + - step_type: action + description: 1. 左边栏底部显示四个图标:缩略图图标、目录图标、书签图标和注释图标 + - step_type: action + description: 2. 左边栏显示相应缩略图页面,页面显示正常 + - step_type: action + description: 3. 会取消高亮,隐藏左边栏和缩略图内容 - step_type: assert - description: 应用切换到浅色主题,主界面仍然响应 - element_ref: n6 - selector: - name: Button_SelectFile - action: assert_visible - - step_type: action - description: 打开主题菜单,选择"深色" - action: dtk_main_menu - items: - - 深色 + description: 确认应用运行正常 +- id: suite_024 + name: 其它交互 — 其他交互功能 + status: active + annotation: + 测试界面: 文档区域/标题栏 + 测试功能: 其他交互功能 + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素引用: Form_CentralDocPage, Form_DMainWindow, Button_ThumbnailToggle + steps: + - step_type: action + description: 启动 deepin-reader + action: session_start + - step_type: action + description: 1. 双页显示时,调整到最小百分比,使用放大镜查看显示是否正常 + - step_type: action + description: 2. 双页显示时,调整到最大百分比,使用放大镜查看显示是否正常 + - step_type: action + description: 3. 打开单页超大文档(75M以上),并调整百分比至最大,使用放大镜查看显示是否正常 + - step_type: action + description: 1. 放大镜放置区域内容(包括文字、图片、高亮文本、注释小图标、书签图标)均被正常放大,界面显示正常 + - step_type: action + description: 2. 放大镜放置区域内容(包括文字、图片、高亮文本、注释小图标、书签图标)均被正常放大,界面显示正常 + - step_type: action + description: 3. 放大镜放置区域内容(包括文字、图片、高亮文本、注释小图标、书签图标)均被正常放大,界面显示正常 + - step_type: action + description: 1. 按Ctrl+Shift+? --显示快捷键预览,查看所有快捷键使用是否正常: + - step_type: action + description: F1 --进入帮助界面 + - step_type: action + description: Ctrl+O --进入文件管理选择界面 + - step_type: action + description: Ctrl+shift+S --另存为 + - step_type: action + description: Ctrl+S --保存 + - step_type: action + description: Ctrl+P --打印 + - step_type: action + description: Ctrl+M --打开目录缩略图 + - step_type: action + description: Ctrl+1 --默认大小 + - step_type: action + description: Ctrl+2 --适应高度 + - step_type: action + description: Ctrl+3 --适应宽度 + - step_type: action + description: Ctrl+R --左旋转 + - step_type: action + description: Ctrl+Shift+R --右旋转 + - step_type: action + description: Ctrl++ --页面放大 + - step_type: action + description: Ctrl+- --页面缩小 + - step_type: action + description: PageUp --上一页 + - step_type: action + description: PageDown --下一页 + - step_type: action + description: Up -- 上一行 + - step_type: action + description: Down -- 下一行 + - step_type: action + description: Esc --退出 + - step_type: action + description: Alt+1 --选择工具 + - step_type: action + description: Alt+2 --手形工具 + - step_type: action + description: Ctrl+D --添加书签 + - step_type: action + description: Alt+A --添加注释 + - step_type: action + description: Alt+H --添加高亮 + - step_type: action + description: Delete --删除 (备注:删除书签或注释目录) + - step_type: action + description: Alt+Z --放大镜 + - step_type: action + description: Ctrl+F --搜索 + - step_type: action + description: F5 --幻灯片放映 + - step_type: action + description: F11 --全屏 + - step_type: action + description: (备注:以下针对注释小窗口中内容进行操作) + - step_type: action + description: Ctrl+C --复制 + - step_type: action + description: Ctrl+X --剪切 + - step_type: action + description: Ctrl+V --粘贴 + - step_type: action + description: Delete --删除 + - step_type: action + description: Ctrl+S --保存 + - step_type: action + description: Ctrl+Z --撤销 + - step_type: action + description: Ctrl+A --全选 + - step_type: action + description: 2. 打开DJVU格式文档,按Ctrl+Shift+? --显示快捷键预览,查看所有快捷键使用是否正常: + - step_type: action + description: 除 Alt+A --添加注释,Alt+H --添加高亮, Ctrl+F --搜索 三个快捷键不支持,其余快捷键同步骤1) + - step_type: action + description: 1. 快捷键使用均正常 + - step_type: action + description: 2. 快捷键使用均正常 + - step_type: action + description: 1. 打开文档,按Ctrl+1,点击百分比下拉框查看 + - step_type: action + description: 1. 默认大小和100%选项都会自动勾选 + - step_type: action + description: 1. 打开PDF文档,未选中文本,分别按Alt+A和Alt+H + - step_type: action + description: 2. 打开DJVU文档,分别按Alt+A和Alt+H + - step_type: action + description: 1. 弹出提示:请选择文本 + - step_type: action + description: 2. 无提示弹出 + - step_type: action + description: 1. 当前页非首页,同时按快捷键Ctrl+Home(笔记本Ctrl+左键),查看右侧详情页 + - step_type: action + description: 2. 点击缩略图按钮,进入缩略图页 + - step_type: action + description: 3. 点击缩略图-书签按钮,进入书签页 + - step_type: action + description: 4. 点击缩略图-注释按钮,进入注释页 + - step_type: action + description: 1. 右侧详情页定位到首页 + - step_type: action + description: 2. 缩略图-缩略图页 高亮定位到文件的首页 + - step_type: action + description: 3. 缩略图-书签页 跟随高亮定位到文件的首页 + - step_type: action + description: 4. 缩略图-注释 没有高亮定位到任何页 + - step_type: action + description: 1. 当前页非尾页,同时按快捷键Ctrl+End(笔记本Ctrl+右键),查看右侧详情页 + - step_type: action + description: 2. 点击缩略图按钮,进入缩略图页 + - step_type: action + description: 3. 点击缩略图-书签按钮,进入书签页 + - step_type: action + description: 4. 点击缩略图-注释按钮,进入注释页 + - step_type: action + description: 1. 右侧详情页定位到末尾 + - step_type: action + description: 2. 缩略图-缩略图页 高亮定位到文件的末尾 + - step_type: action + description: 3. 缩略图-书签页 跟随高亮定位到文件的末尾 + - step_type: action + description: 4. 缩略图-注释 没有高亮定位到任何页 + - step_type: action + description: 1. 当前页非首页,同时按快捷键Ctrl+Home,查看右侧详情页 + - step_type: action + description: 2. 点击缩略图按钮,进入缩略图页 + - step_type: action + description: 3. 点击缩略图-书签按钮,进入书签页 + - step_type: action + description: 4. 点击缩略图-注释按钮,进入注释页 + - step_type: action + description: 1. 右侧详情页定位到首页 + - step_type: action + description: 2. 缩略图-缩略图页 高亮定位到文件的首页 + - step_type: action + description: 3. 缩略图-书签页 没有高亮定位到任何页 + - step_type: action + description: 4. 缩略图-注释 没有高亮定位到任何页 + - step_type: action + description: 1. 启动【文档查看器】检查以下控件: + - step_type: action + description: ①标题栏侧边栏按钮 + - step_type: action + description: ②查找界面的向上及向下查找 + - step_type: action + description: ③侧边栏界面的翻页按钮 + - step_type: action + description: ④侧边栏宽度 + - step_type: action + description: ⑤侧边栏tab按钮大小 + - step_type: action + description: ⑥添加书签、添加注释按钮高度 + - step_type: action + description: ⑦页码背景高度 + - step_type: action + description: ⑧退出全屏图标大小适配 + - step_type: action + description: 2. 进行涉及紧凑模式调整的控件点击和跳转 + - step_type: action + description: 3. 切换应用主题后,查看步骤一控件 + - step_type: action + description: 1. 控件呈现紧凑模式 + - step_type: action + description: 2. 调整后的控件点击响应正常,页面切换流畅 + - step_type: action + description: 3. 主题切换后,紧凑模式控件显示正常 - step_type: assert - description: 应用切换到深色主题,主界面仍然响应 - element_ref: n6 - selector: - name: Button_SelectFile - action: assert_visible - - step_type: action - description: 打开主题菜单,选择"跟随系统" - action: dtk_main_menu - items: - - 跟随系统 + description: 确认应用运行正常 +- id: suite_025 + name: 社区需求 — 社区需求相关功能 + status: active + annotation: + 测试界面: 文档区域/标题栏(综合) + 测试功能: 社区需求相关功能 + 前置条件: deepin-reader 已启动并打开一个文档 + AT元素引用: Form_CentralDocPage, Form_DMainWindow + steps: + - step_type: action + description: 启动 deepin-reader + action: session_start + - step_type: action + description: 1. 在任意位置右击 + - step_type: action + description: 2. 点击幻灯片放映 + - step_type: action + description: '1.' + - step_type: action + description: 2. 进入幻灯片播放,播放内容不会进行拉伸,顶格展示 + - step_type: action + description: 1. 依次在PDF,DJVU,DOCX任意位置右击 + - step_type: action + description: 2. 点击幻灯片放映 + - step_type: action + description: 3. 菜单栏显示 + - step_type: action + description: 1. 弹框展示 + - step_type: action + description: 2. 进入幻灯片播放,播放内容不会进行拉伸,顶格展示 + - step_type: action + description: 3. 鼠标不在菜单栏上,3秒自动隐藏(鼠标在菜单栏上,一直显示不隐藏) + - step_type: action + description: 1. 依次在PDF,DJVU,DOCX任意位置右击 + - step_type: action + description: 2. 点击幻灯片放映 + - step_type: action + description: 1. 弹框展示 + - step_type: action + description: 2. 幻灯片默认暂停播放 + - step_type: action + description: 1. 依次在PDF,DJVU,DOCX任意位置右击 + - step_type: action + description: 2. 点击幻灯片放映 + - step_type: action + description: 3. 鼠标左击点击幻灯片任意位置 + - step_type: action + description: 1. 弹框展示 + - step_type: action + description: 2. 进入幻灯片播放界面 + - step_type: action + description: 3. 切换到下一页 + - step_type: action + description: 1. 依次在PDF,DJVU,DOCX任意位置右击 + - step_type: action + description: 2. 点击幻灯片放映 + - step_type: action + description: 3. 点击方向键下键或者右键 + - step_type: action + description: 4. 点击方向键上键或者左键 + - step_type: action + description: 1. 弹框展示 + - step_type: action + description: 2. 进入幻灯片播放界面 + - step_type: action + description: 3. 切换到下一页 + - step_type: action + description: 4. 切换到上一页 + - step_type: action + description: 1. 依次在PDF,DJVU,DOCX任意位置右击 + - step_type: action + description: 2. 点击幻灯片放映 + - step_type: action + description: 3. 点击菜单键中播放按钮 + - step_type: action + description: 1. 弹框展示 + - step_type: action + description: 2. 进入幻灯片播放界面 + - step_type: action + description: 3. 按钮状态变成暂停,幻灯片开始播放 + - step_type: action + description: 1. 依次在PDF,DJVU,DOCX任意位置右击 + - step_type: action + description: 2. 点击幻灯片放映 + - step_type: action + description: 3. 手动点击到最后一页幻灯片 + - step_type: action + description: 1. 弹框展示 + - step_type: action + description: 2. 进入幻灯片播放界面 + - step_type: action + description: 3. toast提示“已是最后一页”3秒消失,向后按钮置灰 + - step_type: action + description: 1. 依次在PDF,DJVU,DOCX任意位置右击 + - step_type: action + description: 2. 点击幻灯片放映 + - step_type: action + description: 3. 播放到最后一页点击往下翻时 + - step_type: action + description: 1. 弹框展示 + - step_type: action + description: 2. 进入幻灯片播放界面 + - step_type: action + description: 3. toast提示“已是第一页”3秒后小时,向后按钮置灰 + - step_type: action + description: 1. 依次在PDF,DJVU,DOCX任意位置右击 + - step_type: action + description: 2. 点击幻灯片放映 + - step_type: action + description: 3. 自动播放时,播放到最后一页时,自动暂停 + - step_type: action + description: 1. 弹框展示 + - step_type: action + description: 2. 进入幻灯片播放界面 + - step_type: action + description: 3. 菜单键中暂停按钮变成播放按钮,再次点击播放从第一页开始播放 + - step_type: action + description: 1. 依次在PDF,DJVU,DOCX任意位置右击 + - step_type: action + description: 2. 点击幻灯片放映 + - step_type: action + description: 3. 播放到最后一页滚轮向下滚动 + - step_type: action + description: 1. 弹框展示 + - step_type: action + description: 2. 进入幻灯片播放界面 + - step_type: action + description: 3. toast提示“已是最后一页”3秒后小时,向后按钮置灰 + - step_type: action + description: 1. 依次在PDF,DJVU,DOCX任意位置右击 + - step_type: action + description: 2. 点击幻灯片放映 + - step_type: action + description: 3. 播放到最后一页键盘点击下键或右键 + - step_type: action + description: 1. 弹框展示 + - step_type: action + description: 2. 进入幻灯片播放界面 + - step_type: action + description: 3. toast提示“已是最后一页”3秒后小时,向后按钮置灰 + - step_type: action + description: 1. 依次在PDF,DJVU,DOCX任意位置右击 + - step_type: action + description: 2. 点击幻灯片放映 + - step_type: action + description: 3. 点击自动播放按钮 + - step_type: action + description: 4. 点击方向键下键或者右键 + - step_type: action + description: 5. 点击方向键上键或者左键 + - step_type: action + description: 1. 弹框展示 + - step_type: action + description: 2. 进入幻灯片播放界面 + - step_type: action + description: 3. 幻灯片开始播放 + - step_type: action + description: 4. 切换到下一页 + - step_type: action + description: 5. 切换到上一页 + - step_type: action + description: 1. 依次在PDF,DJVU,DOCX任意位置右击 + - step_type: action + description: 2. 点击幻灯片放映 + - step_type: action + description: 3. 点击自动播放按钮 + - step_type: action + description: 4. 鼠标滚轮上下滚动 + - step_type: action + description: 1. 弹框展示 + - step_type: action + description: 2. 进入幻灯片播放界面 + - step_type: action + description: 3. 幻灯片开始播放 + - step_type: action + description: 4. 切换到上一页/下一页 - step_type: assert - description: 应用主题跟随系统设置,主界面仍然响应 - element_ref: n6 - selector: - name: Button_SelectFile - action: assert_visible + description: 确认应用运行正常 diff --git a/tests/at/ui-map.md b/tests/at/ui-map.md new file mode 100644 index 00000000..5be599f8 --- /dev/null +++ b/tests/at/ui-map.md @@ -0,0 +1,193 @@ +# Deepin Reader UI Map + +> Generated via remote-codebase MCP (master @ 850a66c7) +> Source: linuxdeepin/deepin-reader + +--- + +## 组件树 (Mermaid) + +```mermaid +graph TD + MW[MainWindow - DMainWindow] + MW --> TB[TitleBar - DTitlebar] + TB --> TM[TitleMenu - DMenu: Menu_Title] + TB --> TW[TitleWidget - BaseWidget: Form_TitleWidget] + TW --> TTB[Button_ThumbnailToggle] + TW --> SW[ScaleWidget] + SW --> SDec[DIconButton: SP_DecreaseElement] + SW --> SEdit[DLineEdit: scaleEdit] + SW --> SInc[DIconButton: SP_IncreaseElement] + SW --> SArrow[DIconButton: editArrowBtn] + TB --> OptBtn[DTitlebarDWindowOptionButton] + TB --> FullBtn[DTitlebarDWindowQuitFullscreenButton] + TB --> MinBtn[DTitlebarDWindowMinButton] + TB --> MaxBtn[DTitlebarDWindowMaxButton] + TB --> CloseBtn[DTitlebarDWindowCloseButton] + + MW --> Central[Central - BaseWidget: Form_Central] + Central --> NavPage[CentralNavPage - BaseWidget: Form_CentralNavPage] + NavPage --> IconLbl[Label_Icon] + NavPage --> DragLbl[Label_Drag documents here] + NavPage --> FormatLbl[Label_format supported: ...] + NavPage --> SelectBtn[SelectFile] + + Central --> DocSheet[DocSheet - BaseWidget: Form_DocSheet] + DocSheet --> DocTabBar[DocTabBar: Form_DocTabBar] + DocSheet --> CentralDocPage[CentralDocPage: Form_CentralDocPage] + CentralDocPage --> SlidePlayWidget[SlidePlayWidget] + + DocSheet --> Browser[SheetBrowser - DGraphicsView: Form_SheetBrowser] + Browser --> Tips[Tips - TipsWidget] + Browser --> VScroll[verticalScrollBar] + Browser --> HScroll[horizontalScrollBar] + Browser --> BrowserMenu[Menu_Browser - DMenu] + Browser --> TextEditShadow[TextEditShadowWidget] + + DocSheet --> Sidebar[SheetSidebar - BaseWidget: Form_SheetSidebar] + Sidebar --> BtnCatalog[Button_Catalog] + Sidebar --> BtnBookmark[Button_BookMark] + Sidebar --> BtnNote[Button_Note] + Sidebar --> BtnThumbnail[Button_Thumbnail] + Sidebar --> BtnSearch[Button_search] + + Sidebar --> CatalogWidget[CatalogWidget: Form_CatalogWidget] + CatalogWidget --> CatTitle[Label_title - DLabel] + CatalogWidget --> CatTree[View_CatalogTree - CatalogTreeView] + + Sidebar --> BookMarkWidget[BookMarkWidget: Form_BookMarkWidget] + BookMarkWidget --> BMList[View_ImageList - SideBarImageListView] + BookMarkWidget --> BMAdd[BookmarkAdd - DPushButton] + BookMarkWidget --> BMLine[BookMarkLine - DHorizontalLine] + BookMarkWidget --> BMMenu[Menu_BookMark - DMenu] + + Sidebar --> NotesWidget[NotesWidget: Form_NotesWidget] + NotesWidget --> NList[View_ImageList - SideBarImageListView] + NotesWidget --> NAdd[NotesAdd - DPushButton] + NotesWidget --> NLine[NotesLine - DHorizontalLine] + NotesWidget --> NMenu[Menu_Note - DMenu] + + Sidebar --> SearchResWidget[SearchResWidget: Form_SearchResWidget] + SearchResWidget --> SRList[View_ImageList - SideBarImageListView] + + Sidebar --> ThumbnailWidget[ThumbnailWidget: Form_ThumbnailWidget] + ThumbnailWidget --> THList[View_ImageList - SideBarImageListView] + ThumbnailWidget --> THPage[Paging - PagingWidget] + ThumbnailWidget --> THLine[ThumbnailLine - DHorizontalLine] + + MW --> FindWidget[FindWidget] + FindWidget --> SearchEdit[Form_findSearchEdit_P - DSearchEdit] + FindWidget --> PrevBtn[SP_ArrowUpBtn - DIconButton] + FindWidget --> NextBtn[SP_ArrowDownBtn - DIconButton] + FindWidget --> CloseFindBtn[closeButton - DDialogCloseButton] + + Central --> RestoreTip[RestoreTipWidget] +``` + +--- + +## 控件表 (Widget Table) + +| Widget类 | 文件 | AT注册 | setAccessibleName | setObjectName | 分类 | 备注 | +|----------|------|--------|-------------------|---------------|------|------| +| MainWindow | reader/MainWindow.cpp | ✅ Form | — | — | container | 注册于 accessible.h | +| Central | reader/uiframe/Central.cpp | ✅ Form | — | — | container | 注册于 accessible.h | +| CentralNavPage | reader/uiframe/CentralNavPage.cpp | ✅ Form | Label_Drag documents here, Label_format supported: PDF..., SelectFile, Label_Icon | SelectFileBtn, iconSvg | interactive | 已覆盖 | +| DocSheet | reader/uiframe/DocSheet.cpp | ✅ Form | — | — | container | 注册于 accessible.h | +| DocTabBar | reader/uiframe/DocTabBar.cpp | ✅ Form | — | — | interactive | 注册于 accessible.h | +| CentralDocPage | reader/uiframe/CentralDocPage.cpp | ✅ Form | — | — | container | 注册于 accessible.h | +| TitleWidget | reader/uiframe/TitleWidget.cpp | ✅ Form | Button_ThumbnailToggle | Thumbnails | interactive | ✅ | +| TitleMenu | reader/uiframe/TitleMenu.cpp | — | Menu_Hand (子菜单) | — | interactive | 主菜单项无accessibleName | +| SheetSidebar | reader/sidebar/SheetSidebar.cpp | ✅ Form | Button_{Catalog/BookMark/Note/Thumbnail/search} | 由createBtn生成 | interactive | 动态命名 | +| SheetBrowser | reader/browser/SheetBrowser.cpp | ✅ Form | Tips, verticalScrollBar, horizontalScrollBar | — | interactive | ✅ | +| BrowserMenu | reader/browser/BrowserMenu.cpp | — | Menu_Browser | — | interactive | 菜单项无accessibleName | +| CatalogWidget | reader/sidebar/CatalogWidget.cpp | ✅ Form | Label_title, View_CatalogTree | — | interactive | ✅ | +| BookMarkWidget | reader/sidebar/BookMarkWidget.cpp | ✅ Form | View_ImageList, BookmarkAdd, BookMarkLine | BookmarkAddBtn | interactive | ✅ | +| NotesWidget | reader/sidebar/NotesWidget.cpp | ✅ Form | View_ImageList, NotesAdd, NotesLine | NotesAddBtn | interactive | ✅ | +| SearchResWidget | reader/sidebar/SearchResWidget.cpp | ✅ Form | View_ImageList | — | interactive | 缺搜索无结果提示标签 | +| ThumbnailWidget | reader/sidebar/ThumbnailWidget.cpp | ✅ Form | View_ImageList, Paging, ThumbnailLine | — | interactive | ✅ | +| ScaleWidget | reader/widgets/ScaleWidget.cpp | — | — | scaleEdit_P, scaleEdit, SP_DecreaseElement, SP_IncreaseElement, editArrowBtn | interactive | 缺accessibleName | +| PagingWidget | reader/widgets/PagingWidget.cpp | — | Label_TotalPage, Page, pageEdit, Button_ThumbnailPre, Button_ThumbnailNext, CurrentPage | Edit_Page_P, Edit_Page, thumbnailPreBtn, thumbnailNextBtn | interactive | ✅ | +| FindWidget | reader/widgets/FindWidget.cpp | — | Form_findSearchEdit_P, DLineEditChildLineEdit | findSearchEdit_P, findSearchEdit, SP_ArrowUpBtn, SP_ArrowDownBtn, closeButton | interactive | 缺上下箭头和关闭按钮的accessibleName | +| HandleMenu | reader/widgets/HandleMenu.cpp | — | — | defaultshape, handleshape | interactive | 缺accessibleName | +| ScaleMenu | reader/widgets/ScaleMenu.cpp | — | — | 由createAction生成objectName | interactive | 缺accessibleName | +| EncryptionPage | reader/widgets/EncryptionPage.cpp | — | — | passwdEdit, ensureBtn | interactive | 缺accessibleName | +| SlidePlayWidget | reader/widgets/SlidePlayWidget.cpp | — | — | 由createBtn生成objectName | interactive | 缺accessibleName | +| RestoreTipWidget | reader/widgets/RestoreTipWidget.cpp | — | — | — | interactive | 需检查 | +| TextEditShadowWidget | reader/widgets/TextEditWidget.cpp | — | — | TextEditShadowWidget | container | — | +| TransparentTextEdit | reader/widgets/TransparentTextEdit.cpp | — | — | TransparentTextEdit | interactive | 缺accessibleName | +| EyeProtectionAction | reader/eyeprotection/EyeProtectionAction.cpp | — | — | eye_0~eye_3 | interactive | 缺accessibleName | +| ColorWidgetAction | reader/widgets/ColorWidgetAction.cpp | — | — | 数字索引 | interactive | 缺accessibleName | + +--- + +## 菜单索引 + +| 菜单 | 文件 | accessibleName | 触发方式 | +|------|------|----------------|----------| +| 标题栏主菜单 | reader/uiframe/TitleMenu.cpp | Menu_Title (setAccessibleName on TitleMenu) | 点击标题栏选项按钮 | +| 标题栏工具子菜单(HandleMenu) | reader/widgets/HandleMenu.cpp | Menu_Hand (setAccessibleName on menu) | 标题主菜单→工具 | +| 文档区域右键菜单 | reader/browser/BrowserMenu.cpp | Menu_Browser | 文档区域右键 | +| 侧栏书签右键菜单 | reader/sidebar/SideBarImageListview.cpp | Menu_BookMark | 书签列表右键 | +| 侧栏注释右键菜单 | reader/sidebar/SideBarImageListview.cpp | Menu_Note | 注释列表右键 | +| 缩放下拉菜单 | reader/widgets/ScaleMenu.cpp | — (缺) | 点击缩放输入框箭头 | +| 护眼模式子菜单 | reader/eyeprotection/EyeProtectionAction.cpp | — | 标题主菜单→阅读模式 | + +--- + +## 对话框索引 + +| 对话框 | 文件 | 类型 | 触发方式 | +|--------|------|------|----------| +| 加密文件密码输入 | reader/widgets/EncryptionPage.cpp | 内嵌页面 | 打开加密PDF | +| 保存对话框 | reader/widgets/SaveDialog.h | — | 保存操作 | +| 文件属性对话框 | reader/widgets/FileAttrWidget.h | — | 文件属性查看 | +| 安全对话框 | reader/widgets/SecurityDialog.h | — | 安全操作 | +| 进度对话框 | reader/widgets/ProgressDialog.h | — | 耗时操作 | +| 快捷键显示 | reader/widgets/ShortCutShow.h | — | 快捷键 Ctrl+Shift+/ | + +--- + +## 快捷键索引 + +| 快捷键 | 作用 | +|--------|------| +| Ctrl+F / Ctrl+O / Ctrl+P / Ctrl+S | 查找/打开/打印/保存 | +| Ctrl+C | 复制 | +| ← → ↑ ↓ Space | 文档滚动/翻页 | +| F5 | 幻灯片播放 | +| F11 | 全屏 | +| Alt+1 / Alt+2 | 切换侧栏视图 | +| Alt+A / Alt+H / Alt+Z | 其他操作 | +| Ctrl+1/2/3 | 缩放预设 | +| Ctrl+D / Ctrl+M / Ctrl+R | 书签/标注等 | +| Ctrl+Plus / Ctrl+Minus | 放大/缩小 | +| Ctrl+Shift+R | 重新加载 | +| Ctrl+Shift+S | 另存为 | +| Ctrl+Shift+/ | 快捷键显示 | +| Ctrl+Home / Ctrl+End | 首页/末页 | +| Escape | 退出全屏/关闭查找 | + +--- + +## 文件:行号索引 (关键引用) + +| 文件 | 行号 | 内容 | +|------|------|------| +| reader/main.cpp | 108 | `QAccessible::installFactory(accessibleFactory)` | +| reader/app/accessible.h | 49-85 | SET_FORM_ACCESSIBLE 14个注册 | +| reader/app/accessible.h | 87-130 | accessibleFactory 函数 | +| reader/app/accessibledefine.h | 22-90 | getAccessibleName 命名算法 | +| reader/MainWindow.cpp | 620 | `m_menu->setAccessibleName("Menu_Title")` | +| reader/browser/BrowserMenu.cpp | 19 | `setAccessibleName("Menu_Browser")` | +| reader/browser/SheetBrowser.cpp | 90 | `m_tipsWidget->setAccessibleName("Tips")` | +| reader/uiframe/TitleMenu.cpp | 43 | `m_handleMenu->setAccessibleName("Menu_Hand")` | +| reader/uiframe/TitleWidget.cpp | 22 | `m_pThumbnailBtn->setAccessibleName("Button_ThumbnailToggle")` | +| reader/sidebar/SheetSidebar.cpp | 363 | `btn->setAccessibleName("Button_" + objName)` | +| reader/sidebar/BookMarkWidget.cpp | 45,52,68 | setAccessibleName 3处 | +| reader/sidebar/NotesWidget.cpp | 46,55,66 | setAccessibleName 3处 | +| reader/sidebar/CatalogWidget.cpp | 40,55 | setAccessibleName 2处 | +| reader/sidebar/ThumbnailWidget.cpp | 38,43,50 | setAccessibleName 3处 | +| reader/widgets/PagingWidget.cpp | 74,81,84,100,107,112 | setAccessibleName 6处 | +| reader/widgets/FindWidget.cpp | 120,122 | setAccessibleName 2处 | +| reader/sidebar/SideBarImageListview.cpp | 276,304 | setAccessibleName 2处 (菜单) | \ No newline at end of file diff --git a/tests/at/yaml/elements.yaml b/tests/at/yaml/elements.yaml index fa21c2bc..3c78e9ca 100644 --- a/tests/at/yaml/elements.yaml +++ b/tests/at/yaml/elements.yaml @@ -1,169 +1,133 @@ elements: - n6: + Button_SelectFile: name: Button_SelectFile - n224: - name: Button_ThumbnailToggle - n14: - name: Button_thumbnail - n15: - name: Button_catalog - n163: - name: View_CatalogTree - n16: - name: Button_bookmark - n22: - name: Button_BookmarkAdd - n17: - name: Button_annotation - n49: - name: Button_NotesAdd - n156: - name: pageEdit - role: text - n210: - name: normal.pdf - role: page tab - n209: - name: normal.pdf - role: page tab - n211: - name: normal.pdf - role: page tab - n212: - name: normal.pdf - role: page tab - n243: - name: DLineEditChildLineEdit - role: text - n244: - name: DLineEditClearButton role: button - n227: - name: DLineEditChildLineEdit - Form_CentralDocPage: - name: Form_CentralDocPage - Form_scaleEdit_P: - name: Form_scaleEdit_P - child_index: 1 - popup: click - Button_annotation: - name: Button_annotation - View_ImageList: - name: View_ImageList - child_index: 0 - Button_bookmark: - name: Button_bookmark - n0: + Form_DMainWindow: name: Form_DMainWindow role: form - n1: - name: Form_Central - role: form - n2: - name: Form_widget_1 - role: form - n3: - name: Form_CentralNavPage - role: form - n7: - name: Label_Icon - role: image + DTitlebarDWindowMinButton: + name: DTitlebarDWindowMinButton + role: button + DTitlebarDWindowMaxButton: + name: DTitlebarDWindowMaxButton + role: button + DTabBarAddButton: + name: DTabBarAddButton + role: button + Button_ThumbnailToggle: + name: Button_ThumbnailToggle + role: check box + 向左滚动: + name: 向左滚动 + role: button + 向右滚动: + name: 向右滚动 + role: button + n6: + name: DTitlebarIconLabel + role: button n8: - name: Form_CentralDocPage - role: form - n9: - name: Form_DocSheet - role: form - n10: - name: Form_SheetSidebar - role: form + name: Button_ThumbnailToggle + role: check box n11: - name: Form_SearchResWidget - role: form - n13: - name: View_ImageList - role: list + name: DLineEditChildLineEdit + role: text n18: - name: Button_search - role: check box + name: DTitlebarDWindowOptionButton + role: button n19: - name: Form_BookMarkWidget - role: form + name: DTitlebarDWindowMinButton + role: button n20: - name: View_ImageList - role: list - n24: - name: Form_NotesWidget - role: form - n25: - name: View_ImageList - role: list - n51: - name: Form_ThumbnailWidget - role: form - n52: - name: View_ImageList - role: list - n153: - name: Form_Paging - role: form - n155: - name: Form_Page - role: form - n158: - name: Button_ThumbnailPre + name: DTitlebarDWindowMaxButton role: button - n159: - name: Button_ThumbnailNext + n21: + name: DTitlebarDWindowQuitFullscreenButton role: button - n161: - name: Form_CatalogWidget - role: form - n208: - name: Form_DocTabBar - role: form - n213: - name: DTabBarAddButton + n22: + name: DTitlebarDWindowCloseButton role: button - n217: - name: Form_DMainWindowTitlebar - role: form - n221: - name: Form_DTitlebarLeftArea - role: form - n223: - name: Form_TitleWidget - role: form - n225: - name: Form_widget - role: form - n226: - name: Form_scaleEdit_P - role: form - n240: - name: Form_widget_4 - role: form - n242: - name: Form_findSearchEdit_P - role: form - n245: - name: DSearchEditIconButton + n27: + name: '' + role: page tab list + n28: + name: 向左滚动 role: button - n246: - name: Form_DSearchEditIconWidget - role: form - n247: - name: DSearchEditIconButton + n29: + name: 向右滚动 role: button - n253: - name: DTitlebarThemeMenu - role: popup menu - n254: + n30: + name: DTabBarAddButton + role: button + n36: + name: Button_SelectFile + role: button + n40: + name: 新窗口 + role: menu item + n41: + name: 新标签页 + role: menu item + n42: + name: 保存 + role: menu item + n43: + name: 另存为 + role: menu item + n44: + name: 在文件管理器中显示 + role: menu item + n45: + name: 放大镜 + role: menu item + n46: + name: 工具 + role: menu item + n48: + name: 选择工具 + role: menu item + n49: + name: 手形工具 + role: menu item + n50: + name: 搜索 + role: menu item + n51: + name: 打印 + role: menu item + n52: + name: 主题 + role: menu item + n54: + name: 浅色 + role: menu item + n55: + name: 深色 + role: menu item + n56: + name: 跟随系统 + role: menu item + n57: + name: 帮助 + role: menu item + n58: + name: 关于 + role: menu item + n59: + name: 退出 + role: menu item + n61: + name: 选择工具 + role: menu item + n62: + name: 手形工具 + role: menu item + n64: name: 浅色 role: menu item - n255: + n65: name: 深色 role: menu item - n256: + n66: name: 跟随系统 role: menu item diff --git a/tests/at/yaml/report.md b/tests/at/yaml/report.md new file mode 100644 index 00000000..4e145c37 --- /dev/null +++ b/tests/at/yaml/report.md @@ -0,0 +1,96 @@ +# AT-SPI Test Suite Coverage Report + +**生成时间**: 2026-08-20 14:02:47 +**测试目录**: tests/at/yaml + +--- + +## 1. 用例统计 + +| 指标 | 值 | +|------|-----| +| 总用例数 | 25 | +| 含断言用例 | 25 | +| 无断言用例 | 0 | +| 断言覆盖率 | 100.0% | + +### 各模块用例分布 + +| 模块 | 用例数 | +|------|--------| +| 左侧栏—书签视图 | 2 | +| 左侧栏—注释视图 | 3 | +| 左侧栏—目录视图 | 1 | +| 左侧栏—缩略图视图 | 1 | +| 文档区域 | 2 | +| 文档区域(右键菜单) | 1 | +| 文档区域(快捷键) | 2 | +| 文档区域_标题栏 | 7 | +| 文档区域_标题栏(综合) | 1 | +| 标题栏主菜单 | 2 | +| 标题栏窗口按钮 | 1 | +| 顶部标签页栏 | 2 | + +## 2. AT-SPI 元素覆盖率 + +### 口径 A — 基于运行时元素表(elements.yaml) + +| 指标 | 值 | +|------|-----| +| 已覆盖元素数 | 0 | +| 可用元素数 | 35 | +| 覆盖率 A | 0.0% | + +*仅基于运行时元素表(口径 A),无源码全集对照(口径 B)。* + +### 未覆盖元素 + +| 名称 | 角色 | 引用键 | +|------|------|--------| +| Button_SelectFile | button | n36 | +| Button_ThumbnailToggle | check box | n8 | +| DLineEditChildLineEdit | text | n11 | +| DTabBarAddButton | button | n30 | +| DTitlebarDWindowCloseButton | button | n22 | +| DTitlebarDWindowMaxButton | button | n20 | +| DTitlebarDWindowMinButton | button | n19 | +| DTitlebarDWindowOptionButton | button | n18 | +| DTitlebarDWindowQuitFullscreenButton | button | n21 | +| DTitlebarIconLabel | button | n6 | +| 主题 | menu item | n52 | +| 保存 | menu item | n42 | +| 关于 | menu item | n58 | +| 另存为 | menu item | n43 | +| 向右滚动 | button | n29 | +| 向左滚动 | button | n28 | +| 在文件管理器中显示 | menu item | n44 | +| 工具 | menu item | n46 | +| 帮助 | menu item | n57 | +| 手形工具 | menu item | n49 | +| 手形工具 | menu item | n62 | +| 打印 | menu item | n51 | +| 搜索 | menu item | n50 | +| 放大镜 | menu item | n45 | +| 新标签页 | menu item | n41 | +| 新窗口 | menu item | n40 | +| 浅色 | menu item | n54 | +| 浅色 | menu item | n64 | +| 深色 | menu item | n55 | +| 深色 | menu item | n65 | +| ... 共 35 个未覆盖元素,仅显示前 30 | | | + +## 3. 重复用例检测 + +未发现重复用例。 + +## 5. 缺口分析 + +共有 **35** 个 AT-SPI 元素未被任何用例引用。 +可能原因: +- 元素在当前测试场景中不可达(条件渲染、窗口未打开) +- 元素缺少 `setAccessibleName()`,无法通过名称定位 +- 用例未覆盖该功能路径 + +--- + +*报告由 coverage.py 自动生成* \ No newline at end of file diff --git "a/tests/at/yaml/\344\270\273\347\225\214\351\235\242 \342\200\224 \346\227\240\346\226\207\346\241\243\346\211\223\345\274\200/\344\270\273\347\225\214\351\235\242 \342\200\224 \346\227\240\346\226\207\346\241\243\346\211\223\345\274\200.suite.yaml" "b/tests/at/yaml/\344\270\273\347\225\214\351\235\242 \342\200\224 \346\227\240\346\226\207\346\241\243\346\211\223\345\274\200/\344\270\273\347\225\214\351\235\242 \342\200\224 \346\227\240\346\226\207\346\241\243\346\211\223\345\274\200.suite.yaml" deleted file mode 100644 index 1d958b99..00000000 --- "a/tests/at/yaml/\344\270\273\347\225\214\351\235\242 \342\200\224 \346\227\240\346\226\207\346\241\243\346\211\223\345\274\200/\344\270\273\347\225\214\351\235\242 \342\200\224 \346\227\240\346\226\207\346\241\243\346\211\223\345\274\200.suite.yaml" +++ /dev/null @@ -1,28 +0,0 @@ -name: 主界面 — 无文档打开_suite -app: deepin-reader -description: '' -module: 主界面 — 无文档打开 -tags: [] -fast_fail: false -env_check: [] -setup: -- action: session_start - command: deepin-reader - wait: 3.0 -suites: -- id: suite_main_no_doc_s1 - name: 主界面 — 无文档打开 — 打开文件 - description: '' - tags: [] - steps: - - action: mouse_click - ref: n6 - selector: - name: Button_SelectFile - assert_steps: - - action: assert_element - ref: n6 - selector: - name: Button_SelectFile -teardown: -- action: session_stop diff --git "a/tests/at/yaml/\345\217\263\351\224\256\344\276\247\346\240\217\344\271\246\347\255\276\350\217\234\345\215\225/\345\217\263\351\224\256\344\276\247\346\240\217\344\271\246\347\255\276\350\217\234\345\215\225.suite.yaml" "b/tests/at/yaml/\345\217\263\351\224\256\344\276\247\346\240\217\344\271\246\347\255\276\350\217\234\345\215\225/\345\217\263\351\224\256\344\276\247\346\240\217\344\271\246\347\255\276\350\217\234\345\215\225.suite.yaml" deleted file mode 100644 index 21524bf3..00000000 --- "a/tests/at/yaml/\345\217\263\351\224\256\344\276\247\346\240\217\344\271\246\347\255\276\350\217\234\345\215\225/\345\217\263\351\224\256\344\276\247\346\240\217\344\271\246\347\255\276\350\217\234\345\215\225.suite.yaml" +++ /dev/null @@ -1,64 +0,0 @@ -name: 右键侧栏书签菜单_suite -app: deepin-reader -description: '' -module: 右键侧栏书签菜单 -tags: [] -fast_fail: false -env_check: [] -setup: -- action: session_start - command: deepin-reader ${TEST_FILES_DIR}/normal.pdf - wait: 3.0 -suites: -- id: suite_context_menu_bookmark_s1 - name: 右键侧栏书签菜单 — 所有菜单项 - description: '' - tags: [] - steps: - - action: mouse_click - ref: n224 - selector: - name: Button_ThumbnailToggle - - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 添加书签 - - action: mouse_click - selector: - name: Button_bookmark - - action: mouse_click - selector: - name: View_ImageList - child_index: 0 - - action: dtk_context_menu - selector: - name: View_ImageList - child_index: 0 - items: - - 删除书签 - - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 添加书签 - - action: mouse_click - selector: - name: Button_bookmark - - action: mouse_click - selector: - name: View_ImageList - child_index: 0 - - action: dtk_context_menu - selector: - name: View_ImageList - child_index: 0 - items: - - 全部删除 - assert_steps: - - action: assert_element - selector: - name: Form_CentralDocPage - role: form -teardown: -- action: session_stop diff --git "a/tests/at/yaml/\345\217\263\351\224\256\344\276\247\346\240\217\346\263\250\351\207\212\350\217\234\345\215\225/\345\217\263\351\224\256\344\276\247\346\240\217\346\263\250\351\207\212\350\217\234\345\215\225.suite.yaml" "b/tests/at/yaml/\345\217\263\351\224\256\344\276\247\346\240\217\346\263\250\351\207\212\350\217\234\345\215\225/\345\217\263\351\224\256\344\276\247\346\240\217\346\263\250\351\207\212\350\217\234\345\215\225.suite.yaml" deleted file mode 100644 index 74ff8e51..00000000 --- "a/tests/at/yaml/\345\217\263\351\224\256\344\276\247\346\240\217\346\263\250\351\207\212\350\217\234\345\215\225/\345\217\263\351\224\256\344\276\247\346\240\217\346\263\250\351\207\212\350\217\234\345\215\225.suite.yaml" +++ /dev/null @@ -1,76 +0,0 @@ -name: 右键侧栏注释菜单_suite -app: deepin-reader -description: '' -module: 右键侧栏注释菜单 -tags: [] -fast_fail: false -env_check: [] -setup: -- action: session_start - command: deepin-reader ${TEST_FILES_DIR}/normal.pdf - wait: 3.0 -suites: -- id: suite_context_menu_note_s1 - name: 右键侧栏注释菜单 — 所有菜单项 - description: '' - tags: [] - steps: - - action: mouse_click - ref: n224 - selector: - name: Button_ThumbnailToggle - - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 添加注释 - - action: mouse_click - selector: - name: Button_annotation - - action: mouse_click - selector: - name: View_ImageList - child_index: 0 - - action: dtk_context_menu - selector: - name: View_ImageList - child_index: 0 - items: - - 复制 - - action: dtk_context_menu - selector: - name: View_ImageList - child_index: 0 - items: - - 删除注释 - - action: mouse_click - selector: - name: Button_bookmark - - action: mouse_click - selector: - name: Form_CentralDocPage - - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 添加注释 - - action: mouse_click - selector: - name: Button_annotation - - action: mouse_click - selector: - name: View_ImageList - child_index: 0 - - action: dtk_context_menu - selector: - name: View_ImageList - child_index: 0 - items: - - 全部删除 - assert_steps: - - action: assert_element - selector: - name: Form_CentralDocPage - role: form -teardown: -- action: session_stop diff --git "a/tests/at/yaml/\345\217\263\351\224\256\346\226\207\346\241\243\345\214\272\345\237\237\350\217\234\345\215\225/\345\217\263\351\224\256\346\226\207\346\241\243\345\214\272\345\237\237\350\217\234\345\215\225.suite.yaml" "b/tests/at/yaml/\345\217\263\351\224\256\346\226\207\346\241\243\345\214\272\345\237\237\350\217\234\345\215\225/\345\217\263\351\224\256\346\226\207\346\241\243\345\214\272\345\237\237\350\217\234\345\215\225.suite.yaml" deleted file mode 100644 index 85bf6a6d..00000000 --- "a/tests/at/yaml/\345\217\263\351\224\256\346\226\207\346\241\243\345\214\272\345\237\237\350\217\234\345\215\225/\345\217\263\351\224\256\346\226\207\346\241\243\345\214\272\345\237\237\350\217\234\345\215\225.suite.yaml" +++ /dev/null @@ -1,136 +0,0 @@ -name: 右键文档区域菜单_suite -app: deepin-reader -description: '' -module: 右键文档区域菜单 -tags: [] -fast_fail: false -env_check: [] -setup: -- action: session_start - command: deepin-reader ${TEST_FILES_DIR}/normal.pdf - wait: 3.0 -suites: -- id: suite_context_menu_doc_s1 - name: 右键文档区域菜单 — 所有菜单项 - description: '' - tags: [] - steps: - - action: mouse_click - selector: - name: Form_CentralDocPage - - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 搜索 - - action: keyboard_press - key: escape - - action: mouse_click - selector: - name: Form_CentralDocPage - - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 后一页 - - action: mouse_click - selector: - name: Form_CentralDocPage - - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 最后一页 - - action: mouse_click - selector: - name: Form_CentralDocPage - - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 前一页 - - action: mouse_click - selector: - name: Form_CentralDocPage - - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 第一页 - - action: mouse_click - selector: - name: Form_CentralDocPage - - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 后一页 - - action: mouse_click - selector: - name: Form_CentralDocPage - - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 添加书签 - - action: mouse_click - selector: - name: Form_CentralDocPage - - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 添加注释 - - action: mouse_click - selector: - name: Form_CentralDocPage - - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 全屏 - - action: keyboard_press - key: escape - - action: mouse_click - selector: - name: Form_CentralDocPage - - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 幻灯片放映 - - action: keyboard_press - key: escape - - action: mouse_click - selector: - name: Form_CentralDocPage - - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 左旋转 - - action: mouse_click - selector: - name: Form_CentralDocPage - - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 右旋转 - - action: mouse_click - selector: - name: Form_CentralDocPage - - action: dtk_context_menu - selector: - name: Form_CentralDocPage - items: - - 文档信息 - - action: keyboard_press - key: escape - assert_steps: - - action: assert_element - selector: - name: Form_CentralDocPage - role: form -teardown: -- action: session_stop diff --git "a/tests/at/yaml/\345\217\263\351\224\256\347\274\251\346\224\276\345\214\272\345\237\237\350\217\234\345\215\225/\345\217\263\351\224\256\347\274\251\346\224\276\345\214\272\345\237\237\350\217\234\345\215\225.suite.yaml" "b/tests/at/yaml/\345\217\263\351\224\256\347\274\251\346\224\276\345\214\272\345\237\237\350\217\234\345\215\225/\345\217\263\351\224\256\347\274\251\346\224\276\345\214\272\345\237\237\350\217\234\345\215\225.suite.yaml" deleted file mode 100644 index a6247ec9..00000000 --- "a/tests/at/yaml/\345\217\263\351\224\256\347\274\251\346\224\276\345\214\272\345\237\237\350\217\234\345\215\225/\345\217\263\351\224\256\347\274\251\346\224\276\345\214\272\345\237\237\350\217\234\345\215\225.suite.yaml" +++ /dev/null @@ -1,63 +0,0 @@ -name: 右键缩放区域菜单_suite -app: deepin-reader -description: '' -module: 右键缩放区域菜单 -tags: [] -fast_fail: false -env_check: [] -setup: -- action: session_start - command: deepin-reader ${TEST_FILES_DIR}/normal.pdf - wait: 3.0 -suites: -- id: suite_context_menu_scale_s1 - name: 右键缩放区域菜单 — 所有菜单项 - description: '' - tags: [] - steps: - - action: mouse_click - selector: - name: Form_CentralDocPage - - action: dtk_context_menu - selector: - name: Form_scaleEdit_P - child_index: 1 - popup: click - items: - - 双页显示 - - action: dtk_context_menu - selector: - name: Form_scaleEdit_P - child_index: 1 - popup: click - items: - - 默认大小 - - action: dtk_context_menu - selector: - name: Form_scaleEdit_P - child_index: 1 - popup: click - items: - - 适合页面 - - action: dtk_context_menu - selector: - name: Form_scaleEdit_P - child_index: 1 - popup: click - items: - - 适应高度 - - action: dtk_context_menu - selector: - name: Form_scaleEdit_P - child_index: 1 - popup: click - items: - - 适应宽度 - assert_steps: - - action: assert_element - ref: n6 - selector: - name: Form_CentralDocPage - role: form -teardown: -- action: session_stop diff --git "a/tests/at/yaml/\345\257\274\350\210\252\351\241\265(\346\227\240\346\226\207\346\241\243)/\345\257\274\350\210\252\351\241\265(\346\227\240\346\226\207\346\241\243).suite.yaml" "b/tests/at/yaml/\345\257\274\350\210\252\351\241\265(\346\227\240\346\226\207\346\241\243)/\345\257\274\350\210\252\351\241\265(\346\227\240\346\226\207\346\241\243).suite.yaml" new file mode 100644 index 00000000..ee8a94b9 --- /dev/null +++ "b/tests/at/yaml/\345\257\274\350\210\252\351\241\265(\346\227\240\346\226\207\346\241\243)/\345\257\274\350\210\252\351\241\265(\346\227\240\346\226\207\346\241\243).suite.yaml" @@ -0,0 +1,46 @@ +name: 导航页(无文档)_suite +app: deepin-reader +description: '' +module: 导航页(无文档) +tags: [] +fast_fail: false +env_check: [] +setup: +- action: session_start + command: deepin-reader + wait: 3.0 +suites: +- id: suite_main_no_doc_s1 + name: 主界面 — 无文档打开 + description: '' + tags: [] + steps: [] + assert_steps: + - action: assert_element + selector: + name: Button_SelectFile + role: button + - action: assert_element + selector: + name: Form_DMainWindow + role: form +- id: suite_select_file_s1 + name: 导航页 — 选择文件按钮 + description: '' + tags: [] + steps: + - action: mouse_click + selector: + name: Button_SelectFile + role: button + assert_steps: + - action: assert_element + selector: + name: Form_DMainWindow + role: form + - action: assert_element + selector: + name: Form_DMainWindow + role: form +teardown: +- action: session_stop diff --git "a/tests/at/yaml/\345\267\246\344\276\247\346\240\217 \342\200\224 \346\214\211\351\222\256\345\210\207\346\215\242/\345\267\246\344\276\247\346\240\217 \342\200\224 \346\214\211\351\222\256\345\210\207\346\215\242.suite.yaml" "b/tests/at/yaml/\345\267\246\344\276\247\346\240\217 \342\200\224 \346\214\211\351\222\256\345\210\207\346\215\242/\345\267\246\344\276\247\346\240\217 \342\200\224 \346\214\211\351\222\256\345\210\207\346\215\242.suite.yaml" deleted file mode 100644 index 6a95df43..00000000 --- "a/tests/at/yaml/\345\267\246\344\276\247\346\240\217 \342\200\224 \346\214\211\351\222\256\345\210\207\346\215\242/\345\267\246\344\276\247\346\240\217 \342\200\224 \346\214\211\351\222\256\345\210\207\346\215\242.suite.yaml" +++ /dev/null @@ -1,56 +0,0 @@ -name: 左侧栏 — 按钮切换_suite -app: deepin-reader -description: '' -module: 左侧栏 — 按钮切换 -tags: [] -fast_fail: false -env_check: [] -setup: -- action: session_start - command: deepin-reader ${TEST_FILES_DIR}/normal.pdf - wait: 3.0 -suites: -- id: suite_sidebar_tabs_s1 - name: 左侧栏 — 按钮切换 — 缩略图/目录/书签/注释 - description: '' - tags: [] - steps: - - action: mouse_click - ref: n224 - selector: - name: Button_ThumbnailToggle - - action: mouse_click - ref: n14 - selector: - name: Button_thumbnail - - action: mouse_click - ref: n15 - selector: - name: Button_catalog - - action: mouse_click - ref: n16 - selector: - name: Button_bookmark - - action: mouse_click - ref: n17 - selector: - name: Button_annotation - assert_steps: - - action: assert_element - ref: n14 - selector: - name: Button_thumbnail - - action: assert_element - ref: n163 - selector: - name: View_CatalogTree - - action: assert_element - ref: n22 - selector: - name: Button_BookmarkAdd - - action: assert_element - ref: n49 - selector: - name: Button_NotesAdd -teardown: -- action: session_stop diff --git "a/tests/at/yaml/\345\267\246\344\276\247\346\240\217 \342\200\224 \347\233\256\345\275\225\350\247\206\345\233\276/\345\267\246\344\276\247\346\240\217 \342\200\224 \347\233\256\345\275\225\350\247\206\345\233\276.suite.yaml" "b/tests/at/yaml/\345\267\246\344\276\247\346\240\217 \342\200\224 \347\233\256\345\275\225\350\247\206\345\233\276/\345\267\246\344\276\247\346\240\217 \342\200\224 \347\233\256\345\275\225\350\247\206\345\233\276.suite.yaml" deleted file mode 100644 index 7b06d63a..00000000 --- "a/tests/at/yaml/\345\267\246\344\276\247\346\240\217 \342\200\224 \347\233\256\345\275\225\350\247\206\345\233\276/\345\267\246\344\276\247\346\240\217 \342\200\224 \347\233\256\345\275\225\350\247\206\345\233\276.suite.yaml" +++ /dev/null @@ -1,40 +0,0 @@ -name: 左侧栏 — 目录视图_suite -app: deepin-reader -description: '' -module: 左侧栏 — 目录视图 -tags: [] -fast_fail: false -env_check: [] -setup: -- action: session_start - command: deepin-reader ${TEST_FILES_DIR}/normal.pdf - wait: 3.0 -suites: -- id: suite_sidebar_catalog_s1 - name: 左侧栏 — 目录视图 — 目录树显示和点击跳转 - description: '' - tags: [] - steps: - - action: mouse_click - ref: n224 - selector: - name: Button_ThumbnailToggle - - action: mouse_click - ref: n15 - selector: - name: Button_catalog - - action: mouse_click - ref: n163 - selector: - name: View_CatalogTree - assert_steps: - - action: assert_element - ref: n163 - selector: - name: View_CatalogTree - - action: assert_element - ref: n163 - selector: - name: View_CatalogTree -teardown: -- action: session_stop diff --git "a/tests/at/yaml/\345\267\246\344\276\247\346\240\217 \342\200\224 \347\274\251\347\225\245\345\233\276\350\247\206\345\233\276/\345\267\246\344\276\247\346\240\217 \342\200\224 \347\274\251\347\225\245\345\233\276\350\247\206\345\233\276.suite.yaml" "b/tests/at/yaml/\345\267\246\344\276\247\346\240\217 \342\200\224 \347\274\251\347\225\245\345\233\276\350\247\206\345\233\276/\345\267\246\344\276\247\346\240\217 \342\200\224 \347\274\251\347\225\245\345\233\276\350\247\206\345\233\276.suite.yaml" deleted file mode 100644 index 5ccf35db..00000000 --- "a/tests/at/yaml/\345\267\246\344\276\247\346\240\217 \342\200\224 \347\274\251\347\225\245\345\233\276\350\247\206\345\233\276/\345\267\246\344\276\247\346\240\217 \342\200\224 \347\274\251\347\225\245\345\233\276\350\247\206\345\233\276.suite.yaml" +++ /dev/null @@ -1,42 +0,0 @@ -name: 左侧栏 — 缩略图视图_suite -app: deepin-reader -description: '' -module: 左侧栏 — 缩略图视图 -tags: [] -fast_fail: false -env_check: [] -setup: -- action: session_start - command: deepin-reader ${TEST_FILES_DIR}/normal.pdf - wait: 3.0 -suites: -- id: suite_sidebar_thumbnails_s1 - name: 左侧栏 — 缩略图视图 — 分页导航 - description: '' - tags: [] - steps: - - action: mouse_click - ref: n224 - selector: - name: Button_ThumbnailToggle - - action: mouse_click - ref: n14 - selector: - name: Button_thumbnail - - action: mouse_click - ref: n156 - selector: - name: pageEdit - role: text - - action: keyboard_press - key: backspace - - action: keyboard_press - key: escape - assert_steps: - - action: assert_element - ref: n156 - selector: - name: pageEdit - role: text -teardown: -- action: session_stop diff --git "a/tests/at/yaml/\345\267\246\344\276\247\346\240\217 \342\200\224 \344\271\246\347\255\276\350\247\206\345\233\276/\345\267\246\344\276\247\346\240\217 \342\200\224 \344\271\246\347\255\276\350\247\206\345\233\276.suite.yaml" "b/tests/at/yaml/\345\267\246\344\276\247\346\240\217\342\200\224\347\274\251\347\225\245\345\233\276\350\247\206\345\233\276/\345\267\246\344\276\247\346\240\217\342\200\224\347\274\251\347\225\245\345\233\276\350\247\206\345\233\276.suite.yaml" similarity index 50% rename from "tests/at/yaml/\345\267\246\344\276\247\346\240\217 \342\200\224 \344\271\246\347\255\276\350\247\206\345\233\276/\345\267\246\344\276\247\346\240\217 \342\200\224 \344\271\246\347\255\276\350\247\206\345\233\276.suite.yaml" rename to "tests/at/yaml/\345\267\246\344\276\247\346\240\217\342\200\224\347\274\251\347\225\245\345\233\276\350\247\206\345\233\276/\345\267\246\344\276\247\346\240\217\342\200\224\347\274\251\347\225\245\345\233\276\350\247\206\345\233\276.suite.yaml" index 58c4eb50..e6092b35 100644 --- "a/tests/at/yaml/\345\267\246\344\276\247\346\240\217 \342\200\224 \344\271\246\347\255\276\350\247\206\345\233\276/\345\267\246\344\276\247\346\240\217 \342\200\224 \344\271\246\347\255\276\350\247\206\345\233\276.suite.yaml" +++ "b/tests/at/yaml/\345\267\246\344\276\247\346\240\217\342\200\224\347\274\251\347\225\245\345\233\276\350\247\206\345\233\276/\345\267\246\344\276\247\346\240\217\342\200\224\347\274\251\347\225\245\345\233\276\350\247\206\345\233\276.suite.yaml" @@ -1,7 +1,7 @@ -name: 左侧栏 — 书签视图_suite +name: 左侧栏—缩略图视图_suite app: deepin-reader description: '' -module: 左侧栏 — 书签视图 +module: 左侧栏—缩略图视图 tags: [] fast_fail: false env_check: [] @@ -10,27 +10,19 @@ setup: command: deepin-reader ${TEST_FILES_DIR}/normal.pdf wait: 3.0 suites: -- id: suite_sidebar_bookmarks_s1 - name: 左侧栏 — 书签视图 — 添加书签 +- id: suite_sidebar_toggle_s1 + name: 左侧栏 — 缩略图面板切换 description: '' tags: [] steps: - action: mouse_click - ref: n224 selector: name: Button_ThumbnailToggle - - action: mouse_click - ref: n16 - selector: - name: Button_bookmark - - action: mouse_click - ref: n22 - selector: - name: Button_BookmarkAdd + role: check box assert_steps: - action: assert_element - ref: n22 selector: - name: Button_BookmarkAdd + name: Form_DMainWindow + role: form teardown: - action: session_stop diff --git "a/tests/at/yaml/\346\226\207\346\241\243\345\214\272\345\237\237(\345\277\253\346\215\267\351\224\256)/\346\226\207\346\241\243\345\214\272\345\237\237(\345\277\253\346\215\267\351\224\256).suite.yaml" "b/tests/at/yaml/\346\226\207\346\241\243\345\214\272\345\237\237(\345\277\253\346\215\267\351\224\256)/\346\226\207\346\241\243\345\214\272\345\237\237(\345\277\253\346\215\267\351\224\256).suite.yaml" new file mode 100644 index 00000000..02d666c2 --- /dev/null +++ "b/tests/at/yaml/\346\226\207\346\241\243\345\214\272\345\237\237(\345\277\253\346\215\267\351\224\256)/\346\226\207\346\241\243\345\214\272\345\237\237(\345\277\253\346\215\267\351\224\256).suite.yaml" @@ -0,0 +1,52 @@ +name: 文档区域(快捷键)_suite +app: deepin-reader +description: '' +module: 文档区域(快捷键) +tags: [] +fast_fail: false +env_check: [] +setup: +- action: session_start + command: deepin-reader ${TEST_FILES_DIR}/normal.pdf + wait: 3.0 +suites: +- id: suite_search_ctrlf_s1 + name: 查找框 — Ctrl+F 查找 + description: '' + tags: [] + steps: + - action: keyboard_hot_key + key: ctrl+f + assert_steps: + - action: assert_element + selector: + name: Form_DMainWindow + role: form +- id: suite_zoom_s1 + name: 缩放 — Ctrl+Plus/Minus 缩放 + description: '' + tags: [] + steps: + - action: keyboard_hot_key + key: ctrl+plus + - action: keyboard_hot_key + key: ctrl+minus + assert_steps: + - action: assert_element + selector: + name: Form_DMainWindow + role: form +- id: suite_ctrl_s_save_s1 + name: 键盘快捷键 — Ctrl+S 保存 + description: '' + tags: [] + steps: + - action: keyboard_hot_key + key: ctrl+s + assert_steps: + - action: assert_element + selector: + name: Form_DMainWindow + role: form +teardown: +- action: session_stop diff --git "a/tests/at/yaml/\346\240\207\351\242\230\346\240\217\344\270\273\350\217\234\345\215\225/\346\240\207\351\242\230\346\240\217\344\270\273\350\217\234\345\215\225.suite.yaml" "b/tests/at/yaml/\346\240\207\351\242\230\346\240\217\344\270\273\350\217\234\345\215\225/\346\240\207\351\242\230\346\240\217\344\270\273\350\217\234\345\215\225.suite.yaml" index 13bc7869..eb280c63 100644 --- "a/tests/at/yaml/\346\240\207\351\242\230\346\240\217\344\270\273\350\217\234\345\215\225/\346\240\207\351\242\230\346\240\217\344\270\273\350\217\234\345\215\225.suite.yaml" +++ "b/tests/at/yaml/\346\240\207\351\242\230\346\240\217\344\270\273\350\217\234\345\215\225/\346\240\207\351\242\230\346\240\217\344\270\273\350\217\234\345\215\225.suite.yaml" @@ -10,8 +10,104 @@ setup: command: deepin-reader ${TEST_FILES_DIR}/normal.pdf wait: 3.0 suites: -- id: suite_titlebar_main_menu_s1 - name: 标题栏主菜单 — 所有菜单项导航 +- id: suite_main_menu_new_window_s1 + name: 标题栏主菜单 — 新窗口 + description: '' + tags: [] + steps: + - action: dtk_main_menu + items: + - 新窗口 + assert_steps: + - action: assert_element + selector: + name: Form_DMainWindow + role: form +- id: suite_main_menu_new_tab_s1 + name: 标题栏主菜单 — 新标签页 + description: '' + tags: [] + steps: + - action: dtk_main_menu + items: + - 新标签页 + assert_steps: + - action: assert_element + selector: + name: Form_DMainWindow + role: form +- id: suite_main_menu_save_s1 + name: 标题栏主菜单 — 保存 + description: '' + tags: [] + steps: + - action: dtk_main_menu + items: + - 保存 + assert_steps: + - action: assert_element + selector: + name: Form_DMainWindow + role: form +- id: suite_main_menu_search_s1 + name: 标题栏主菜单 — 搜索 + description: '' + tags: [] + steps: + - action: dtk_main_menu + items: + - 搜索 + assert_steps: + - action: assert_element + selector: + name: Form_DMainWindow + role: form +- id: suite_main_menu_print_s1 + name: 标题栏主菜单 — 打印 + description: '' + tags: [] + steps: + - action: dtk_main_menu + items: + - 打印 + assert_steps: + - action: assert_element + selector: + name: Form_DMainWindow + role: form +- id: suite_main_menu_theme_s1 + name: 标题栏主菜单 — 主题切换 + description: '' + tags: [] + steps: + - action: dtk_main_menu + items: + - 主题 + - 浅色 + - action: dtk_main_menu + items: + - 主题 + - 深色 + assert_steps: + - action: assert_element + selector: + name: Form_DMainWindow + role: form +- id: suite_main_menu_about_s1 + name: 标题栏主菜单 — 关于 + description: '' + tags: [] + steps: + - action: dtk_main_menu + items: + - 关于 + assert_steps: + - action: assert_element + selector: + name: Form_DMainWindow + role: form +- id: suite_main_menu_tools_s1 + name: 标题栏主菜单 — 工具切换 description: '' tags: [] steps: @@ -23,14 +119,10 @@ suites: items: - 工具 - 手形工具 - - action: dtk_main_menu - items: - - 搜索 - - action: keyboard_press - key: escape assert_steps: - action: assert_element selector: - name: Form_CentralDocPage + name: Form_DMainWindow + role: form teardown: - action: session_stop diff --git "a/tests/at/yaml/\346\240\207\351\242\230\346\240\217\344\270\273\351\242\230\350\217\234\345\215\225/\346\240\207\351\242\230\346\240\217\344\270\273\351\242\230\350\217\234\345\215\225.suite.yaml" "b/tests/at/yaml/\346\240\207\351\242\230\346\240\217\344\270\273\351\242\230\350\217\234\345\215\225/\346\240\207\351\242\230\346\240\217\344\270\273\351\242\230\350\217\234\345\215\225.suite.yaml" deleted file mode 100644 index 8368edc2..00000000 --- "a/tests/at/yaml/\346\240\207\351\242\230\346\240\217\344\270\273\351\242\230\350\217\234\345\215\225/\346\240\207\351\242\230\346\240\217\344\270\273\351\242\230\350\217\234\345\215\225.suite.yaml" +++ /dev/null @@ -1,44 +0,0 @@ -name: 标题栏主题菜单_suite -app: deepin-reader -description: '' -module: 标题栏主题菜单 -tags: [] -fast_fail: false -env_check: [] -setup: -- action: session_start - command: deepin-reader - wait: 3.0 -suites: -- id: suite_theme_menu_v2_s1 - name: 标题栏主题菜单 — 浅色/深色/跟随系统切换(items方式) - description: '' - tags: [] - steps: - - action: dtk_main_menu - items: - - 主题 - - 浅色 - - action: dtk_main_menu - items: - - 主题 - - 深色 - - action: dtk_main_menu - items: - - 主题 - - 跟随系统 - assert_steps: - - action: assert_element - ref: n6 - selector: - name: Button_SelectFile - - action: assert_element - ref: n6 - selector: - name: Button_SelectFile - - action: assert_element - ref: n6 - selector: - name: Button_SelectFile -teardown: -- action: session_stop diff --git "a/tests/at/yaml/\346\240\207\351\242\230\346\240\217\346\220\234\347\264\242\346\241\206/\346\240\207\351\242\230\346\240\217\346\220\234\347\264\242\346\241\206.suite.yaml" "b/tests/at/yaml/\346\240\207\351\242\230\346\240\217\346\220\234\347\264\242\346\241\206/\346\240\207\351\242\230\346\240\217\346\220\234\347\264\242\346\241\206.suite.yaml" deleted file mode 100644 index 7fe8c8fd..00000000 --- "a/tests/at/yaml/\346\240\207\351\242\230\346\240\217\346\220\234\347\264\242\346\241\206/\346\240\207\351\242\230\346\240\217\346\220\234\347\264\242\346\241\206.suite.yaml" +++ /dev/null @@ -1,48 +0,0 @@ -name: 标题栏搜索框_suite -app: deepin-reader -description: '' -module: 标题栏搜索框 -tags: [] -fast_fail: false -env_check: [] -setup: -- action: session_start - command: deepin-reader ${TEST_FILES_DIR}/normal.pdf - wait: 3.0 -suites: -- id: suite_titlebar_search_s1 - name: 标题栏搜索框 — 关键字输入/清除/搜索 - description: '' - tags: [] - steps: - - action: dtk_main_menu - items: - - 搜索 - # 会点击到缩放框 - # - action: mouse_click - # ref: n243 - # selector: - # name: DLineEditChildLineEdit - # role: text - - action: keyboard_type_text - text: test - - action: keyboard_press - key: return - - action: mouse_click - ref: n244 - selector: - name: DLineEditClearButton - role: button - assert_steps: - - action: assert_element - ref: n243 - selector: - name: DLineEditChildLineEdit - role: text - - action: assert_element - ref: n244 - selector: - name: DLineEditClearButton - role: button -teardown: -- action: session_stop diff --git "a/tests/at/yaml/\346\240\207\351\242\230\346\240\217\347\252\227\345\217\243\346\214\211\351\222\256/\346\240\207\351\242\230\346\240\217\347\252\227\345\217\243\346\214\211\351\222\256.suite.yaml" "b/tests/at/yaml/\346\240\207\351\242\230\346\240\217\347\252\227\345\217\243\346\214\211\351\222\256/\346\240\207\351\242\230\346\240\217\347\252\227\345\217\243\346\214\211\351\222\256.suite.yaml" new file mode 100644 index 00000000..4152faea --- /dev/null +++ "b/tests/at/yaml/\346\240\207\351\242\230\346\240\217\347\252\227\345\217\243\346\214\211\351\222\256/\346\240\207\351\242\230\346\240\217\347\252\227\345\217\243\346\214\211\351\222\256.suite.yaml" @@ -0,0 +1,54 @@ +name: 标题栏窗口按钮_suite +app: deepin-reader +description: '' +module: 标题栏窗口按钮 +tags: [] +fast_fail: false +env_check: [] +setup: +- action: session_start + command: deepin-reader ${TEST_FILES_DIR}/normal.pdf + wait: 3.0 +suites: +- id: suite_window_buttons_s1 + name: 标题栏 — 窗口最小化 + description: '' + tags: [] + steps: + - action: mouse_click + selector: + name: DTitlebarDWindowMinButton + role: button + assert_steps: + - action: assert_element + selector: + name: Form_DMainWindow + role: form +- id: suite_window_max_s1 + name: 标题栏 — 窗口最大化 + description: '' + tags: [] + steps: + - action: mouse_click + selector: + name: DTitlebarDWindowMaxButton + role: button + assert_steps: + - action: assert_element + selector: + name: Form_DMainWindow + role: form +- id: suite_fullscreen_s1 + name: 标题栏 — 全屏/退出全屏 + description: '' + tags: [] + steps: + - action: keyboard_press + key: f11 + assert_steps: + - action: assert_element + selector: + name: Form_DMainWindow + role: form +teardown: +- action: session_stop diff --git "a/tests/at/yaml/\346\240\207\351\242\230\346\240\217\347\274\251\346\224\276\350\276\223\345\205\245\346\241\206/\346\240\207\351\242\230\346\240\217\347\274\251\346\224\276\350\276\223\345\205\245\346\241\206.suite.yaml" "b/tests/at/yaml/\346\240\207\351\242\230\346\240\217\347\274\251\346\224\276\350\276\223\345\205\245\346\241\206/\346\240\207\351\242\230\346\240\217\347\274\251\346\224\276\350\276\223\345\205\245\346\241\206.suite.yaml" deleted file mode 100644 index 31c09cb3..00000000 --- "a/tests/at/yaml/\346\240\207\351\242\230\346\240\217\347\274\251\346\224\276\350\276\223\345\205\245\346\241\206/\346\240\207\351\242\230\346\240\217\347\274\251\346\224\276\350\276\223\345\205\245\346\241\206.suite.yaml" +++ /dev/null @@ -1,32 +0,0 @@ -name: 标题栏缩放输入框_suite -app: deepin-reader -description: '' -module: 标题栏缩放输入框 -tags: [] -fast_fail: false -env_check: [] -setup: -- action: session_start - command: deepin-reader ${TEST_FILES_DIR}/normal.pdf - wait: 3.0 -suites: -- id: suite_titlebar_scale_s1 - name: 标题栏缩放输入框 — 缩放比例输入 - description: '' - tags: [] - steps: - - action: mouse_click - ref: n227 - selector: - name: DLineEditChildLineEdit - - action: keyboard_type_text - text: '100' - - action: keyboard_press - key: return - assert_steps: - - action: assert_element - ref: n227 - selector: - name: DLineEditChildLineEdit -teardown: -- action: session_stop diff --git "a/tests/at/yaml/\351\241\266\351\203\250\346\240\207\347\255\276\351\241\265\346\240\217/\351\241\266\351\203\250\346\240\207\347\255\276\351\241\265\346\240\217.suite.yaml" "b/tests/at/yaml/\351\241\266\351\203\250\346\240\207\347\255\276\351\241\265\346\240\217/\351\241\266\351\203\250\346\240\207\347\255\276\351\241\265\346\240\217.suite.yaml" index 9ff4c5d4..1598ed49 100644 --- "a/tests/at/yaml/\351\241\266\351\203\250\346\240\207\347\255\276\351\241\265\346\240\217/\351\241\266\351\203\250\346\240\207\347\255\276\351\241\265\346\240\217.suite.yaml" +++ "b/tests/at/yaml/\351\241\266\351\203\250\346\240\207\347\255\276\351\241\265\346\240\217/\351\241\266\351\203\250\346\240\207\347\255\276\351\241\265\346\240\217.suite.yaml" @@ -10,31 +10,37 @@ setup: command: deepin-reader ${TEST_FILES_DIR}/normal.pdf wait: 3.0 suites: -- id: suite_tab_management_s1 - name: 顶部标签页栏 — 添加/滚动/切换 +- id: suite_tab_add_s1 + name: 标签页 — 新建标签页 description: '' tags: [] steps: - action: mouse_click - ref: n210 selector: - name: normal.pdf - role: page tab + name: DTabBarAddButton + role: button assert_steps: - action: assert_element - ref: n209 selector: - name: normal.pdf - role: page tab - - action: assert_element - ref: n211 + name: Form_DMainWindow + role: form +- id: suite_tab_scroll_s1 + name: 标签页 — 滚动 + description: '' + tags: [] + steps: + - action: mouse_click + selector: + name: 向左滚动 + role: button + - action: mouse_click selector: - name: normal.pdf - role: page tab + name: 向右滚动 + role: button + assert_steps: - action: assert_element - ref: n212 selector: - name: normal.pdf - role: page tab + name: Form_DMainWindow + role: form teardown: - action: session_stop diff --git "a/tests/casefile/\346\226\207\346\241\243\346\237\245\347\234\213\345\231\250V25-\347\224\250\344\276\213.xlsx" "b/tests/casefile/\346\226\207\346\241\243\346\237\245\347\234\213\345\231\250V25-\347\224\250\344\276\213.xlsx" new file mode 100644 index 00000000..b92cb3cd Binary files /dev/null and "b/tests/casefile/\346\226\207\346\241\243\346\237\245\347\234\213\345\231\250V25-\347\224\250\344\276\213.xlsx" differ