public void omapCreate(IConsole console) { try { createRuntime(getFixtureHeader(), console, MarathonMode.RECORDING); runtime.createScript(getFixtureHeader(), "Objectmap Creation", false, true); startApplicationIfNecessary(); runtime.startRecording(new DummyRecorder()); setState(State.STOPPED_WITH_APP_OPEN); } catch (ScriptException e) { setState(State.STOPPED_WITH_APP_CLOSED); destroyRuntime(); stopApplicationIfNecessary(); reportException(e); } }
public void stop() { if (state.isRecording()) { try { runtime.stopRecording(); } catch (MarathonRuntimeException e) { setState(State.STOPPED_WITH_APP_CLOSED); destroyRuntime(); throw e; } finally { displayView.stopInserting(); } stopApplicationIfNecessary(); displayView.updateOMapFile(); } else if (state.isPlaying()) { try { player.halt(); } catch (MarathonRuntimeException e) { reportException(e); } finally { playbackStopped = true; playbackFinished(playbackResultProvider.get(), false); } } else { throw new IllegalStateException("must be recording or playing to stop, not '" + state + "'"); } }
public String evaluateScript(String code) { if (state.isRecordingPaused()) { return runtime.evaluate(code); } else { return script.getDebugger().evaluateScriptWhenPaused(code); } }
public void openApplication(IConsole console) { logHeader(console, "Open"); createRuntime(getFixtureHeader(), console, MarathonMode.RECORDING); runtime.createScript(getFixtureHeader(), "", false, false); startApplicationIfNecessary(); setState(State.STOPPED_WITH_APP_OPEN); shouldClose = false; }
public void resume() { if (state.isRecordingPaused()) { runtime.startRecording(recorder); setState(State.RECORDING); } else { script.getDebugger().resume(); setState(State.PLAYING); } }
private void destroyRuntime() { if (runtime != null) { logger.info("Destroying VM. autShutdown = " + autShutdown); try { if (!autShutdown) runtime.destroy(); } finally { runtime = null; } } }
public void record(IConsole console) { logHeader(console, "Record"); String scriptText = displayView.getScript(); if (!validTestCase(scriptText)) { scriptText = getFixtureHeader() + scriptText; } try { createRuntime(scriptText, console, MarathonMode.RECORDING); displayView.startInserting(); runtime.createScript(scriptText, displayView.getFilePath(), false, true); recorder = recorderProvider.get(); startApplicationIfNecessary(); runtime.startRecording(recorder); setState(State.RECORDING); } catch (Throwable e) { setState(State.STOPPED_WITH_APP_CLOSED); destroyRuntime(); displayView.stopInserting(); stopApplicationIfNecessary(); reportException(e); } }
public void pauseRecording() { if (state.isRecording()) { try { runtime.stopRecording(); setState(State.RECORDINGPAUSED); } catch (MarathonRuntimeException e) { setState(State.STOPPED_WITH_APP_CLOSED); destroyRuntime(); throw e; } } else { throw new IllegalStateException("must be recording for the pause to happen"); } }
private void runTest() { if (ddTestRunner == null) return; displayView.startTest(); createRuntime( ddTestRunner.getScriptText(), ddTestRunner.getConsole(), MarathonMode.PLAYING.getMode()); script = runtime.createScript(ddTestRunner.getScriptText(), displayView.getFilePath(), false, true); script.setDataVariables(ddTestRunner.getDataVariables()); player = script.getPlayer(this, playbackResultProvider.get()); player.setAcceptCheckList(acceptingChecklists); boolean shouldRunFixture = state.isStoppedWithAppClosed(); setState(State.PLAYING); displayView.startInserting(); player.play(shouldRunFixture); }
public void closeApplication(boolean closeApplicationNeeded) throws RuntimeException { /* * We need to actually call the stopApplication that calls the teardown * on the fixture. However, the fixture that created the application (by * using setup) is already lost and we can't communicate with the app * using fixture when manually starting the application. For making this * work, we need changes in the semantics of the Script and Runtime */ try { if (closeApplicationNeeded && runtime != null && !autShutdown) runtime.stopApplication(); } catch (Exception e) { displayView.setError(e, "Application Under Test Aborted"); } finally { destroyRuntime(); shouldClose = true; setState(State.STOPPED_WITH_APP_CLOSED); } }
public Module getModuleFuctions() { if (runtime == null) return null; return runtime.getModuleFunctions(); }
public String getTopWindowName() { if (runtime == null || runtime.getTopWindowId() == null) return null; return runtime.getTopWindowId().getTitle(); }
public void recordShowChecklist(String fileName) { recorder.recordShowChecklistElement(runtime.getTopWindowId(), fileName); }
public File getScreenCapture() { return runtime.getScreenCapture(); }
public void insertChecklist(String name) { recorder.recordInsertChecklistElement(runtime.getTopWindowId(), name); }
private void startApplicationIfNecessary() { if (state.isStoppedWithAppClosed()) { runtime.startApplication(); } }
public void setRawRecording(boolean selected) { runtime.setRawRecording(selected); }
public String insertScript(String function) { WindowId topWindowId = runtime.getTopWindowId(); runtime.insertScript(function); String s = recorder.recordInsertScriptElement(topWindowId, function); return s; }