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);
}
}
Aggregations