package org.richfaces.component;
import static org.jboss.arquillian.graphene.Graphene.guardAjax;
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.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.FindBy;
import org.richfaces.integration.RichDeployment;
import category.Smoke;
import java.io.File;
import java.net.URL;
@RunAsClient
@RunWith(Arquillian.class)
public class ITDnd {
@Drone
private WebDriver browser;
@ArquillianResource
private URL contextPath;
@FindBy(id = "form:ind")
private WebElement indicator;
@FindBy(id = "form:php")
private WebElement phpTarget;
@FindBy(id = "form:dnet")
private WebElement dnetTarget;
@FindBy(id = "form:cf")
private WebElement cfTarget;
@Deployment(testable = false)
public static WebArchive createDeployment() {
RichDeployment deployment = new RichDeployment(ITDnd.class);
deployment.archive().addAsWebResource(new File("src/test/resources/org/richfaces/component/dnd.xhtml"));
deployment.archive().addAsWebResource(new File("src/test/resources/images/dnd/accept.gif"), "/resources/images/dnd/accept.gif");
deployment.archive().addAsWebResource(new File("src/test/resources/images/dnd/default.gif"), "/resources/images/dnd/default.gif");
deployment.archive().addAsWebResource(new File("src/test/resources/images/dnd/reject.gif"), "/resources/images/dnd/reject.gif");
deployment.archive().addClass(DragDropBean.class);
deployment.archive().addClass(DragDropEventBean.class);
deployment.archive().addClass(Framework.class);
return deployment.getFinalArchive();
}
@Test
@Category(Smoke.class)
public void test_dnd() throws InterruptedException {
// given
browser.get(contextPath.toExternalForm() + "dnd.jsf");
WebElement framework = browser.findElements(By.cssSelector(".ui-draggable")).get(0);
Actions builder = new Actions(browser);
final Action dragAndDrop = builder.dragAndDrop(framework, phpTarget).build();
guardAjax(dragAndDrop).perform();
Assert.assertEquals(1, phpTarget.findElements(By.cssSelector("td")).size());
}
}