From e4d7e2d500d9bb966279a6b986f65316d6b5e3d4 Mon Sep 17 00:00:00 2001 From: Johannes Dahlström Date: Thu, 11 Jun 2015 14:16:47 +0300 Subject: Fix declarative margin reading in AbstractOrderedLayout (#18229) Change-Id: Ia212d83568e4f0c891ec1a248b6d8567c0cf0095 --- .../AbstractLayoutDeclarativeMarginTest.java | 104 --------------------- .../server/component/DeclarativeMarginTest.java | 76 +++++++++++++++ .../AbstractOrderedLayoutDeclarativeTest.java | 49 ++++------ 3 files changed, 92 insertions(+), 137 deletions(-) delete mode 100644 server/tests/src/com/vaadin/tests/server/component/AbstractLayoutDeclarativeMarginTest.java create mode 100644 server/tests/src/com/vaadin/tests/server/component/DeclarativeMarginTest.java (limited to 'server/tests') 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 { - - @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 = ""; - } - - 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 + extends DeclarativeTestBase { + + @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 = ""; + } +} 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 { + DeclarativeMarginTest { private List 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 = "