aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorLeif Åstrand <leif@vaadin.com>2012-06-10 15:10:10 +0300
committerLeif Åstrand <leif@vaadin.com>2012-06-11 19:56:12 +0300
commit24e3409e6ff117ff954f36a9c9378690c76634f8 (patch)
tree951ce0be5f7e68fb262732e748a21b6bbf645552 /tests
parent67a92f8d9823f8771ba4d47684b5f7735fb3c13b (diff)
downloadvaadin-framework-24e3409e6ff117ff954f36a9c9378690c76634f8.tar.gz
vaadin-framework-24e3409e6ff117ff954f36a9c9378690c76634f8.zip
Initial support for javascript components (#8888)
Diffstat (limited to 'tests')
-rw-r--r--tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavascriptComponent.java73
-rw-r--r--tests/testbench/com/vaadin/tests/features/SimpleJavascriptExtensionTest.java95
2 files changed, 168 insertions, 0 deletions
diff --git a/tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavascriptComponent.java b/tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavascriptComponent.java
new file mode 100644
index 0000000000..2240fc246b
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavascriptComponent.java
@@ -0,0 +1,73 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+package com.vaadin.tests.components.javascriptcomponent;
+
+import java.util.Arrays;
+import java.util.List;
+
+import com.vaadin.annotations.LoadScripts;
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.terminal.gwt.client.ComponentState;
+import com.vaadin.terminal.gwt.client.communication.ServerRpc;
+import com.vaadin.tests.components.AbstractTestRoot;
+import com.vaadin.ui.AbstractJavascriptComponent;
+import com.vaadin.ui.Root;
+
+@LoadScripts({ "/statictestfiles/jsconnector.js" })
+public class BasicJavascriptComponent extends AbstractTestRoot {
+
+ public interface ExampleClickRpc extends ServerRpc {
+ public void onClick(String message);
+ }
+
+ public static class SpecialState extends ComponentState {
+ private List<String> data;
+
+ public List<String> getData() {
+ return data;
+ }
+
+ public void setData(List<String> data) {
+ this.data = data;
+ }
+ }
+
+ public static class ExampleWidget extends AbstractJavascriptComponent {
+ public ExampleWidget() {
+ registerRpc(new ExampleClickRpc() {
+ public void onClick(String message) {
+ Root.getCurrentRoot().showNotification(
+ "Got a click: " + message);
+ }
+ });
+ getState().setData(Arrays.asList("a", "b", "c"));
+ }
+
+ @Override
+ public SpecialState getState() {
+ return (SpecialState) super.getState();
+ }
+ }
+
+ @Override
+ protected void setup(WrappedRequest request) {
+ ExampleWidget c = new ExampleWidget();
+ c.setCaption("test caption");
+ c.setDescription("Some description");
+ addComponent(c);
+ }
+
+ @Override
+ protected String getTestDescription() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/tests/testbench/com/vaadin/tests/features/SimpleJavascriptExtensionTest.java b/tests/testbench/com/vaadin/tests/features/SimpleJavascriptExtensionTest.java
new file mode 100644
index 0000000000..591689b4b0
--- /dev/null
+++ b/tests/testbench/com/vaadin/tests/features/SimpleJavascriptExtensionTest.java
@@ -0,0 +1,95 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.tests.features;
+
+import com.vaadin.annotations.LoadScripts;
+import com.vaadin.terminal.AbstractJavascriptExtension;
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.terminal.gwt.client.communication.ClientRpc;
+import com.vaadin.terminal.gwt.client.communication.ServerRpc;
+import com.vaadin.terminal.gwt.client.communication.SharedState;
+import com.vaadin.tests.components.AbstractTestRoot;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Root;
+
+@LoadScripts({ "/statictestfiles/jsextension.js" })
+public class SimpleJavascriptExtensionTest extends AbstractTestRoot {
+
+ public static class SimpleJavascriptExtensionState extends SharedState {
+ private String prefix;
+
+ public void setPrefix(String prefix) {
+ this.prefix = prefix;
+ }
+
+ public String getPrefix() {
+ return prefix;
+ }
+ }
+
+ public static interface SimpleJavascriptExtensionClientRpc extends
+ ClientRpc {
+ public void greet(String message);
+ }
+
+ public static interface SimpleJavascriptExtensionServerRpc extends
+ ServerRpc {
+ public void greet(String message);
+ }
+
+ public static class SimpleJavascriptExtension extends
+ AbstractJavascriptExtension {
+
+ public SimpleJavascriptExtension() {
+ registerRpc(new SimpleJavascriptExtensionServerRpc() {
+ public void greet(String message) {
+ Root.getCurrentRoot().showNotification(
+ getState().getPrefix() + message);
+ }
+ });
+ }
+
+ @Override
+ public SimpleJavascriptExtensionState getState() {
+ return (SimpleJavascriptExtensionState) super.getState();
+ }
+
+ public void setPrefix(String prefix) {
+ getState().setPrefix(prefix);
+ requestRepaint();
+ }
+
+ public void greet(String message) {
+ getRpcProxy(SimpleJavascriptExtensionClientRpc.class)
+ .greet(message);
+ }
+ }
+
+ @Override
+ protected void setup(WrappedRequest request) {
+ final SimpleJavascriptExtension simpleJavascriptExtension = new SimpleJavascriptExtension();
+ simpleJavascriptExtension.setPrefix("Prefix: ");
+ addExtension(simpleJavascriptExtension);
+ addComponent(new Button("Send greeting", new Button.ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ simpleJavascriptExtension.greet("Greeted by button");
+ }
+ }));
+ }
+
+ @Override
+ protected String getTestDescription() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}