aboutsummaryrefslogtreecommitdiffstats
path: root/uitest/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'uitest/src/main/java')
-rw-r--r--uitest/src/main/java/com/vaadin/tests/application/CustomJSONSerializer.java63
1 files changed, 63 insertions, 0 deletions
diff --git a/uitest/src/main/java/com/vaadin/tests/application/CustomJSONSerializer.java b/uitest/src/main/java/com/vaadin/tests/application/CustomJSONSerializer.java
new file mode 100644
index 0000000000..9c8ca554d8
--- /dev/null
+++ b/uitest/src/main/java/com/vaadin/tests/application/CustomJSONSerializer.java
@@ -0,0 +1,63 @@
+package com.vaadin.tests.application;
+
+import java.lang.reflect.Type;
+
+import com.vaadin.server.JsonCodec;
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.server.communication.JSONSerializer;
+import com.vaadin.shared.communication.URLReference;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.ConnectorTracker;
+import com.vaadin.ui.LoginForm;
+
+import elemental.json.Json;
+import elemental.json.JsonObject;
+import elemental.json.JsonValue;
+
+public class CustomJSONSerializer extends AbstractTestUI {
+
+ static {
+ JsonCodec.setCustomSerializer(URLReference.class,
+ new JSONSerializer<URLReference>() {
+
+ @Override
+ public URLReference deserialize(Type type,
+ JsonValue jsonValue,
+ ConnectorTracker connectorTracker) {
+ // NOP
+ return null;
+ }
+
+ @Override
+ public JsonValue serialize(URLReference value,
+ ConnectorTracker connectorTracker) {
+ JsonObject result = Json.createObject();
+ String url = value.getURL();
+ // change all test.com urls to vaadin.com
+ if ("http://www.test.com".equals(url)) {
+ url = "http://www.vaadin.com";
+ }
+ result.put("uRL", url);
+ return result;
+ }
+
+ });
+ }
+
+ public static class MyLoginForm extends LoginForm {
+ public void setResource(URLReference ref) {
+ getState().loginResource = ref;
+ }
+ }
+
+ @Override
+ protected void setup(VaadinRequest request) {
+ MyLoginForm loginForm = new MyLoginForm();
+ URLReference url = new URLReference();
+ url.setURL("http://www.test.com");
+ loginForm.setResource(url);
+ addComponent(loginForm);
+ }
+
+}