diff options
author | Johannes Dahlström <johannesd@vaadin.com> | 2015-06-11 14:16:47 +0300 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2015-06-11 12:46:17 +0000 |
commit | e4d7e2d500d9bb966279a6b986f65316d6b5e3d4 (patch) | |
tree | 7508627bae08ec5b6e4f0baa32fa2aea37773974 /server/tests | |
parent | 61037a75a565828e1f6dd752347e82036182e489 (diff) | |
download | vaadin-framework-e4d7e2d500d9bb966279a6b986f65316d6b5e3d4.tar.gz vaadin-framework-e4d7e2d500d9bb966279a6b986f65316d6b5e3d4.zip |
Fix declarative margin reading in AbstractOrderedLayout (#18229)
Change-Id: Ia212d83568e4f0c891ec1a248b6d8567c0cf0095
Diffstat (limited to 'server/tests')
3 files changed, 92 insertions, 137 deletions
diff --git a/server/tests/src/com/vaadin/tests/server/component/AbstractLayoutDeclarativeMarginTest.java b/server/tests/src/com/vaadin/tests/server/component/AbstractLayoutDeclarativeMarginTest.java deleted file mode 100644 index 70855f67dc..0000000000 --- a/server/tests/src/com/vaadin/tests/server/component/AbstractLayoutDeclarativeMarginTest.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright 2000-2014 Vaadin Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.vaadin.tests.server.component; - -import org.junit.Test; - -import com.vaadin.shared.ui.MarginInfo; -import com.vaadin.tests.design.DeclarativeTestBase; -import com.vaadin.ui.AbstractLayout; -import com.vaadin.ui.VerticalLayout; - -public class AbstractLayoutDeclarativeMarginTest extends - DeclarativeTestBase<AbstractLayout> { - - @Test - public void testMarginInfo() { - VerticalLayout vl = new VerticalLayout(); - - String left = getMarginTag(true, false, false, false); - MarginInfo leftInfo = getMarginInfo(true, false, false, false); - - String right = getMarginTag(false, true, false, false); - MarginInfo rightInfo = getMarginInfo(false, true, false, false); - - String top = getMarginTag(false, false, true, false); - MarginInfo topInfo = getMarginInfo(false, false, true, false); - - String bottom = getMarginTag(false, false, false, true); - MarginInfo bottomInfo = getMarginInfo(false, false, false, true); - - String topLeft = getMarginTag(true, false, true, false); - MarginInfo topLeftInfo = getMarginInfo(true, false, true, false); - - String topRight = getMarginTag(false, true, true, false); - MarginInfo topRightInfo = getMarginInfo(false, true, true, false); - - String bottomLeft = getMarginTag(true, false, false, true); - MarginInfo bottomLeftInfo = getMarginInfo(true, false, false, true); - - String bottomRight = getMarginTag(false, true, false, true); - MarginInfo bottomRightInfo = getMarginInfo(false, true, false, true); - - testRW(vl, left, leftInfo); - testRW(vl, right, rightInfo); - testRW(vl, top, topInfo); - testRW(vl, bottom, bottomInfo); - - testRW(vl, topLeft, topLeftInfo); - testRW(vl, topRight, topRightInfo); - testRW(vl, bottomLeft, bottomLeftInfo); - testRW(vl, bottomRight, bottomRightInfo); - - // Test special case of all edges margin'ed - testRW(vl, getMarginTag(true, true, true, true), new MarginInfo(true)); - } - - private void testRW(VerticalLayout vl, String design, MarginInfo margin) { - vl.setMargin(margin); - testWrite(design, vl); - testRead(design, vl); - } - - private String getMarginTag(boolean left, boolean right, boolean top, - boolean bottom) { - String s = "<v-vertical-layout "; - - if (left && right && top && bottom) { - s += "margin='true'"; - } else { - if (left) { - s += "margin-left='true' "; - } - if (right) { - s += "margin-right='true' "; - } - if (top) { - s += "margin-top='true' "; - } - if (bottom) { - s += "margin-bottom='true' "; - } - } - return s + " />"; - } - - private MarginInfo getMarginInfo(boolean left, boolean right, boolean top, - boolean bottom) { - return new MarginInfo(top, right, bottom, left); - } - -} diff --git a/server/tests/src/com/vaadin/tests/server/component/DeclarativeMarginTest.java b/server/tests/src/com/vaadin/tests/server/component/DeclarativeMarginTest.java new file mode 100644 index 0000000000..d31a93a68b --- /dev/null +++ b/server/tests/src/com/vaadin/tests/server/component/DeclarativeMarginTest.java @@ -0,0 +1,76 @@ +/* + * Copyright 2000-2014 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.tests.server.component; + +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + +import com.vaadin.shared.ui.MarginInfo; +import com.vaadin.tests.design.DeclarativeTestBase; +import com.vaadin.ui.Layout; +import com.vaadin.ui.Layout.MarginHandler; + +@Ignore +public abstract class DeclarativeMarginTest<L extends Layout & MarginHandler> + extends DeclarativeTestBase<L> { + + @Test + public void testMargins() { + + for (int i = 0; i < 16; ++i) { + boolean top = (i & 1) == 1; + boolean right = (i & 2) == 2; + boolean bottom = (i & 4) == 4; + boolean left = (i & 8) == 8; + + MarginInfo m = new MarginInfo(top, right, bottom, left); + + String design = getMarginTag(top, right, bottom, left); + + // The assertEquals machinery in DeclarativeTestBase uses bean + // introspection and MarginInfo is not a proper bean. It ends up + // considering *all* MarginInfo objects equal... (#18229) + L layout = read(design); + Assert.assertEquals(m, layout.getMargin()); + + testWrite(design, layout); + } + } + + private String getMarginTag(boolean top, boolean right, boolean bottom, + boolean left) { + String s = "<v-vertical-layout "; + + if (left && right && top && bottom) { + s += "margin='true'"; + } else { + if (left) { + s += "margin-left='true' "; + } + if (right) { + s += "margin-right='true' "; + } + if (top) { + s += "margin-top='true' "; + } + if (bottom) { + s += "margin-bottom='true' "; + } + } + return s + " />"; + } +} diff --git a/server/tests/src/com/vaadin/tests/server/component/abstractorderedlayout/AbstractOrderedLayoutDeclarativeTest.java b/server/tests/src/com/vaadin/tests/server/component/abstractorderedlayout/AbstractOrderedLayoutDeclarativeTest.java index 8ccd41f797..38bd68e6e1 100644 --- a/server/tests/src/com/vaadin/tests/server/component/abstractorderedlayout/AbstractOrderedLayoutDeclarativeTest.java +++ b/server/tests/src/com/vaadin/tests/server/component/abstractorderedlayout/AbstractOrderedLayoutDeclarativeTest.java @@ -21,7 +21,7 @@ import java.util.List; import org.junit.Test; import com.vaadin.shared.ui.label.ContentMode; -import com.vaadin.tests.design.DeclarativeTestBase; +import com.vaadin.tests.server.component.DeclarativeMarginTest; import com.vaadin.ui.AbstractOrderedLayout; import com.vaadin.ui.Alignment; import com.vaadin.ui.Button; @@ -35,58 +35,42 @@ import com.vaadin.ui.VerticalLayout; * @author Vaadin Ltd */ public class AbstractOrderedLayoutDeclarativeTest extends - DeclarativeTestBase<AbstractOrderedLayout> { + DeclarativeMarginTest<AbstractOrderedLayout> { private List<String> defaultAlignments = Arrays.asList(new String[] { ":top", ":left" }); @Test - public void testMargin() { - String design = getDesign(0, true); - AbstractOrderedLayout layout = getLayout(0, true, null); - testRead(design, layout); - testWrite(design, layout); - design = getDesign(0, false); - layout = getLayout(0, false, null); - testRead(design, layout); - testWrite(design, layout); - } - - @Test public void testExpandRatio() { - String design = getDesign(1, false); - AbstractOrderedLayout layout = getLayout(1, false, null); + String design = getDesign(1); + AbstractOrderedLayout layout = getLayout(1, null); testRead(design, layout); testWrite(design, layout); - design = getDesign(0.25f, false); - layout = getLayout(0.25f, false, null); + design = getDesign(0.25f); + layout = getLayout(0.25f, null); testRead(design, layout); testWrite(design, layout); } @Test public void testAlignment() { - String design = getDesign(0, false, ":top", ":left"); - AbstractOrderedLayout layout = getLayout(0, false, Alignment.TOP_LEFT); + String design = getDesign(0, ":top", ":left"); + AbstractOrderedLayout layout = getLayout(0, Alignment.TOP_LEFT); testRead(design, layout); testWrite(design, layout); - design = getDesign(0, false, ":middle", ":center"); - layout = getLayout(0, false, Alignment.MIDDLE_CENTER); + design = getDesign(0, ":middle", ":center"); + layout = getLayout(0, Alignment.MIDDLE_CENTER); testRead(design, layout); testWrite(design, layout); - design = getDesign(0, false, ":bottom", ":right"); - layout = getLayout(0, false, Alignment.BOTTOM_RIGHT); + design = getDesign(0, ":bottom", ":right"); + layout = getLayout(0, Alignment.BOTTOM_RIGHT); testRead(design, layout); testWrite(design, layout); } - private String getDesign(float expandRatio, boolean margin, - String... alignments) { - String result = "<v-vertical-layout caption=test-layout"; - if (margin) { - result += " margin=true"; - } - result += "><v-label caption=test-label "; + private String getDesign(float expandRatio, String... alignments) { + String result = "<v-vertical-layout caption=test-layout>"; + result += "<v-label caption=test-label "; String ratioString = expandRatio == 1.0f ? "\"\"" : String .valueOf(expandRatio); if (expandRatio != 0) { @@ -110,10 +94,9 @@ public class AbstractOrderedLayoutDeclarativeTest extends return result; } - private AbstractOrderedLayout getLayout(float expandRatio, boolean margin, + private AbstractOrderedLayout getLayout(float expandRatio, Alignment alignment) { VerticalLayout layout = new VerticalLayout(); - layout.setMargin(margin); layout.setCaption("test-layout"); Label l = new Label(); l.setCaption("test-label"); |