package org.richfaces.component.tabPanel;
import static org.jboss.arquillian.graphene.Graphene.guardAjax;
import java.net.URL;
import java.util.List;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.container.test.api.RunAsClient;
import org.jboss.arquillian.drone.api.annotation.Drone;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.richfaces.integration.OutputDeployment;
import org.richfaces.component.tabPanel.model.TabBean;
import org.richfaces.component.tabPanel.model.TabPanelBean;
import org.richfaces.shrinkwrap.descriptor.FaceletAsset;
public class DynamicTabTestHelper {
public void check_tab_switch(WebElement tabPanel, List<WebElement> tabs, WebElement a4jCreateTabButton) {
Assert.assertEquals(6, tabs.size());
Assert.assertEquals("content of tab 0", getTabContent(tabPanel).getText());
guardAjax(tabs.get(2)).click();
Assert.assertEquals("content of tab 2", getTabContent(tabPanel).getText());
guardAjax(tabs.get(4)).click();
Assert.assertEquals("content of tab 4", getTabContent(tabPanel).getText());
guardAjax(tabs.get(5)).click();
Assert.assertEquals("content of tab 5", getTabContent(tabPanel).getText());
guardAjax(tabs.get(0)).click();
Assert.assertEquals("content of tab 0", getTabContent(tabPanel).getText());
guardAjax(a4jCreateTabButton).click();
Assert.assertEquals(7, tabs.size());
guardAjax(tabs.get(6)).click();
Assert.assertEquals("content of tab 6", getTabContent(tabPanel).getText());
guardAjax(tabs.get(0)).click();
Assert.assertEquals("content of tab 0", getTabContent(tabPanel).getText());
WebElement removeLink =tabs.get(6).findElement(By.tagName("a"));
guardAjax(removeLink).click();
Assert.assertEquals(6, tabs.size());
}
public WebElement getTabContent(WebElement tabPanel) {
for (WebElement tabContent : tabPanel.findElements(By.className("rf-tab"))) {
if (tabContent.isDisplayed()) {
return tabContent;
}
}
return null;
}
public WebElement getActiveTab(WebElement tabPanel) {
for (WebElement tab : tabPanel.findElements(By.className("rf-tab-hdr-act"))) {
if (tab.isDisplayed()) {
return tab;
}
}
return null;
}
public void check_row_removal(WebElement tabPanel, List<WebElement> tabs, WebElement a4jCreateTabButton) {
Assert.assertEquals(6, tabs.size());
guardAjax(a4jCreateTabButton).click();
guardAjax(a4jCreateTabButton).click();
guardAjax(a4jCreateTabButton).click();
Assert.assertEquals(9, tabs.size());
WebElement removeLink =tabs.get(8).findElement(By.tagName("a"));
guardAjax(removeLink).click();
Assert.assertEquals(8, tabs.size());
removeLink =tabs.get(7).findElement(By.tagName("a"));
guardAjax(removeLink).click();
Assert.assertEquals(7, tabs.size());
removeLink =tabs.get(6).findElement(By.tagName("a"));
guardAjax(removeLink).click();
Assert.assertEquals(6, tabs.size());
}
}