package com.niklim.clicktrace.view.session;
import static org.fest.assertions.Assertions.assertThat;
import org.fest.swing.core.matcher.JButtonMatcher;
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;
public class ReorderScreenShotsTest extends AbstractSystemTest {
@Override
protected TestSessionsData getSessionsData() {
return TestSessionsData.SOME;
}
@Test
public void reorderTest() {
// given-when
ScreenShot firstShot = reorder("one");
// then
assertThat(firstShot.getFilename()).isEqualTo(activeSession.getShot(1).getFilename());
}
private ScreenShot reorder(String sessionName) {
// given
SystemTestSteps.openSession(editorFixture, sessionName);
ScreenShot firstShot = activeSession.getShot(0);
// when
editorFixture.menuItemWithPath("Session", "Reorder screenshots").click();
editorFixture.dialog().button("next").click();
editorFixture.dialog().button(JButtonMatcher.withText("Save")).click();
return firstShot;
}
@Test
public void reorderAndRecordTest() throws InterruptedException {
// given-when
ScreenShot firstShot = reorder("one");
// when
startRecording();
Thread.sleep(2000);
stopRecording();
// then
assertThat(firstShot.getFilename()).isEqualTo(activeSession.getShot(1).getFilename());
assertThat(activeSession.getSession().getShots()).hasSize(5);
}
private void startRecording() throws InterruptedException {
MainController controller = injector.getInstance(MainController.class);
controller.startRecording(false);
}
private void stopRecording() {
MainController controller = injector.getInstance(MainController.class);
controller.stopRecording();
}
@Test
public void reorderAndDeleteTest() {
// given-when
ScreenShot firstShot = reorder("two");
// when
SystemTestSteps.deleteShot(editorFixture, 1);
SystemTestSteps.refreshSession(editorFixture);
// then
assertThat(editorFixture.comboBox().contents()).hasSize(3);
}
}