diff options
author | Artur <artur@vaadin.com> | 2017-06-12 13:19:12 +0300 |
---|---|---|
committer | Ilia Motornyi <elmot@vaadin.com> | 2017-06-12 13:19:12 +0300 |
commit | 585c9ec24dc6f71f008218929aa91cabdc54c000 (patch) | |
tree | b40a76fd6476be23db151158f9556faefc90aad7 /server/src/test | |
parent | f8f8cc0385acc3d205de16d3183dd1fc410524a1 (diff) | |
download | vaadin-framework-585c9ec24dc6f71f008218929aa91cabdc54c000.tar.gz vaadin-framework-585c9ec24dc6f71f008218929aa91cabdc54c000.zip |
Add support for Views which are not components
Diffstat (limited to 'server/src/test')
-rw-r--r-- | server/src/test/java/com/vaadin/tests/server/navigator/NavigatorTest.java | 73 |
1 files changed, 69 insertions, 4 deletions
diff --git a/server/src/test/java/com/vaadin/tests/server/navigator/NavigatorTest.java b/server/src/test/java/com/vaadin/tests/server/navigator/NavigatorTest.java index 9ac9492d95..6991fd1b9e 100644 --- a/server/src/test/java/com/vaadin/tests/server/navigator/NavigatorTest.java +++ b/server/src/test/java/com/vaadin/tests/server/navigator/NavigatorTest.java @@ -40,9 +40,12 @@ import com.vaadin.navigator.ViewProvider; import com.vaadin.server.Page; import com.vaadin.server.VaadinRequest; import com.vaadin.shared.Registration; +import com.vaadin.shared.ui.ui.PageState; import com.vaadin.tests.server.navigator.ClassBasedViewProviderTest.TestView; import com.vaadin.tests.server.navigator.ClassBasedViewProviderTest.TestView2; import com.vaadin.ui.Component; +import com.vaadin.ui.HorizontalLayout; +import com.vaadin.ui.Label; import com.vaadin.ui.UI; import com.vaadin.ui.VerticalLayout; @@ -462,12 +465,15 @@ public class NavigatorTest { @Test public void testComponentContainerViewDisplay() { - abstract class TestView implements Component, View { + class TestView extends VerticalLayout implements View { + @Override + public void enter(ViewChangeEvent event) { + + } } - TestView tv1 = EasyMock.createNiceMock(TestView.class); - TestView tv2 = EasyMock.createNiceMock(TestView.class); - EasyMock.replay(tv1, tv2); + TestView tv1 = new TestView(); + TestView tv2 = new TestView(); VerticalLayout container = new VerticalLayout(); ViewDisplay display = new Navigator.ComponentContainerViewDisplay( @@ -904,4 +910,63 @@ public class NavigatorTest { navigator.navigateTo(viewName); Assert.assertEquals(1, count[0]); } + + public static class ViewIsNotAComponent implements View { + + private HorizontalLayout layout = new HorizontalLayout( + new Label("Hello")); + + @Override + public Component getViewComponent() { + return layout; + } + + @Override + public void enter(ViewChangeEvent event) { + + } + } + + @Test + public void viewWhichIsNotAComponent() { + UI ui = new UI() { + + private Page page; + { + page = new Page(this, new PageState()) { + private String fragment = ""; + + @Override + public String getUriFragment() { + return fragment; + }; + + @Override + public void setUriFragment(String newUriFragment, + boolean fireEvents) { + fragment = newUriFragment; + }; + }; + } + + @Override + protected void init(VaadinRequest request) { + } + + @Override + public Page getPage() { + return page; + } + }; + + Navigator navigator = new Navigator(ui, ui); + ui.setNavigator(navigator); + navigator.addView("foo", ViewIsNotAComponent.class); + navigator.navigateTo("foo"); + + Assert.assertEquals(HorizontalLayout.class, ui.getContent().getClass()); + Assert.assertEquals("Hello", + ((Label) ((HorizontalLayout) ui.getContent()).getComponent(0)) + .getValue()); + } } |