From cc1e8361917a3eb3fc64774e2561a37cd9e3a143 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Sun, 16 Oct 2022 12:29:33 +0200
Subject: [PATCH] #721 - added selenium test

---
 .../templates/search/searchMacros.ftl         |  4 ++--
 .../integration/selenium/SearchTest.java      | 24 +++++++++++++++++++
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/BudgetMasterServer/src/main/resources/templates/search/searchMacros.ftl b/BudgetMasterServer/src/main/resources/templates/search/searchMacros.ftl
index caf7c3f57..36313a491 100644
--- a/BudgetMasterServer/src/main/resources/templates/search/searchMacros.ftl
+++ b/BudgetMasterServer/src/main/resources/templates/search/searchMacros.ftl
@@ -68,7 +68,7 @@
 
 <#macro dateRange search>
     <div class="row">
-        <div class="input-field col s6 m4 offset-m2 l3 offset-l3">
+        <div class="input-field col s6 m4 offset-m2 l3 offset-l3" id="search-datepicker-container">
             <#if search.getStartDate()??>
                 <#assign startDate = dateService.getLongDateString(search.getStartDate())/>
                  <script>
@@ -87,7 +87,7 @@
             <label for="search-datepicker">${locale.getString("chart.steps.second.label.start")}</label>
         </div>
 
-        <div class="input-field col s6 m4 l3">
+        <div class="input-field col s6 m4 l3" id="search-datepicker-end-container">
             <#if search.getEndDate()??>
                 <#assign endDate = dateService.getLongDateString(search.getEndDate())/>
                 <script>
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 ca6416c90..e130dec19 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
@@ -167,4 +167,28 @@ class SearchTest extends SeleniumTestBase
 		assertThat(driver.findElement(By.cssSelector("#globalAccountSelect .global-account-select-name")).getText())
 				.isEqualTo("sfsdf");
 	}
+
+	@Test
+	void dateRange()
+	{
+		// select start date
+		driver.findElement(By.cssSelector("label[for='search-datepicker']")).click();
+		WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(5));
+		wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#search-datepicker-container .datepicker-modal")));
+		driver.findElement(By.cssSelector("#search-datepicker-container button[data-day='" + 2 + "']")).click();
+		wait.until(ExpectedConditions.invisibilityOfElementLocated(By.cssSelector("#search-datepicker-container .datepicker-modal")));
+
+		// select end date
+		driver.findElement(By.cssSelector("label[for='search-datepicker-end']")).click();
+		wait = new WebDriverWait(driver, Duration.ofSeconds(5));
+		wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#search-datepicker-end-container .datepicker-modal")));
+		driver.findElement(By.cssSelector("#search-datepicker-end-container button[data-day='" + 15 + "']")).click();
+		wait.until(ExpectedConditions.invisibilityOfElementLocated(By.cssSelector("#search-datepicker-end-container .datepicker-modal")));
+
+		driver.findElement(By.id("button-perform-search")).click();
+
+		final WebElement headline = driver.findElement(By.className("headline"));
+		final String expected = Localization.getString("menu.search.results", 0);
+		assertThat(headline.getText()).isEqualTo(expected);
+	}
 }
\ No newline at end of file
-- 
GitLab