Skip to content
Snippets Groups Projects
Select Git revision
  • 3ad773ed55e8cedd2796bd10c0b1273483273cee
  • master default
  • renovate/junit-jupiter-engine.version
  • renovate/selenium.version
  • renovate/testcontainer.version
  • demo
  • v1_8_1
  • v2.18.1
  • v2.18.0
  • v2.17.2
  • v2.17.1
  • v2.17.0
  • v2.16.1
  • v2.16.0
  • v2.15.1
  • v2.15.0
  • v2.14.0
  • v2.13.0
  • v2.12.0
  • v2.11.0
  • v2.10.0
  • v2.9.2
  • v2.9.1
  • v2.9.0
  • v2.8.0
  • testPipeline2
  • v2.7.0
27 results

HotkeyTest.java

Blame
  • HotkeyTest.java 4.93 KiB
    package de.deadlocker8.budgetmaster.integration.selenium;
    
    import de.deadlocker8.budgetmaster.accounts.Account;
    import de.deadlocker8.budgetmaster.accounts.AccountType;
    import de.deadlocker8.budgetmaster.authentication.UserService;
    import de.deadlocker8.budgetmaster.integration.helpers.IntegrationTestHelper;
    import de.deadlocker8.budgetmaster.integration.helpers.SeleniumTestBase;
    import de.deadlocker8.budgetmaster.integration.helpers.TransactionTestHelper;
    import de.thecodelabs.utils.util.OS;
    import org.junit.jupiter.api.BeforeAll;
    import org.junit.jupiter.api.BeforeEach;
    import org.junit.jupiter.api.Test;
    import org.openqa.selenium.By;
    import org.openqa.selenium.Keys;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.interactions.Action;
    import org.openqa.selenium.interactions.Actions;
    import org.openqa.selenium.support.ui.ExpectedConditions;
    import org.openqa.selenium.support.ui.WebDriverWait;
    
    import java.io.File;
    import java.util.Arrays;
    import java.util.List;
    
    import static org.assertj.core.api.Assertions.assertThat;
    import static org.junit.jupiter.api.Assumptions.assumeTrue;
    
    class HotkeyTest extends SeleniumTestBase
    {
    	private IntegrationTestHelper helper;
    
    	@BeforeAll
    	public void prepare()
    	{
    		helper = new IntegrationTestHelper(driver, port);
    		helper.start();
    		helper.login(UserService.DEFAULT_PASSWORD);
    		helper.hideBackupReminder();
    		helper.hideWhatsNewDialog();
    
    		String path = getClass().getClassLoader().getResource("SearchDatabase.json").getFile().replace("/", File.separator);
    		final Account account1 = new Account("DefaultAccount0815", AccountType.CUSTOM);
    		final Account account2 = new Account("Account2", AccountType.CUSTOM);
    
    		helper.uploadDatabase(path, Arrays.asList("DefaultAccount0815", "sfsdf"), List.of(account1, account2));
    	}
    
    	@BeforeEach
    	public void beforeEach()
    	{
    		helper.start();
    
    		WebDriverWait wait = new WebDriverWait(driver, 5);
    		wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("logo-home")));
    	}
    
    	@Test
    	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
    	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
    	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");
    	}
    
    	@Test
    	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
    	void hotkey_search()
    	{
    		driver.findElement(By.tagName("body")).sendKeys("s");
    
    		assertThat(driver.findElement(By.id("search"))).isEqualTo(driver.switchTo().activeElement());
    	}
    
    	@Test
    	void hotkey_saveTransaction()
    	{
    		assumeTrue(OS.isWindows());
    
    		// open transactions page
    		driver.get(helper.getUrl() + "/transactions/newTransaction/normal");
    
    		// fill mandatory inputs
    		driver.findElement(By.id("transaction-name")).sendKeys("My Transaction");
    		driver.findElement(By.id("transaction-amount")).sendKeys("15.00");
    		TransactionTestHelper.selectCategoryByName(driver, "sdfdsf");
    
    		WebElement categoryWrapper = driver.findElement(By.className("custom-select"));
    		Action seriesOfActions = new Actions(driver)
    				.keyDown(categoryWrapper, Keys.CONTROL)
    				.sendKeys(categoryWrapper, Keys.ENTER)
    				.keyUp(categoryWrapper, Keys.CONTROL)
    				.build();
    		seriesOfActions.perform();
    
    		WebDriverWait wait = new WebDriverWait(driver, 5);
    		wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(".headline-date")));
    
    		// assert
    		assertThat(driver.getCurrentUrl()).endsWith("/transactions");
    
    		List<WebElement> transactionsRows = driver.findElements(By.cssSelector(".transaction-container .hide-on-med-and-down.transaction-row-top"));
    		assertThat(transactionsRows).hasSize(2);
    	}
    
    	@Test
    	void hotkey_openTransactionOverview()
    	{
    		driver.findElement(By.tagName("body")).sendKeys("o");
    
    		WebDriverWait wait = new WebDriverWait(driver, 5);
    		wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(".headline-date")));
    
    		// assert
    		assertThat(driver.getCurrentUrl()).endsWith("/transactions");
    	}
    }