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

#646 - fixed wrong transaction date after midnight in timezone Berlin

parent a8789725
No related branches found
No related tags found
No related merge requests found
package de.deadlocker8.budgetmaster.authentication;
import de.deadlocker8.budgetmaster.controller.BaseController;
import de.deadlocker8.budgetmaster.utils.DateHelper;
import de.deadlocker8.budgetmaster.utils.Mappings;
import org.joda.time.DateTime;
import org.springframework.security.web.savedrequest.DefaultSavedRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
......@@ -37,7 +37,7 @@ public class LoginController extends BaseController
request.getSession().setAttribute("preLoginURL", savedRequest.getRequestURL());
}
model.addAttribute("currentDate", DateTime.now());
model.addAttribute("currentDate", DateHelper.getCurrentDate());
return "login";
}
}
\ No newline at end of file
package de.deadlocker8.budgetmaster.utils;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import java.util.TimeZone;
public class DateHelper
{
public static DateTime getCurrentDate()
{
return DateTime.now(DateTimeZone.forTimeZone(TimeZone.getDefault()));
}
}
......@@ -4,6 +4,8 @@ import de.deadlocker8.budgetmaster.authentication.UserService;
import de.deadlocker8.budgetmaster.integration.helpers.IntegrationTestHelper;
import de.deadlocker8.budgetmaster.integration.helpers.SeleniumTestBase;
import de.thecodelabs.utils.util.Localization;
import org.joda.time.DateTime;
import org.joda.time.DateTimeUtils;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.Cookie;
......@@ -15,6 +17,7 @@ import org.openqa.selenium.support.ui.WebDriverWait;
import java.text.SimpleDateFormat;
import java.time.Duration;
import java.util.Date;
import java.util.TimeZone;
import static org.assertj.core.api.Assertions.assertThat;
......@@ -78,6 +81,29 @@ class LoginControllerTest extends SeleniumTestBase
assertThat(driver.manage().getCookies()).contains(expectedCookie);
}
@Test
void successLogin_cookieShortlyAfterMidnightInSystemTimezone()
{
// override system time to setup midnight scenario
// DateTime.now() will return the time in UTC --> shortly before midnight
DateTimeUtils.setCurrentMillisFixed(new DateTime(2021, 10, 24, 23, 10, 0).getMillis());
// system time zone is Berlin --> at least +1 hour --> after midnight
TimeZone.setDefault(TimeZone.getTimeZone("Europe/Berlin"));
IntegrationTestHelper helper = new IntegrationTestHelper(driver, port);
helper.start();
helper.login(UserService.DEFAULT_PASSWORD);
helper.hideBackupReminder();
helper.hideWhatsNewDialog();
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(5));
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("logo-home")));
Cookie expectedCookie = new Cookie("currentDate", "25.10.21", "localhost", "/", null, false, false, "None");
assertThat(driver.manage().getCookies()).contains(expectedCookie);
}
@Test
void logout()
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment