Search in sources :

Example 1 with InputDialog

use of net.heartsome.cat.ts.test.ui.dialogs.InputDialog in project translationstudio8 by heartsome.

the class ImportToDB method importFile.

/**
	 * @param from
	 *            功能入口,请使用 TSUIConstants 类提供的枚举;
	 */
private void importFile(Entry from) {
    getDataAll();
    openImportDialog(from);
    // 预期结果验证:未选择文件
    if (expectedResult.equals(TsUIConstants.ExpectedResult.NO_FILE)) {
        assertTrue(dialog.txtWLblFile().getText().equals(""));
        dialog.btnFinish().click();
        assertTrue(dialog.msgNoFileToImport().isVisible());
    } else {
        // 无效路径(文件不存在)的预处理
        if (expectedResult.equals(TsUIConstants.ExpectedResult.INVALID_PATH)) {
            File file = new File(filePath);
            if (file.exists()) {
                // 此预期结果分支不应该存在该文件,故需先删除
                file.delete();
            }
        }
        // 浏览文件
        dialog.btnBrowse().click();
        // 用 Mock 的输入对话框代替系统原生对话框来输入文件路径
        InputDialog idlg = new InputDialog(InputDialog.OPEN_FILE);
        idlg.txt().setText(filePath);
        idlg.btnOK().click();
        Waits.shellClosed(idlg);
        HSBot.bot().waitUntil(new IsWidgetTextEquals(dialog.txtWLblFile(), filePath), 10000);
        // 预期结果验证:未选择数据库
        if (expectedResult.equals(TsUIConstants.ExpectedResult.NO_DB)) {
            assertTrue(dialog.txtWLblDatabase().getText().equals(""));
            assertTrue(!dialog.btnFinish().isEnabled());
            assertTrue(dialog.msgNoDBToImport().isVisible());
        } else {
            // 选择库
            dialog.btnSelectDB().click();
            MemoryDBManagement md = new MemoryDBManagement(row);
            md.setFromImportDb(true);
            md.selectDB(dbName);
            //				new DBManagement(row).selectDB(dbName);
            assertTrue("记忆库/术语库未正确选择。", dbName.equals(dialog.txtWLblDatabase().getText()));
            // 选择更新策略
            dialog.btnSetting().click();
            PreferencesDialog dlgPref = new PreferencesDialog();
            selectUpdateMode(dlgPref);
            // 开始导入
            dialog.btnFinish().click();
            // 预期结果验证:成功导入文件
            if (expectedResult.equals(TsUIConstants.ExpectedResult.SUCCESS)) {
                try {
                    // 暂时只设置等待 10 分钟
                    HSBot.bot().waitUntil(new IsWidgetInvisible(dialog.msgImporting()), 600000);
                } catch (WidgetNotFoundException e) {
                    e.printStackTrace();
                }
                assertTrue(dialog.msgImportSuccess().isVisible());
            // 预期结果验证:文件内容有误、无效路径(文件不存在)、错误的文件类型
            } else if (expectedResult.equals(TsUIConstants.ExpectedResult.FILE_ERROR) || expectedResult.equals(TsUIConstants.ExpectedResult.INVALID_PATH) || expectedResult.equals(TsUIConstants.ExpectedResult.WRONG_TYPE)) {
                assertTrue(dialog.msgFileError().isVisible());
            } else {
                assertTrue("无此预期结果:" + expectedResult, false);
            }
        }
    }
    if (dialog.isOpen()) {
        dialog.btnCancel().click();
        Waits.shellClosed(dialog);
    }
}
Also used : WidgetNotFoundException(org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException) InputDialog(net.heartsome.cat.ts.test.ui.dialogs.InputDialog) PreferencesDialog(net.heartsome.cat.ts.test.ui.dialogs.PreferencesDialog) IsWidgetTextEquals(net.heartsome.test.swtbot.waits.IsWidgetTextEquals) File(java.io.File) IsWidgetInvisible(net.heartsome.test.swtbot.waits.IsWidgetInvisible)

Aggregations

File (java.io.File)1 InputDialog (net.heartsome.cat.ts.test.ui.dialogs.InputDialog)1 PreferencesDialog (net.heartsome.cat.ts.test.ui.dialogs.PreferencesDialog)1 IsWidgetInvisible (net.heartsome.test.swtbot.waits.IsWidgetInvisible)1 IsWidgetTextEquals (net.heartsome.test.swtbot.waits.IsWidgetTextEquals)1 WidgetNotFoundException (org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException)1