summaryrefslogtreecommitdiffstats
path: root/uitest
diff options
context:
space:
mode:
authorAlexey Fansky <alexey.fansky@effective-soft.com>2015-03-13 12:06:48 -0700
committerVaadin Code Review <review@vaadin.com>2015-04-15 13:49:15 +0000
commit8c061294630ba608fbc6a507f9bffe5c24bcfa40 (patch)
treec107c502577ab22fb5ec5c617c3729a7afdf78ba /uitest
parente2176c32849af8a5a763c02733367cc9931cd2b6 (diff)
downloadvaadin-framework-8c061294630ba608fbc6a507f9bffe5c24bcfa40.tar.gz
vaadin-framework-8c061294630ba608fbc6a507f9bffe5c24bcfa40.zip
Re-showed tab is displayed if there is room for it (#17096)
Change-Id: I52c9a47e2b9eed3a3f73f34e4c3e770b915509bf
Diffstat (limited to 'uitest')
-rw-r--r--uitest/src/com/vaadin/tests/components/tabsheet/FirstTabNotVisibleWhenTabsheetNotClipped.java130
-rw-r--r--uitest/src/com/vaadin/tests/components/tabsheet/FirstTabNotVisibleWhenTabsheetNotClippedTest.java56
2 files changed, 186 insertions, 0 deletions
diff --git a/uitest/src/com/vaadin/tests/components/tabsheet/FirstTabNotVisibleWhenTabsheetNotClipped.java b/uitest/src/com/vaadin/tests/components/tabsheet/FirstTabNotVisibleWhenTabsheetNotClipped.java
new file mode 100644
index 0000000000..6d66f1d295
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/tabsheet/FirstTabNotVisibleWhenTabsheetNotClipped.java
@@ -0,0 +1,130 @@
+package com.vaadin.tests.components.tabsheet;
+
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.ui.*;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class FirstTabNotVisibleWhenTabsheetNotClipped extends AbstractTestUI {
+
+ private TabSheet.Tab firstNotClippedTab;
+ private TabSheet.Tab firstClippedTab;
+
+ @Override
+ protected void setup(VaadinRequest request) {
+ addButton("Toggle first not clipped tab", new Button.ClickListener() {
+ @Override
+ public void buttonClick(Button.ClickEvent event) {
+ firstNotClippedTab.setVisible(!firstNotClippedTab.isVisible());
+ }
+ });
+ addComponent(createNotClippedTabSheet());
+
+ addButton("Toggle first clipped tab", new Button.ClickListener() {
+ @Override
+ public void buttonClick(Button.ClickEvent event) {
+ firstClippedTab.setVisible(!firstClippedTab.isVisible());
+ }
+ });
+ addComponent(createClippedTabSheet());
+
+ addComponent(new Label("VerticalLayout:"));
+ addBlock(new VerticalLayout());
+ addComponent(new Label("HorizontalLayout:"));
+ addBlock(new HorizontalLayout());
+ }
+
+ private TabSheet createNotClippedTabSheet() {
+ TabSheet notClippedTabSheet = new TabSheet();
+ for (int i = 0; i < 2; i++) {
+ notClippedTabSheet.addTab(createTabContent(i), "Tab " + i);
+ }
+ firstNotClippedTab = notClippedTabSheet.getTab(0);
+ return notClippedTabSheet;
+ }
+
+ private TabSheet createClippedTabSheet() {
+ TabSheet clippedTabSheet = new TabSheet();
+ for (int i = 0; i < 50; i++) {
+ clippedTabSheet.addTab(createTabContent(i), "Tab " + i);
+ }
+ firstClippedTab = clippedTabSheet.getTab(0);
+ return clippedTabSheet;
+ }
+
+ private VerticalLayout createTabContent(int index) {
+ VerticalLayout layout = new VerticalLayout();
+ layout.addComponent(new Label("Tab " + index + " Content"));
+ return layout;
+ }
+
+ private void addBlock(Layout layout) {
+ layout.setWidth("300px");
+
+ TabSheet tabsheet = new TabSheet();
+ String[] letters = { "A", "B", "C", "D" };
+ HashMap<String, TabSheet.Tab> tabMap = new HashMap<String, TabSheet.Tab>();
+
+ for (String letter : letters) {
+ VerticalLayout vLayout = new VerticalLayout();
+ vLayout.addComponent(new Label(letter + 1));
+ vLayout.addComponent(new Label(letter + 2));
+ vLayout.addComponent(new Label(letter + 3));
+
+ tabsheet.addTab(vLayout);
+ tabsheet.getTab(vLayout).setCaption("tab " + letter);
+
+ tabMap.put("tab " + letter, tabsheet.getTab(vLayout));
+ }
+
+ VerticalLayout vtabLayout = new VerticalLayout();
+
+ for (String letter : letters) {
+ Button btntab = new Button("show tab " + letter);
+ btntab.setId("tab " + letter);
+ btntab.addClickListener(createTabListener(tabMap, tabsheet));
+ vtabLayout.addComponent(btntab);
+ }
+
+ layout.addComponent(vtabLayout);
+ layout.addComponent(tabsheet);
+ addComponent(layout);
+ }
+
+ private Button.ClickListener createTabListener(final HashMap<String, TabSheet.Tab> map,
+ final TabSheet tabsheet) {
+
+ Button.ClickListener clickListener = new Button.ClickListener() {
+
+ @Override
+ public void buttonClick(Button.ClickEvent event) {
+ // id of the button is the same as the tab's caption
+ String tabName = event.getComponent().getId();
+
+ for (Map.Entry<String, TabSheet.Tab> entry : map.entrySet()) {
+ TabSheet.Tab tab = entry.getValue();
+
+ if (entry.getKey().equals(tabName)) {
+ tab.setVisible(true);
+ tabsheet.setSelectedTab(tab.getComponent());
+ } else {
+ tab.setVisible(false);
+ }
+ }
+ }
+ };
+ return clickListener;
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 17096;
+ }
+
+ @Override
+ public String getDescription() {
+ return "TabSheet should display re-shown tab if there's room for it";
+ }
+}
diff --git a/uitest/src/com/vaadin/tests/components/tabsheet/FirstTabNotVisibleWhenTabsheetNotClippedTest.java b/uitest/src/com/vaadin/tests/components/tabsheet/FirstTabNotVisibleWhenTabsheetNotClippedTest.java
new file mode 100644
index 0000000000..74a725f5ed
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/tabsheet/FirstTabNotVisibleWhenTabsheetNotClippedTest.java
@@ -0,0 +1,56 @@
+package com.vaadin.tests.components.tabsheet;
+
+import com.vaadin.testbench.By;
+import com.vaadin.testbench.elements.ButtonElement;
+import com.vaadin.testbench.elements.TabSheetElement;
+import com.vaadin.tests.tb3.MultiBrowserTest;
+import org.junit.Assert;
+import org.junit.Test;
+import org.openqa.selenium.WebElement;
+
+public class FirstTabNotVisibleWhenTabsheetNotClippedTest extends MultiBrowserTest {
+ @Test
+ public void testNotClippedTabIsVisible() throws InterruptedException {
+ openTestURL();
+
+ ButtonElement toggleNotClipped = $(ButtonElement.class)
+ .caption("Toggle first not clipped tab").first();
+
+ toggleNotClipped.click();
+ TabSheetElement notClippedTabSheet = $(TabSheetElement.class).get(0);
+ WebElement firstTab = notClippedTabSheet.findElement(
+ By.className("v-tabsheet-tabitemcell-first"));
+ String caption = firstTab.findElement(By.className("v-captiontext")).getText();
+ Assert.assertEquals("Tab with -first style should be Tab 1", "Tab 1", caption);
+
+ toggleNotClipped.click();
+ firstTab = notClippedTabSheet.findElement(
+ By.className("v-tabsheet-tabitemcell-first"));
+ caption = firstTab.findElement(By.className("v-captiontext")).getText();
+ Assert.assertEquals("Tab with -first style should be Tab 0", "Tab 0", caption);
+ }
+
+
+ @Test
+ public void testShowPreviouslyHiddenTab() {
+ openTestURL();
+
+ $(ButtonElement.class).caption("show tab D").get(0).click();
+ $(ButtonElement.class).caption("show tab C").get(0).click();
+
+ WebElement firstTab = $(TabSheetElement.class).get(2)
+ .findElement(By.className("v-tabsheet-tabitemcell-first"));
+ String firstCaption = firstTab.findElement(By.className("v-captiontext")).getText();
+
+ org.junit.Assert.assertEquals("tab C", firstCaption);
+
+ $(ButtonElement.class).caption("show tab D").get(1).click();
+ $(ButtonElement.class).caption("show tab C").get(1).click();
+
+ WebElement secondTab = $(TabSheetElement.class).get(3)
+ .findElement(By.className("v-tabsheet-tabitemcell-first"));
+ String secondCaption = secondTab.findElement(By.className("v-captiontext")).getText();
+
+ org.junit.Assert.assertEquals("tab C", secondCaption);
+ }
+}