Change-Id: Ic6704be620a3134a52fd3eb6efcd9af1e628dc18tags/7.4.8
@@ -42,6 +42,7 @@ public class TabsheetConnector extends TabsheetBaseConnector implements | |||
final boolean selected = key.equals(getState().selected); | |||
if (selected) { | |||
getWidget().waitingForResponse = false; | |||
getWidget().setActiveTabIndex(i); | |||
getWidget().selectTab(i); | |||
break; | |||
} |
@@ -0,0 +1,50 @@ | |||
/* | |||
* 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.components.tabsheet; | |||
import com.vaadin.annotations.Theme; | |||
import com.vaadin.server.VaadinRequest; | |||
import com.vaadin.tests.components.AbstractTestUI; | |||
import com.vaadin.ui.Label; | |||
import com.vaadin.ui.TabSheet; | |||
import com.vaadin.ui.TabSheet.SelectedTabChangeEvent; | |||
import com.vaadin.ui.TabSheet.SelectedTabChangeListener; | |||
@Theme("valo") | |||
public class VetoTabChange extends AbstractTestUI { | |||
@Override | |||
protected void setup(VaadinRequest request) { | |||
final TabSheet ts = new TabSheet(); | |||
ts.addSelectedTabChangeListener(new SelectedTabChangeListener() { | |||
@Override | |||
public void selectedTabChange(SelectedTabChangeEvent event) { | |||
ts.setSelectedTab(0); | |||
} | |||
}); | |||
ts.addTab(new Label("Tab 1"), "Tab 1"); | |||
ts.addTab(new Label("Tab 2"), "Tab 2"); | |||
addComponent(ts); | |||
} | |||
@Override | |||
public String getDescription() { | |||
return "Tests the behavior when there's a listener that always changes back to the first tab."; | |||
} | |||
} |
@@ -0,0 +1,47 @@ | |||
/* | |||
* 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.components.tabsheet; | |||
import org.junit.Assert; | |||
import org.junit.Test; | |||
import com.vaadin.testbench.elements.LabelElement; | |||
import com.vaadin.testbench.elements.TabSheetElement; | |||
import com.vaadin.tests.tb3.SingleBrowserTest; | |||
public class VetoTabChangeTest extends SingleBrowserTest { | |||
@Test | |||
public void testReselectTabAfterVeto() { | |||
openTestURL(); | |||
TabSheetElement tabSheet = $(TabSheetElement.class).first(); | |||
Assert.assertEquals("Tab 1 should be there by default", "Tab 1", | |||
getTabContent(tabSheet)); | |||
tabSheet.openTab(1); | |||
Assert.assertEquals("Tab should not have changed", "Tab 1", | |||
getTabContent(tabSheet)); | |||
tabSheet.openTab(0); | |||
Assert.assertEquals("Tab should still be there", "Tab 1", | |||
getTabContent(tabSheet)); | |||
} | |||
private String getTabContent(TabSheetElement tabSheet) { | |||
return tabSheet.getContent(LabelElement.class).getText(); | |||
} | |||
} |