diff options
author | Mika Murtojarvi <mika@vaadin.com> | 2014-12-09 13:34:33 +0200 |
---|---|---|
committer | Mika Murtojarvi <mika@vaadin.com> | 2014-12-09 15:59:48 +0200 |
commit | 12e5d620ab2ce885590a280d2c19e230cc083bb6 (patch) | |
tree | 2dcfa896ed22383952fe07aee821aeb72aa06a5e /server/tests/src | |
parent | 18b333ee3dfd171956829e97a32baa8069346c65 (diff) | |
download | vaadin-framework-12e5d620ab2ce885590a280d2c19e230cc083bb6.tar.gz vaadin-framework-12e5d620ab2ce885590a280d2c19e230cc083bb6.zip |
Handle immediate property as a special case (#7749).
Change-Id: I507b44acfd3036d2d2862d1d04b518adc7bf826a
Diffstat (limited to 'server/tests/src')
2 files changed, 35 insertions, 0 deletions
diff --git a/server/tests/src/com/vaadin/tests/server/component/abstractcomponent/TestSynchronizeFromDesign.java b/server/tests/src/com/vaadin/tests/server/component/abstractcomponent/TestSynchronizeFromDesign.java index d32155fd68..06fc59a2f3 100644 --- a/server/tests/src/com/vaadin/tests/server/component/abstractcomponent/TestSynchronizeFromDesign.java +++ b/server/tests/src/com/vaadin/tests/server/component/abstractcomponent/TestSynchronizeFromDesign.java @@ -15,6 +15,8 @@ */ package com.vaadin.tests.server.component.abstractcomponent; +import java.lang.reflect.Field; + import junit.framework.TestCase; import org.jsoup.nodes.Attributes; @@ -102,6 +104,23 @@ public class TestSynchronizeFromDesign extends TestCase { AbstractComponent component = getComponent(); component.synchronizeFromDesign(design, ctx); assertEquals(true, component.isImmediate()); + assertEquals(Boolean.TRUE, getExplicitImmediate(component)); + // Synchronize with a design having no immediate attribute - + // explicitImmediate should then be null. + design = createDesign("description", "test-description"); + component.synchronizeFromDesign(design, ctx); + assertEquals(null, getExplicitImmediate(component)); + // Synchronize with a design having immediate = false + design = createDesign("immediate", "false"); + component.synchronizeFromDesign(design, ctx); + assertEquals(false, component.isImmediate()); + assertEquals(Boolean.FALSE, getExplicitImmediate(component)); + // Synchronize with a design having immediate = "" - should correspond to + // true. + design = createDesign("immediate", ""); + component.synchronizeFromDesign(design, ctx); + assertEquals(true, component.isImmediate()); + assertEquals(Boolean.TRUE, getExplicitImmediate(component)); } public void testSynchronizeDescription() { @@ -219,4 +238,16 @@ public class TestSynchronizeFromDesign extends TestCase { Element node = new Element(Tag.valueOf("v-label"), "", attributes); return node; } + + private Boolean getExplicitImmediate(AbstractComponent component) { + try { + Field immediate = AbstractComponent.class + .getDeclaredField("explicitImmediateValue"); + immediate.setAccessible(true); + return (Boolean) immediate.get(component); + } catch (Exception e) { + throw new RuntimeException( + "Getting the field explicitImmediateValue failed."); + } + } } diff --git a/server/tests/src/com/vaadin/tests/server/component/abstractcomponent/TestSynchronizeToDesign.java b/server/tests/src/com/vaadin/tests/server/component/abstractcomponent/TestSynchronizeToDesign.java index f0eb05f364..5b65dce8ac 100644 --- a/server/tests/src/com/vaadin/tests/server/component/abstractcomponent/TestSynchronizeToDesign.java +++ b/server/tests/src/com/vaadin/tests/server/component/abstractcomponent/TestSynchronizeToDesign.java @@ -126,6 +126,10 @@ public class TestSynchronizeToDesign extends TestCase { public void testSynchronizeImmediate() { Element design = createDesign(); AbstractComponent component = getComponent(); + // no immediate attribute should be written before setting immediate to + // some value + component.synchronizeFromDesign(design, ctx); + assertFalse(design.hasAttr("immediate")); component.setImmediate(true); component.synchronizeToDesign(design, ctx); // we only changed one of the attributes, others are at default values |