package com.niklim.clicktrace.capture; import static org.fest.assertions.Assertions.assertThat; import java.awt.AWTException; import java.awt.Robot; import java.awt.event.InputEvent; import java.util.List; import org.junit.Test; import com.niklim.clicktrace.AbstractSystemTest; import com.niklim.clicktrace.SystemTestSteps; import com.niklim.clicktrace.TestSessionsData; import com.niklim.clicktrace.controller.MainController; import com.niklim.clicktrace.model.ScreenShot; import com.niklim.clicktrace.model.Session; import com.niklim.clicktrace.service.SessionManager; public class CollectorMouseCaptureTest extends AbstractSystemTest { @Override protected TestSessionsData getSessionsData() { return TestSessionsData.SOME; } @Test public void test() throws InterruptedException, AWTException { // given int sessionIndex = SystemTestSteps.openSession(editorFixture, "empty"); startRecording(); // when delay(); Robot r = new Robot(); r.mouseMove(100, 100); delayLong(); r.mousePress(InputEvent.BUTTON1_MASK); r.mouseRelease(InputEvent.BUTTON1_MASK); r.mouseMove(150, 100); delay(); r.mousePress(InputEvent.BUTTON1_MASK); r.mouseRelease(InputEvent.BUTTON1_MASK); delay(); stopRecording(); // then checkAssertions(sessionIndex); } private void checkAssertions(int sessionIndex) { SessionManager manager = injector.getInstance(SessionManager.class); Session session = manager.loadAll().get(sessionIndex); List<ScreenShot> shots = session.getShots(); assertThat(shots.size()).isPositive(); // assertThat(shots.get(shots.size() - // 1).getClicks().size()).isEqualTo(2); } private void startRecording() throws InterruptedException { MainController controller = injector.getInstance(MainController.class); controller.startRecording(false); Thread.sleep(1000); } private void stopRecording() { MainController controller = injector.getInstance(MainController.class); controller.stopRecording(); } }