Author: nbelaevski
Date: 2011-02-23 09:35:15 -0500 (Wed, 23 Feb 2011)
New Revision: 21891
Modified:
branches/4.0.0.CR1/core/api/src/main/java/org/ajax4jsf/javascript/ScriptUtils.java
branches/4.0.0.CR1/core/api/src/test/java/org/ajax4jsf/javascript/ScriptUtilsTest.java
Log:
https://issues.jboss.org/browse/RF-10574
Modified:
branches/4.0.0.CR1/core/api/src/main/java/org/ajax4jsf/javascript/ScriptUtils.java
===================================================================
---
branches/4.0.0.CR1/core/api/src/main/java/org/ajax4jsf/javascript/ScriptUtils.java 2011-02-23
14:35:07 UTC (rev 21890)
+++
branches/4.0.0.CR1/core/api/src/main/java/org/ajax4jsf/javascript/ScriptUtils.java 2011-02-23
14:35:15 UTC (rev 21891)
@@ -35,6 +35,7 @@
import java.util.Iterator;
import java.util.Map;
import java.util.MissingResourceException;
+import java.util.SimpleTimeZone;
import javax.faces.FacesException;
import javax.faces.context.ResponseWriter;
@@ -173,7 +174,7 @@
throw new FacesException("Error in conversion Java Object to
JavaScript", e);
}
- boolean ignorePropertyReadException =
obj.getClass().getName().startsWith("java.sql.");
+ boolean ignorePropertyReadException =
obj.getClass().getName().startsWith("java.sql.") ||
obj.getClass().equals(SimpleTimeZone.class);
boolean first = true;
for (PropertyDescriptor propertyDescriptor : propertyDescriptors) {
Modified:
branches/4.0.0.CR1/core/api/src/test/java/org/ajax4jsf/javascript/ScriptUtilsTest.java
===================================================================
---
branches/4.0.0.CR1/core/api/src/test/java/org/ajax4jsf/javascript/ScriptUtilsTest.java 2011-02-23
14:35:07 UTC (rev 21890)
+++
branches/4.0.0.CR1/core/api/src/test/java/org/ajax4jsf/javascript/ScriptUtilsTest.java 2011-02-23
14:35:15 UTC (rev 21891)
@@ -27,6 +27,7 @@
import static org.easymock.EasyMock.eq;
import static org.easymock.EasyMock.expectLastCall;
import static org.easymock.EasyMock.isNull;
+import static org.junit.Assert.assertThat;
import java.util.ArrayList;
import java.util.Arrays;
@@ -36,6 +37,7 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.TimeZone;
import java.util.TreeMap;
import java.util.TreeSet;
@@ -47,6 +49,7 @@
import org.easymock.CaptureType;
import org.jboss.test.faces.mock.MockFacesEnvironment;
import org.junit.Test;
+import org.junit.internal.matchers.StringContains;
/**
* @author shura
@@ -472,4 +475,27 @@
assertEquals("test\\#",
ScriptUtils.escapeCSSMetachars("test#"));
assertEquals("test\\#\\=",
ScriptUtils.escapeCSSMetachars("test#="));
}
+
+ @Test
+ public void testTimezoneSerialization() throws Exception {
+ TimeZone utcPlusTwoTZ = TimeZone.getTimeZone("GMT+02:00");
+
+ String serializedUTCPlusTwoTZ = dehydrate(ScriptUtils.toScript(utcPlusTwoTZ));
+
+ assertThat(serializedUTCPlusTwoTZ,
StringContains.containsString("\"DSTSavings\":0"));
+ assertThat(serializedUTCPlusTwoTZ,
StringContains.containsString("\"ID\":\"GMT+02:00\""));
+ assertThat(serializedUTCPlusTwoTZ,
StringContains.containsString("\"rawOffset\":7200000"));
+
+ TimeZone pstTimeZone = TimeZone.getTimeZone("PST");
+ String serializedPSTTimeZone = dehydrate(ScriptUtils.toScript(pstTimeZone));
+
+ assertThat(serializedPSTTimeZone,
StringContains.containsString("\"ID\":\"PST\""));
+ assertThat(serializedPSTTimeZone,
StringContains.containsString("\"rawOffset\":-28800000"));
+
+ TimeZone sfTimeZone = TimeZone.getTimeZone("America/New_York");
+ String serializedSFTimeZone = dehydrate(ScriptUtils.toScript(sfTimeZone));
+
+ assertThat(serializedSFTimeZone,
StringContains.containsString("\"ID\":\"America\\/New_York\""));
+ assertThat(serializedSFTimeZone,
StringContains.containsString("\"rawOffset\":-18000000"));
+ }
}