diff options
author | Artur Signell <artur@vaadin.com> | 2013-01-21 21:46:47 +0200 |
---|---|---|
committer | Artur Signell <artur@vaadin.com> | 2013-02-11 18:42:32 +0200 |
commit | c598a852c2565b67226533622b5f75a3b588acf3 (patch) | |
tree | 15e1aed52c14105b0121c88f37c4febff62b1d4f /uitest/src/com/vaadin/tests/components/OutOfSyncTest.java | |
parent | 8959135e3054fe0de1d36f705195b224df3d67d8 (diff) | |
download | vaadin-framework-c598a852c2565b67226533622b5f75a3b588acf3.tar.gz vaadin-framework-c598a852c2565b67226533622b5f75a3b588acf3.zip |
Handle OutOfSync by resyncing automatically (#10780)
Change-Id: I5958d82b09519dabe9f2af792bd216d3b426c1c9
Diffstat (limited to 'uitest/src/com/vaadin/tests/components/OutOfSyncTest.java')
-rw-r--r-- | uitest/src/com/vaadin/tests/components/OutOfSyncTest.java | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/uitest/src/com/vaadin/tests/components/OutOfSyncTest.java b/uitest/src/com/vaadin/tests/components/OutOfSyncTest.java new file mode 100644 index 0000000000..0efb519e8d --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/OutOfSyncTest.java @@ -0,0 +1,55 @@ +package com.vaadin.tests.components; + +import com.vaadin.server.VaadinRequest; +import com.vaadin.ui.Button; +import com.vaadin.ui.Button.ClickEvent; +import com.vaadin.ui.Button.ClickListener; +import com.vaadin.ui.Notification; + +public class OutOfSyncTest extends AbstractTestUI { + + @Override + protected void setup(VaadinRequest request) { + Button b = new Button("Click me after 1s to be out of sync"); + b.addClickListener(new ClickListener() { + + @Override + public void buttonClick(ClickEvent event) { + Notification.show("This code will never be reached"); + } + }); + setContent(b); + Thread t = new Thread(new Runnable() { + + @Override + public void run() { + try { + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + // Remove button but prevent repaint -> causes out of sync + // issues + getSession().lock(); + try { + setContent(null); + getConnectorTracker().markClean(OutOfSyncTest.this); + } finally { + getSession().unlock(); + } + } + }); + t.start(); + } + + @Override + protected String getTestDescription() { + return "Click the button after 1s when it has been removed server side (causing synchronization problems)"; + } + + @Override + protected Integer getTicketNumber() { + return 10780; + } + +} |