From cf73a8d5258262ec7d9804b98ea7d9eb3137eab7 Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Wed, 7 Sep 2022 16:41:37 -0700 Subject: [PATCH] fix: serialize LocalDateTime parameters as Date (#1048) --- .../com/microsoft/playwright/impl/Serialization.java | 4 ++++ .../com/microsoft/playwright/TestPageEvaluate.java | 11 ++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/playwright/src/main/java/com/microsoft/playwright/impl/Serialization.java b/playwright/src/main/java/com/microsoft/playwright/impl/Serialization.java index 15bf58d9..410f62c9 100644 --- a/playwright/src/main/java/com/microsoft/playwright/impl/Serialization.java +++ b/playwright/src/main/java/com/microsoft/playwright/impl/Serialization.java @@ -33,6 +33,8 @@ import java.net.URL; import java.nio.charset.StandardCharsets; import java.nio.file.Path; import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneId; import java.util.*; import java.util.regex.Pattern; @@ -150,6 +152,8 @@ class Serialization { result.s = (String) value; } else if (value instanceof Date) { result.d = ((Date)value).toInstant().toString(); + } else if (value instanceof LocalDateTime) { + result.d = ((LocalDateTime)value).atZone(ZoneId.systemDefault()).toInstant().toString(); } else if (value instanceof URL) { result.u = ((URL)value).toString(); } else if (value instanceof Pattern) { diff --git a/playwright/src/test/java/com/microsoft/playwright/TestPageEvaluate.java b/playwright/src/test/java/com/microsoft/playwright/TestPageEvaluate.java index 8b913cd6..6d47423a 100644 --- a/playwright/src/test/java/com/microsoft/playwright/TestPageEvaluate.java +++ b/playwright/src/test/java/com/microsoft/playwright/TestPageEvaluate.java @@ -19,12 +19,12 @@ package com.microsoft.playwright; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.DisabledIf; +import java.time.*; import java.util.Map; import java.util.regex.Pattern; import java.util.Date; import java.net.MalformedURLException; import java.net.URL; -import java.time.ZonedDateTime; import static com.microsoft.playwright.Utils.mapOf; import static java.util.Arrays.asList; @@ -629,4 +629,13 @@ public class TestPageEvaluate extends TestBase { assertEquals(1, map.size()); assertTrue(map == map.get("b")); } + + @Test + void shouldAcceptParameter() { + Instant instant = Instant.now(); + LocalDateTime localDateTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime(); + Object object = page.evaluate("p => p", localDateTime); + assertTrue(object instanceof Date); + assertEquals(Date.from(instant), object); + } }