package com.vaadin.tests.server.component.orderedlayout; import java.util.Iterator; import org.junit.Test; import com.vaadin.ui.AbstractOrderedLayout; import com.vaadin.ui.Component; import com.vaadin.ui.HorizontalLayout; import com.vaadin.ui.Label; import com.vaadin.ui.VerticalLayout; public class OrderedLayoutTest { @Test public void testVLIteration() { testIndexing(new VerticalLayout(), 10); } @Test public void testHLIteration() { testIndexing(new HorizontalLayout(), 12); } public void testIndexing(AbstractOrderedLayout aol, int nrComponents) { Component[] components = generateComponents(nrComponents); for (Component c : components) { aol.addComponent(c); } for (int i = 0; i < nrComponents; i++) { assert (aol.getComponent(i) == components[i]); assert (aol.getComponentIndex(components[i]) == i); } // Iteration should be in indexed order int idx = 0; for (Iterator<Component> i = aol.getComponentIterator(); i.hasNext();) { Component c = i.next(); assert (aol.getComponentIndex(c) == idx++); } } private Component[] generateComponents(int nr) { Component[] components = new Component[nr]; for (int i = 0; i < nr; i++) { components[i] = new Label("" + i); } return components; } }