From dd0ae11de848f761dabd7a948cf03184480b3ec3 Mon Sep 17 00:00:00 2001 From: Ronald Brill Date: Wed, 22 Jan 2025 08:46:00 +0100 Subject: [PATCH] WebClientOptions.Geolocation is serializable now --- .../java/org/htmlunit/WebClientOptions.java | 2 +- .../java/org/htmlunit/WebClientOptionsTest.java | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/htmlunit/WebClientOptions.java b/src/main/java/org/htmlunit/WebClientOptions.java index 092ee7fb86..8060c673e7 100644 --- a/src/main/java/org/htmlunit/WebClientOptions.java +++ b/src/main/java/org/htmlunit/WebClientOptions.java @@ -848,7 +848,7 @@ public void setGeolocation(final Geolocation geolocation) { geolocation_ = geolocation; } - public static class Geolocation { + public static class Geolocation implements Serializable { private final double accuracy_; private final double latitude_; private final double longitude_; diff --git a/src/test/java/org/htmlunit/WebClientOptionsTest.java b/src/test/java/org/htmlunit/WebClientOptionsTest.java index d2af684c15..5ac04f22ec 100644 --- a/src/test/java/org/htmlunit/WebClientOptionsTest.java +++ b/src/test/java/org/htmlunit/WebClientOptionsTest.java @@ -17,6 +17,7 @@ import javax.net.ssl.SSLContext; import org.apache.commons.lang3.SerializationUtils; +import org.htmlunit.WebClientOptions.Geolocation; import org.htmlunit.junit.BrowserRunner; import org.junit.Test; import org.junit.runner.RunWith; @@ -48,6 +49,9 @@ public void serialization() throws Exception { assertEquals(original.isThrowExceptionOnScriptError(), deserialized.isThrowExceptionOnScriptError()); assertEquals(original.isPopupBlockerEnabled(), deserialized.isPopupBlockerEnabled()); assertEquals(original.isRedirectEnabled(), deserialized.isRedirectEnabled()); + + assertEquals(original.isGeolocationEnabled(), deserialized.isGeolocationEnabled()); + assertEquals(original.getGeolocation(), deserialized.getGeolocation()); } /** @@ -65,6 +69,9 @@ public void serializationChanged() throws Exception { original.setPopupBlockerEnabled(true); original.setRedirectEnabled(false); + original.setGeolocationEnabled(true); + original.setGeolocation(new WebClientOptions.Geolocation(1d, 2d, 3d, 4d, 5d, 6d, 7d)); + final byte[] bytes = SerializationUtils.serialize(original); final WebClientOptions deserialized = (WebClientOptions) SerializationUtils.deserialize(bytes); @@ -77,6 +84,16 @@ public void serializationChanged() throws Exception { assertEquals(original.isThrowExceptionOnScriptError(), deserialized.isThrowExceptionOnScriptError()); assertEquals(original.isPopupBlockerEnabled(), deserialized.isPopupBlockerEnabled()); assertEquals(original.isRedirectEnabled(), deserialized.isRedirectEnabled()); + + assertEquals(original.isGeolocationEnabled(), deserialized.isGeolocationEnabled()); + assertEquals(original.getGeolocation().getAccuracy(), deserialized.getGeolocation().getAccuracy()); + assertEquals(original.getGeolocation().getLatitude(), deserialized.getGeolocation().getLatitude()); + assertEquals(original.getGeolocation().getLongitude(), deserialized.getGeolocation().getLongitude()); + assertEquals(original.getGeolocation().getAltitude(), deserialized.getGeolocation().getAltitude()); + assertEquals(original.getGeolocation().getAltitudeAccuracy(), + deserialized.getGeolocation().getAltitudeAccuracy()); + assertEquals(original.getGeolocation().getHeading(), deserialized.getGeolocation().getHeading()); + assertEquals(original.getGeolocation().getSpeed(), deserialized.getGeolocation().getSpeed()); } /**