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 3678ffa7a2f04ae304ce54a86c3a89e527b6fd02..fd6f2a40bfbcea9470b9aeaa8641fc7dedb8a8cb 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 1aec846f90bc3dd2a48ab2ddfa7041b93198d532..ca6416c9071b5a2fd32c7dbe7d6272e060518106 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