From 01b8fd15cddef07b961a8ae9c015be2e67a17ca0 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sun, 11 Sep 2022 11:24:56 +0200 Subject: [PATCH] Fixed #720 - handle global account select while a transactions is highlighted --- .../accounts/AccountController.java | 7 ++++ .../integration/selenium/SearchTest.java | 34 +++++++++++++++++-- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountController.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountController.java index 3678ffa7a..fd6f2a40b 100644 --- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountController.java +++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountController.java @@ -74,6 +74,13 @@ public class AccountController extends BaseController return ReturnValues.SETTINGS; } + if(referer.contains("highlight")) + { + final StringBuffer requestURL = request.getRequestURL(); + final String baseUrl = requestURL.substring(0, requestURL.length() - request.getRequestURI().length()); + referer = baseUrl + "/transactions/"; + } + if(referer.contains(ACCOUNT_SELECTED_INDICATOR)) { return MessageFormat.format("redirect:{0}", referer); diff --git a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/SearchTest.java b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/SearchTest.java index 1aec846f9..ca6416c90 100644 --- a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/SearchTest.java +++ b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/SearchTest.java @@ -8,8 +8,11 @@ import org.junit.jupiter.api.Test; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; import java.io.File; +import java.time.Duration; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; @@ -131,10 +134,37 @@ class SearchTest extends SeleniumTestBase List<WebElement> transactionsRows = driver.findElements(By.cssSelector(".transaction-container .hide-on-med-and-down.transaction-row-top")); assertThat(transactionsRows).hasSize(25); - assertThat(transactionsRows.get(0).getAttribute("class")).contains("background-blue-light"); + assertThat(transactionsRows.get(0).getAttribute("class")).contains("transaction-row-highlighted"); for(int i = 1; i < transactionsRows.size(); i++) { - assertThat(transactionsRows.get(i).getAttribute("class")).doesNotContain("background-blue-light"); + assertThat(transactionsRows.get(i).getAttribute("class")).doesNotContain("transaction-row-highlighted"); } } + + @Test + void test_selectAccountWhileTransactionIsHighlighted() + { + driver.findElement(By.cssSelector(".main-card .search-result .hide-on-med-and-down .buttonHighlight")).click(); + + assertThat(driver.findElement(By.cssSelector(".headline-date")).getText()).isEqualTo("May 2019"); + + List<WebElement> transactionsRows = driver.findElements(By.cssSelector(".transaction-container .hide-on-med-and-down.transaction-row-top")); + assertThat(transactionsRows).hasSize(25); + assertThat(transactionsRows.get(0).getAttribute("class")).contains("transaction-row-highlighted"); + + // open global account select + final WebElement globalAccountSelect = driver.findElement(By.id("globalAccountSelect")); + globalAccountSelect.click(); + + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(5)); + wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#modalGlobalAccountSelect h4"))); + + driver.findElement(By.id("modalGlobalAccountSelect")).sendKeys("3"); + + wait = new WebDriverWait(driver, Duration.ofSeconds(5)); + wait.until(ExpectedConditions.invisibilityOfElementLocated(By.cssSelector("#modalGlobalAccountSelect h4"))); + + assertThat(driver.findElement(By.cssSelector("#globalAccountSelect .global-account-select-name")).getText()) + .isEqualTo("sfsdf"); + } } \ No newline at end of file -- GitLab