You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

SerializerTestTest.java 6.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. package com.vaadin.tests.serialization;
  2. import static org.junit.Assert.assertEquals;
  3. import static org.junit.Assert.assertTrue;
  4. import java.text.SimpleDateFormat;
  5. import java.util.Arrays;
  6. import java.util.Date;
  7. import java.util.Locale;
  8. import java.util.stream.Collectors;
  9. import org.junit.Test;
  10. import com.vaadin.tests.tb3.MultiBrowserTest;
  11. public class SerializerTestTest extends MultiBrowserTest {
  12. private final SimpleDateFormat FORMAT = new SimpleDateFormat(
  13. "EEE MMM dd HH:mm:ss 'GMT'Z yyyy", new Locale("en", "fi"));
  14. @Test
  15. public void testSerialization() {
  16. // Set up formatting with browsers timezone
  17. FORMAT.setTimeZone(getBrowserTimeZone());
  18. openTestURL();
  19. int logRow = 0;
  20. assertEquals("sendJson: {\"b\":false,\"s\":\"JSON\"}, null, \"value\"",
  21. getLogRow(logRow++));
  22. assertEquals(
  23. "sendDateArray: January 31, 2013 12:00:00 AM UTC January 31, 2012 12:00:00 AM UTC",
  24. getLogRow(logRow++));
  25. assertEquals("sendDate: May 1, 2013 11:12:13 AM UTC",
  26. getLogRow(logRow++));
  27. assertEquals("sendDate: January 1, 1970 12:00:00 AM UTC",
  28. getLogRow(logRow++));
  29. assertEquals(
  30. "sendEnum: PREFORMATTED, [HTML, TEXT], [PREFORMATTED, TEXT]",
  31. getLogRow(logRow++));
  32. assertEquals(
  33. "sendWrappedGenerics: {[SimpleTestBean(1)]={1=[SimpleTestBean(42)]}}",
  34. getLogRow(logRow++));
  35. assertEquals(
  36. "sendMap: {a=SimpleTestBean(1)}, [com.vaadin.tests.widgetset.server.SerializerTestExtension=SimpleTestBean(4)], [2=com.vaadin.tests.widgetset.server.SerializerTestExtension], {SimpleTestBean(4)=SimpleTestBean(-4), SimpleTestBean(-5)=SimpleTestBean(5)}",
  37. getLogRow(logRow++));
  38. assertEquals(
  39. "sendSet: [-12, -7, -4], class com.vaadin.tests.serialization.SerializerTest, [SimpleTestBean(2), SimpleTestBean(3)]",
  40. getLogRow(logRow++));
  41. assertEquals(
  42. "sendArrayList: [[2], [2]], [[2, 1], [2, 3]], [[SimpleTestBean(7)]]",
  43. getLogRow(logRow++));
  44. assertEquals(
  45. "sendList: [-234, 5, 8], class com.vaadin.tests.widgetset.server.SerializerTestExtension, class com.vaadin.tests.serialization.SerializerTest, [SimpleTestBean(-568), SimpleTestBean(234)]",
  46. getLogRow(logRow++));
  47. assertEquals(
  48. "sendNestedArray: [[7, 5]], [[SimpleTestBean(2)], [SimpleTestBean(4)]]",
  49. getLogRow(logRow++));
  50. assertEquals("sendNull: null, Not null", getLogRow(logRow++));
  51. assertEquals(
  52. "sendBean: ComplexTestBean [innerBean1=SimpleTestBean(1), innerBean2=SimpleTestBean(3), innerBeanCollection=[SimpleTestBean(6), SimpleTestBean(0)], privimite=6], SimpleTestBean(0), [SimpleTestBean(7)]",
  53. getLogRow(logRow++));
  54. assertEquals(
  55. "sendConnector: com.vaadin.tests.widgetset.server.SerializerTestExtension",
  56. getLogRow(logRow++));
  57. assertEquals("sendString: Taegghiiiinnrsssstt‡, [null, ‡]",
  58. getLogRow(logRow++));
  59. assertEquals(
  60. "sendDouble: 0.423310825130748, 5.859874482048838, [2.0, 1.7976931348623157E308, 4.9E-324]",
  61. getLogRow(logRow++));
  62. assertEquals("sendFloat: 1.0000001, 3.14159, [-12.0, 0.0, 57.0]",
  63. getLogRow(logRow++));
  64. assertEquals("sendLong: -57841235865, 577431841358, [57, 0]",
  65. getLogRow(logRow++));
  66. assertEquals("sendInt: 2, 5, [2147483647, 0]", getLogRow(logRow++));
  67. assertEquals("sendChar: Å, ∫, [a, b, c, d]", getLogRow(logRow++));
  68. assertEquals("sendByte: 5, -12, [3, 1, 2]", getLogRow(logRow++));
  69. assertEquals(
  70. "sendBoolean: false, false, [false, false, true, false, true, true]",
  71. getLogRow(logRow++));
  72. assertEquals("sendBeanSubclass: 43", getLogRow(logRow++));
  73. // Dates from state
  74. Date date1 = new Date(1);
  75. Date date2 = new Date(Date.UTC(2013 - 1900, 4, 1, 11, 12, 13));
  76. Date[] dateArray = new Date[] { new Date(1), new Date(2) };
  77. assertEquals(
  78. "state.dateArray: " + Arrays.stream(dateArray)
  79. .map(this::formatDate).collect(Collectors.joining(" ")),
  80. getLogRow(logRow++));
  81. assertEquals("state.date2: " + formatDate(date2), getLogRow(logRow++));
  82. assertEquals("state.date1: " + formatDate(date1), getLogRow(logRow++));
  83. assertEquals("state.jsonBoolean: false", getLogRow(logRow++));
  84. assertEquals("state.jsonString: a string", getLogRow(logRow++));
  85. assertEquals("state.jsonNull: NULL", getLogRow(logRow++));
  86. assertEquals("state.stringArray: [null, ‡]", getLogRow(logRow++));
  87. assertEquals("state.string: This is a tesing string ‡",
  88. getLogRow(logRow++));
  89. assertEquals("state.doubleArray: [1.7976931348623157e+308, 5e-324]",
  90. getLogRow(logRow++));
  91. assertEquals("state.doubleObjectValue: -2.718281828459045",
  92. getLogRow(logRow++));
  93. assertEquals("state.doubleValue: 3.141592653589793",
  94. getLogRow(logRow++));
  95. assertEquals("state.floatArray: [57, 0, -12]", getLogRow(logRow++));
  96. assertTrue(getLogRow(logRow++)
  97. .startsWith("state.floatObjectValue: 1.0000001"));
  98. assertTrue(getLogRow(logRow++).startsWith("state.floatValue: 3.14159"));
  99. assertEquals("state.longArray: [-57841235865, 57]",
  100. getLogRow(logRow++));
  101. assertEquals("state.longObjectValue: 577431841360",
  102. getLogRow(logRow++));
  103. assertEquals("state.longValue: 577431841359", getLogRow(logRow++));
  104. assertEquals("state.intArray: [5, 7]", getLogRow(logRow++));
  105. assertEquals("state.intObjectValue: 42", getLogRow(logRow++));
  106. assertEquals("state.intValue: 2147483647", getLogRow(logRow++));
  107. assertEquals("state.charArray: aBcD", getLogRow(logRow++));
  108. assertEquals("state.charObjectValue: å", getLogRow(logRow++));
  109. assertEquals("state.charValue: ∫", getLogRow(logRow++));
  110. assertEquals("state.byteArray: [3, 1, 2]", getLogRow(logRow++));
  111. assertEquals("state.byteObjectValue: -12", getLogRow(logRow++));
  112. assertEquals("state.byteValue: 5", getLogRow(logRow++));
  113. assertEquals(
  114. "state.booleanArray: [true, true, false, true, false, false]",
  115. getLogRow(logRow++));
  116. }
  117. private String formatDate(Date date) {
  118. // JavaScript formatting drops leading 0 from offset
  119. return FORMAT.format(date).replaceAll("(GMT[+-])0", "$1");
  120. }
  121. }