Skip to content
Snippets Groups Projects
Commit cb8a4288 authored by Robert Goldmann's avatar Robert Goldmann
Browse files

#540 - added integration tests for existing shortcuts

parent c19f9abf
Branches
Tags
No related merge requests found
package de.deadlocker8.budgetmaster.integration;
import de.deadlocker8.budgetmaster.Main;
import de.deadlocker8.budgetmaster.authentication.UserService;
import de.deadlocker8.budgetmaster.integration.helpers.IntegrationTestHelper;
import de.deadlocker8.budgetmaster.integration.helpers.SeleniumTest;
import de.deadlocker8.budgetmaster.integration.helpers.TransactionTestHelper;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestName;
import org.junit.rules.TestWatcher;
import org.junit.runner.Description;
import org.junit.runner.RunWith;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.web.server.LocalServerPort;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.junit4.SpringRunner;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Main.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
@SeleniumTest
public class HotkeyTest
{
private IntegrationTestHelper helper;
private WebDriver driver;
@LocalServerPort
int port;
@Rule
public TestName name = new TestName();
@Rule
public TestWatcher testWatcher = new TestWatcher()
{
@Override
protected void finished(Description description)
{
driver.quit();
}
@Override
protected void failed(Throwable e, Description description)
{
IntegrationTestHelper.saveScreenshots(driver, name, HotkeyTest.class);
}
};
@Before
public void prepare()
{
FirefoxOptions options = new FirefoxOptions();
options.setHeadless(true);
driver = new FirefoxDriver(options);
// prepare
helper = new IntegrationTestHelper(driver, port);
helper.start();
helper.login(UserService.DEFAULT_PASSWORD);
helper.hideBackupReminder();
String path = getClass().getClassLoader().getResource("SearchDatabase.json").getFile().replace("/", File.separator);
helper.uploadDatabase(path, Arrays.asList("DefaultAccount0815", "sfsdf"), Arrays.asList("DefaultAccount0815", "Account2"));
}
@Test
public void hotkey_newTransaction_normal()
{
driver.findElement(By.tagName("body")).sendKeys("n");
WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("form[name='NewTransaction']")));
assertThat(driver.getCurrentUrl()).endsWith("/newTransaction/normal");
}
@Test
public void hotkey_newTransaction_recurring()
{
driver.findElement(By.tagName("body")).sendKeys("r");
WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("form[name='NewTransaction']")));
assertThat(driver.getCurrentUrl()).endsWith("/newTransaction/repeating");
}
@Test
public void hotkey_newTransaction_transfer()
{
driver.findElement(By.tagName("body")).sendKeys("t");
WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("form[name='NewTransaction']")));
assertThat(driver.getCurrentUrl()).endsWith("/newTransaction/transfer");
}
@Test
public void hotkey_newTransaction_transactionFromTemplate()
{
driver.findElement(By.tagName("body")).sendKeys("v");
WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("searchTemplate")));
assertThat(driver.getCurrentUrl()).endsWith("/templates/select");
}
@Test
public void hotkey_filter()
{
driver.findElement(By.tagName("body")).sendKeys("f");
WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(".headline-date")));
assertThat(driver.getCurrentUrl()).endsWith("/transactions#modalFilter");
assertThat(driver.findElement(By.id("modalFilter")).isDisplayed()).isTrue();
}
@Test
public void hotkey_search()
{
driver.findElement(By.tagName("body")).sendKeys("s");
assertThat(driver.findElement(By.id("search"))).isEqualTo(driver.switchTo().activeElement());
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment