private void selectImportFromArchive(String archivePath) { SWTBotRadio button = fBot.radio("Select &archive file:"); button.click(); SWTBotCombo sourceCombo = fBot.comboBox(1); sourceCombo.setText(new File(archivePath).getAbsolutePath()); SWTBotText text = fBot.text(); text.setFocus(); }
public static void continueInstall(final SWTWorkbenchBot bot, final String shellTitle) throws InstallFailureException { try { bot.radio(0).click(); bot.button("Finish").click(); // wait for Security pop-up, or install finished. final SWTBotShell shell = bot.shell(shellTitle); bot.waitWhile( new ICondition() { @Override public boolean test() throws Exception { return shell.isActive(); } @Override public void init(SWTBot bot) {} @Override public String getFailureMessage() { return null; } }, installationTimeout); if (bot.activeShell().getText().equals("Security Warning")) { bot.button("OK").click(); System.err.println("OK clicked"); bot.waitUntil( new ICondition() { @Override public boolean test() throws Exception { try { boolean stillOpen = bot.shell(shellTitle).isOpen(); System.err.println("still open? " + stillOpen); return !stillOpen; } catch (WidgetNotFoundException ex) { System.err.println("no shell"); // Shell already closed return true; } } @Override public void init(SWTBot bot) {} @Override public String getFailureMessage() { return null; } }, installationTimeout); // 15 more minutes } SWTBot restartShellBot = bot.shell("Software Updates").bot(); // Don't restart in test, test executor will do it. try { // Eclipse 4.2 => "No" restartShellBot.button("No").click(); } catch (WidgetNotFoundException ex) { // Eclipse 3.7.x => "Not now" restartShellBot.button("Not Now").click(); } } catch (Exception ex) { String installDesc = bot.text().getText(); if (installDesc == null || installDesc.isEmpty()) { throw new RuntimeException("Internal error", ex); } throw new InstallFailureException(installDesc); } }