Browse Source

[merge from 6.7] #8793 Add unit test for TabSheet.replaceComponent()

svn changeset:23758/svn branch:6.8
tags/7.0.0.alpha3
Johannes Dahlström 12 years ago
parent
commit
ecd02651e7

+ 63
- 0
tests/server-side/com/vaadin/tests/server/component/tabsheet/TestTabSheet.java View File

@@ -2,6 +2,8 @@ package com.vaadin.tests.server.component.tabsheet;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;

import java.util.Iterator;

@@ -158,4 +160,65 @@ public class TestTabSheet {
tabSheet.setSelectedTab(123);
assertEquals(tab1.getComponent(), tabSheet.getSelectedTab());
}

@Test
public void replaceComponent() {
TabSheet tabSheet = new TabSheet();
Label lbl1 = new Label("aaa");
Label lbl2 = new Label("bbb");
Label lbl3 = new Label("ccc");
Label lbl4 = new Label("ddd");

Tab tab1 = tabSheet.addTab(lbl1);
tab1.setCaption("tab1");
tab1.setClosable(true);
Tab tab2 = tabSheet.addTab(lbl2);
tab2.setDescription("description");
tab2.setEnabled(false);

// Replace component not in tabsheet with one already in tabsheet -
// should be no-op
tabSheet.replaceComponent(lbl3, lbl2);
assertEquals(2, tabSheet.getComponentCount());
assertSame(tab1, tabSheet.getTab(lbl1));
assertSame(tab2, tabSheet.getTab(lbl2));
assertNull(tabSheet.getTab(lbl3));

// Replace component not in tabsheet with one not in tabsheet either
// should add lbl4 as last tab
tabSheet.replaceComponent(lbl3, lbl4);
assertEquals(3, tabSheet.getComponentCount());
assertSame(tab1, tabSheet.getTab(lbl1));
assertSame(tab2, tabSheet.getTab(lbl2));
assertEquals(2, tabSheet.getTabPosition(tabSheet.getTab(lbl4)));

// Replace component in tabsheet with another
// should swap places, tab association should stay the same but tabs
// should swap metadata
tabSheet.replaceComponent(lbl1, lbl2);
assertSame(tab1, tabSheet.getTab(lbl1));
assertSame(tab2, tabSheet.getTab(lbl2));
assertEquals(false, tab1.isClosable());
assertEquals(true, tab2.isClosable());
assertEquals(false, tab1.isEnabled());
assertEquals(true, tab2.isEnabled());
assertEquals("description", tab1.getDescription());
assertEquals(null, tab2.getDescription());
assertEquals(3, tabSheet.getComponentCount());
assertEquals(1, tabSheet.getTabPosition(tabSheet.getTab(lbl1)));
assertEquals(0, tabSheet.getTabPosition(tabSheet.getTab(lbl2)));

// Replace component in tabsheet with one not in tabsheet
// should create a new tab instance for the new component, old tab
// instance should become unattached
// tab metadata should be copied from old to new
tabSheet.replaceComponent(lbl1, lbl3);
assertEquals(3, tabSheet.getComponentCount());
assertNull(tabSheet.getTab(lbl1));
assertNull(tab1.getComponent());
assertNotNull(tabSheet.getTab(lbl3));
assertEquals(false, tabSheet.getTab(lbl3).isEnabled());
assertEquals("description", tab1.getDescription());
assertEquals(1, tabSheet.getTabPosition(tabSheet.getTab(lbl3)));
}
}

Loading…
Cancel
Save