Skip to content

Commit

Permalink
Merge branch 'master' into 3644
Browse files Browse the repository at this point in the history
  • Loading branch information
EDbarvinsky committed Mar 30, 2023
2 parents 877a338 + b0b1a98 commit bde2082
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
package org.vividus.ui.web.action;

import java.net.URI;
import java.util.Date;
import java.util.Optional;
import java.util.Set;

import javax.inject.Inject;
Expand Down Expand Up @@ -98,7 +100,7 @@ private static org.apache.hc.client5.http.cookie.Cookie createHttpClientCookie(C
BasicClientCookie httpClientCookie = new BasicClientCookie(seleniumCookie.getName(), seleniumCookie.getValue());
httpClientCookie.setDomain(seleniumCookie.getDomain());
httpClientCookie.setPath(seleniumCookie.getPath());
httpClientCookie.setExpiryDate(seleniumCookie.getExpiry().toInstant());
Optional.ofNullable(seleniumCookie.getExpiry()).map(Date::toInstant).ifPresent(httpClientCookie::setExpiryDate);
httpClientCookie.setSecure(seleniumCookie.isSecure());
httpClientCookie.setAttribute(org.apache.hc.client5.http.cookie.Cookie.DOMAIN_ATTR, seleniumCookie.getDomain());
httpClientCookie.setAttribute(org.apache.hc.client5.http.cookie.Cookie.PATH_ATTR, seleniumCookie.getPath());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,21 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import java.util.Calendar;
import java.time.ZonedDateTime;
import java.time.temporal.ChronoUnit;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.stream.Stream;

import org.apache.hc.client5.http.cookie.CookieStore;
import org.apache.hc.client5.http.impl.cookie.BasicClientCookie;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
import org.junit.jupiter.params.provider.MethodSource;
import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.mockito.InjectMocks;
Expand Down Expand Up @@ -99,7 +103,7 @@ void shouldDeleteCookie()
void shouldGetCookie()
{
configureMockedWebDriver();
Cookie seleniumCookie = createSeleniumCookie();
Cookie seleniumCookie = createSeleniumCookie(null);
when(options.getCookieNamed(COOKIE_NAME)).thenReturn(seleniumCookie);
assertEquals(seleniumCookie, cookieManager.getCookie(COOKIE_NAME));
}
Expand All @@ -108,15 +112,24 @@ void shouldGetCookie()
void shouldGetCookies()
{
configureMockedWebDriver();
Set<Cookie> expectedCookies = mockGetCookies(createSeleniumCookie());
Set<Cookie> expectedCookies = mockGetCookies(createSeleniumCookie(null));
assertEquals(expectedCookies, cookieManager.getCookies());
}

@Test
void shouldGetCookiesAsHttpCookieStore()
public static Stream<Date> expiryDates()
{
return Stream.of(
Date.from(ZonedDateTime.now().plusDays(1).toInstant()),
null
);
}

@MethodSource("expiryDates")
@ParameterizedTest
void shouldGetCookiesAsHttpCookieStore(Date expiryDate)
{
configureMockedWebDriver();
Cookie seleniumCookie = createSeleniumCookie();
Cookie seleniumCookie = createSeleniumCookie(expiryDate);
mockGetCookies(seleniumCookie);
CookieStore cookieStore = cookieManager.getCookiesAsHttpCookieStore();
List<org.apache.hc.client5.http.cookie.Cookie> resultCookies = cookieStore.getCookies();
Expand All @@ -126,7 +139,8 @@ void shouldGetCookiesAsHttpCookieStore()
BasicClientCookie clientCookie = (BasicClientCookie) httpCookie;
assertAll(
() -> assertEquals(seleniumCookie.getDomain(), clientCookie.getDomain()),
() -> assertEquals(seleniumCookie.getExpiry().toInstant(), clientCookie.getExpiryInstant()),
() -> assertEquals(expiryDate != null ? expiryDate.toInstant().truncatedTo(ChronoUnit.SECONDS) : null,
clientCookie.getExpiryInstant()),
() -> assertEquals(seleniumCookie.getName(), clientCookie.getName()),
() -> assertEquals(seleniumCookie.getPath(), clientCookie.getPath()),
() -> assertEquals(seleniumCookie.getValue(), clientCookie.getValue()),
Expand All @@ -145,11 +159,9 @@ private void configureMockedWebDriver()
when(webDriver.manage()).thenReturn(options);
}

private Cookie createSeleniumCookie()
private Cookie createSeleniumCookie(Date expiry)
{
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + 1);
return new Cookie(COOKIE_NAME, COOKIE_VALUE, DOMAIN, "cookiePath", calendar.getTime(), true);
return new Cookie(COOKIE_NAME, COOKIE_VALUE, DOMAIN, "cookiePath", expiry, true);
}

private Set<Cookie> mockGetCookies(Cookie cookie)
Expand Down

0 comments on commit bde2082

Please sign in to comment.