package org.vaadin.smartgwt.server.tab; import static org.junit.Assert.*; import static org.mockito.Mockito.*; import java.util.Arrays; import java.util.HashMap; import org.junit.Before; import org.junit.Test; import com.google.common.collect.Maps; import com.vaadin.terminal.PaintException; import com.vaadin.terminal.gwt.server.JsonPaintTarget; public class TabSetTest { private TabSet tabSet; @Before public void before() { tabSet = new TabSet(); } @Test public void test_removesTabOnClientCloseTabEvent() { final Tab tab = new Tab(null); final HashMap<String, Object> variables = Maps.newHashMap(); tabSet.addTab(tab); variables.put("TabCloseClickEvent.tab", tab); tabSet.changeVariables(null, variables); assertFalse("tab should be removed", Arrays.asList(tabSet.getTabs()).contains(tab)); } @Test public void test_noPaintToClientWhenRemovingTabOnClientCloseTabEvent() throws PaintException { final Tab tab = new Tab(null); final HashMap<String, Object> variables = Maps.newHashMap(); tabSet.addTab(tab); tabSet.paintContent(mock(JsonPaintTarget.class)); variables.put("TabCloseClickEvent.tab", tab); tabSet.changeVariables(null, variables); final JsonPaintTarget paintTarget = mock(JsonPaintTarget.class); tabSet.paintContent(paintTarget); verify(paintTarget, never()).startTag("tabs"); verify(paintTarget, never()).addAttribute("element", tab); } }