diff options
author | Teemu Suo-Anttila <tsuoanttila@users.noreply.github.com> | 2018-04-17 14:53:50 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-17 14:53:50 +0300 |
commit | aac64dba9c3a2841ccd9ab524b752b6307f0159d (patch) | |
tree | af86cfe3101caa8520f1baaa6f9b648523aea92e /uitest/src/test/java/com/vaadin/tests/serialization/SerializerTestTest.java | |
parent | 9eb3119dbaf9342064f1e3a0733478e3c97ba5ea (diff) | |
download | vaadin-framework-aac64dba9c3a2841ccd9ab524b752b6307f0159d.tar.gz vaadin-framework-aac64dba9c3a2841ccd9ab524b752b6307f0159d.zip |
Introduce XVFB cluster testing (#10801)
This patch adds the ability and configuration
for running tests against cluster running Chrome
browsers in XVFB environment.
It also contains multiple fixes for combining
newer Selenium and Chrome as well as fixes
tests that depend on timezones.
Diffstat (limited to 'uitest/src/test/java/com/vaadin/tests/serialization/SerializerTestTest.java')
-rw-r--r-- | uitest/src/test/java/com/vaadin/tests/serialization/SerializerTestTest.java | 58 |
1 files changed, 51 insertions, 7 deletions
diff --git a/uitest/src/test/java/com/vaadin/tests/serialization/SerializerTestTest.java b/uitest/src/test/java/com/vaadin/tests/serialization/SerializerTestTest.java index 438a2c848c..e75da79f8c 100644 --- a/uitest/src/test/java/com/vaadin/tests/serialization/SerializerTestTest.java +++ b/uitest/src/test/java/com/vaadin/tests/serialization/SerializerTestTest.java @@ -3,23 +3,48 @@ package com.vaadin.tests.serialization; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.Locale; +import java.util.TimeZone; +import java.util.stream.Collectors; + import org.junit.Test; +import org.openqa.selenium.JavascriptExecutor; +import org.openqa.selenium.remote.DesiredCapabilities; +import com.vaadin.testbench.annotations.RunLocally; +import com.vaadin.testbench.parallel.Browser; import com.vaadin.tests.tb3.MultiBrowserTest; public class SerializerTestTest extends MultiBrowserTest { + private static final SimpleDateFormat FORMAT = new SimpleDateFormat( + "EEE MMM dd HH:mm:ss 'GMT'Z yyyy", new Locale("en", "fi")); + + @Override + public List<DesiredCapabilities> getBrowsersToTest() { + // PhantomJS doesn't support getting timezone + return getBrowsersExcludingPhantomJS(); + } + @Test public void testSerialization() { + // Set up formatting with browsers timezone + FORMAT.setTimeZone(getBrowserTimeZone()); + openTestURL(); int logRow = 0; assertEquals("sendJson: {\"b\":false,\"s\":\"JSON\"}, null, \"value\"", getLogRow(logRow++)); assertEquals( - "sendDateArray: January 31, 2013 10:00:00 PM UTC January 31, 2012 10:00:00 PM UTC", + "sendDateArray: January 31, 2013 12:00:00 AM UTC January 31, 2012 12:00:00 AM UTC", getLogRow(logRow++)); - assertEquals("sendDate: May 31, 2013 8:12:13 AM UTC", + assertEquals("sendDate: May 1, 2013 11:12:13 AM UTC", getLogRow(logRow++)); assertEquals("sendDate: January 1, 1970 12:00:00 AM UTC", getLogRow(logRow++)); @@ -67,13 +92,19 @@ public class SerializerTestTest extends MultiBrowserTest { "sendBoolean: false, false, [false, false, true, false, true, true]", getLogRow(logRow++)); assertEquals("sendBeanSubclass: 43", getLogRow(logRow++)); + + // Dates from state + Date date1 = new Date(1); + Date date2 = new Date(Date.UTC(2013 - 1900, 4, 1, 11, 12, 13)); + Date[] dateArray = new Date[] { new Date(1), new Date(2) }; + assertEquals( - "state.dateArray: Thu Jan 01 02:00:00 GMT+200 1970 Thu Jan 01 02:00:00 GMT+200 1970", - getLogRow(logRow++)); - assertEquals("state.date2: Fri May 31 11:12:13 GMT+300 2013", - getLogRow(logRow++)); - assertEquals("state.date1: Thu Jan 01 02:00:00 GMT+200 1970", + "state.dateArray: " + Arrays.stream(dateArray) + .map(this::formatDate).collect(Collectors.joining(" ")), getLogRow(logRow++)); + assertEquals("state.date2: " + formatDate(date2), getLogRow(logRow++)); + assertEquals("state.date1: " + formatDate(date1), getLogRow(logRow++)); + assertEquals("state.jsonBoolean: false", getLogRow(logRow++)); assertEquals("state.jsonString: a string", getLogRow(logRow++)); assertEquals("state.jsonNull: NULL", getLogRow(logRow++)); @@ -107,6 +138,19 @@ public class SerializerTestTest extends MultiBrowserTest { assertEquals( "state.booleanArray: [true, true, false, true, false, false]", getLogRow(logRow++)); + } + + private TimeZone getBrowserTimeZone() { + // Ask TimeZone from browser + String browserTimeZone = ((JavascriptExecutor) getDriver()) + .executeScript( + "return Intl.DateTimeFormat().resolvedOptions().timeZone;") + .toString(); + return TimeZone.getTimeZone(browserTimeZone); + } + private String formatDate(Date date) { + // JavaScript formatting drops leading 0 from offset + return FORMAT.format(date).replaceAll("(GMT[+-])0", "$1"); } } |