]> source.dussan.org Git - vaadin-framework.git/commitdiff
#8053 Add new base classes for testing that doesn't use LegacyApplication
authorLeif Åstrand <leif@vaadin.com>
Tue, 6 Dec 2011 12:06:23 +0000 (14:06 +0200)
committerLeif Åstrand <leif@vaadin.com>
Tue, 6 Dec 2011 12:06:23 +0000 (14:06 +0200)
tests/testbench/com/vaadin/tests/components/AbstractTestApplication.java [new file with mode: 0644]
tests/testbench/com/vaadin/tests/components/AbstractTestRoot.java [new file with mode: 0644]

diff --git a/tests/testbench/com/vaadin/tests/components/AbstractTestApplication.java b/tests/testbench/com/vaadin/tests/components/AbstractTestApplication.java
new file mode 100644 (file)
index 0000000..8de1e68
--- /dev/null
@@ -0,0 +1,23 @@
+package com.vaadin.tests.components;
+
+import com.vaadin.Application;
+import com.vaadin.service.ApplicationContext;
+import com.vaadin.terminal.gwt.server.AbstractWebApplicationContext;
+import com.vaadin.terminal.gwt.server.WebBrowser;
+
+public abstract class AbstractTestApplication extends Application {
+    protected abstract String getTestDescription();
+
+    protected abstract Integer getTicketNumber();
+
+    protected WebBrowser getBrowser() {
+        ApplicationContext context = getContext();
+        if (context instanceof AbstractWebApplicationContext) {
+            WebBrowser webBrowser = ((AbstractWebApplicationContext) context)
+                    .getBrowser();
+            return webBrowser;
+        }
+
+        return null;
+    }
+}
diff --git a/tests/testbench/com/vaadin/tests/components/AbstractTestRoot.java b/tests/testbench/com/vaadin/tests/components/AbstractTestRoot.java
new file mode 100644 (file)
index 0000000..0d85283
--- /dev/null
@@ -0,0 +1,69 @@
+package com.vaadin.tests.components;
+
+import com.vaadin.Application;
+import com.vaadin.service.ApplicationContext;
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.terminal.gwt.server.AbstractWebApplicationContext;
+import com.vaadin.terminal.gwt.server.WebBrowser;
+import com.vaadin.ui.Component;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.Root;
+import com.vaadin.ui.VerticalLayout;
+
+public abstract class AbstractTestRoot extends Root {
+
+    @Override
+    public void init(WrappedRequest request) {
+        setCaption(getClass().getName());
+
+        Label label = new Label(getDescription(), Label.CONTENT_XHTML);
+        label.setWidth("100%");
+
+        layout = new VerticalLayout();
+
+        getContent().addComponent(label);
+        getContent().addComponent(layout);
+        ((VerticalLayout) getContent()).setExpandRatio(label, 1);
+
+        setup();
+    }
+
+    private VerticalLayout layout;
+
+    protected VerticalLayout getLayout() {
+        return layout;
+    }
+
+    protected abstract void setup();
+
+    @Override
+    public void addComponent(Component c) {
+        getLayout().addComponent(c);
+    }
+
+    @Override
+    public void removeComponent(Component c) {
+        getLayout().removeComponent(c);
+    }
+
+    @Override
+    public void replaceComponent(Component oldComponent, Component newComponent) {
+        getLayout().replaceComponent(oldComponent, newComponent);
+    }
+
+    public abstract String getTestDescription();
+
+    protected abstract Integer getTicketNumber();
+
+    protected WebBrowser getBrowser() {
+        ApplicationContext context = Application.getCurrentApplication()
+                .getContext();
+        if (context instanceof AbstractWebApplicationContext) {
+            AbstractWebApplicationContext webContext = (AbstractWebApplicationContext) context;
+            return webContext.getBrowser();
+        }
+
+        return null;
+    }
+
+}