package net.bootsfaces.it.component;
import net.bootsfaces.component.ImageRequestBean;
import net.bootsfaces.it.IntegrationTestsBase;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.container.test.api.RunAsClient;
import org.jboss.arquillian.graphene.GrapheneElement;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.arquillian.junit.InSequence;
import org.jboss.arquillian.warp.Activity;
import org.jboss.arquillian.warp.Inspection;
import org.jboss.arquillian.warp.Warp;
import org.jboss.arquillian.warp.WarpTest;
import org.jboss.arquillian.warp.jsf.AfterPhase;
import org.jboss.arquillian.warp.jsf.BeforePhase;
import org.jboss.arquillian.warp.jsf.Phase;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.openqa.selenium.support.FindBy;
import javax.inject.Inject;
import java.io.IOException;
import static org.jboss.arquillian.graphene.Graphene.guardAjax;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
//@RunWith(Arquillian.class)
@WarpTest
public class ImageITCase extends IntegrationTestsBase {
@Deployment
public static WebArchive createDeployment() {
WebArchive deployment = createBaseDeployment()
.addClass(IntegrationTestsBase.class)
.addClass(ImageRequestBean.class)
.addAsWebResource("imageIT.xhtml");
System.out.println(deployment.toString(true));
return deployment;
}
@Before
public void setup() throws IOException {
browser.get(context + "/faces/imageIT.xhtml");
}
@FindBy(id = "image_id_1")
private GrapheneElement image_id_1;
@FindBy(id = "image_id_2")
private GrapheneElement image_id_2;
@FindBy(id = "image_id_3")
private GrapheneElement image_id_3;
// @Test
@InSequence(1)
@RunAsClient
public void testImageItRender() {
String pageTitle = browser.getTitle();
//assert page title
assertEquals("Wrong page title found", "Image IT", pageTitle);
assertTrue("image_id_1 rendered failed. src does not exist.", image_id_1.getAttribute("src").endsWith("resources/images/bsf_logo.png"));
assertTrue("image_id_1 rendered failed. lang does not exist.", image_id_1.getAttribute("lang").equals("lang"));
assertTrue("image_id_1 rendered failed. alt does not exist.", image_id_1.getAttribute("alt").equals("this is an alternative text"));
assertTrue("image_id_1 rendered failed. width does not exist.", image_id_1.getAttribute("width").equals("100"));
assertTrue("image_id_1 rendered failed. height does not exist.", image_id_1.getAttribute("height").equals("100"));
assertTrue("image_id_1 rendered failed. style does not exist.", image_id_1.getAttribute("style").equals("style"));
assertTrue("image_id_1 rendered failed. class does not exist.", image_id_1.getAttribute("class").equals("styleClass"));
assertTrue("image_id_1 rendered failed. onclick does not exist.", image_id_1.getAttribute("onclick").equals("var dummy = 0;"));
assertTrue("image_id_1 rendered failed. ondblclick does not exist.", image_id_1.getAttribute("ondblclick").equals("var dummy = 0;"));
assertTrue("image_id_1 rendered failed. onmousedown does not exist.", image_id_1.getAttribute("onmousedown").equals("var dummy = 0;"));
assertTrue("image_id_1 rendered failed. onmousemove does not exist.", image_id_1.getAttribute("onmousemove").equals("var dummy = 0;"));
assertTrue("image_id_1 rendered failed. onmouseout does not exist.", image_id_1.getAttribute("onmouseout").equals("var dummy = 0;"));
assertTrue("image_id_1 rendered failed. onmouseover does not exist.", image_id_1.getAttribute("onmouseover").equals("var dummy = 0;"));
assertTrue("image_id_1 rendered failed. onmouseup does not exist.", image_id_1.getAttribute("onmouseup").equals("var dummy = 0;"));
}
// @Test
@InSequence(10)
@RunAsClient
public void testBootsfacesAjaxClick() {
//Navigate to page
browser.navigate().to(context + "/faces/imageIT.xhtml");
Warp.initiate(new Activity() {
public void perform() {
guardAjax(image_id_2).click();
}
})
.inspect(new Inspection() {
private static final long serialVersionUID = 1L;
@Inject
ImageRequestBean imageRequestBean;
@BeforePhase(Phase.INVOKE_APPLICATION)
public void testBeforeAjax() {
assertEquals(Boolean.FALSE, imageRequestBean.getAjaxCalled());
}
@AfterPhase(Phase.INVOKE_APPLICATION)
public void testAfterAjax() {
assertEquals(Boolean.TRUE, imageRequestBean.getAjaxCalled());
}
});
}
// @Test
@InSequence(10)
@RunAsClient
public void testJsfAjaxClick() {
//Navigate to page
browser.navigate().to(context + "/faces/imageIT.xhtml");
Warp.initiate(new Activity() {
public void perform() {
guardAjax(image_id_3).click();
}
})
.inspect(new Inspection() {
private static final long serialVersionUID = 1L;
@Inject
ImageRequestBean imageRequestBean;
@BeforePhase(Phase.INVOKE_APPLICATION)
public void testBeforeAjax() {
assertEquals(Boolean.FALSE, imageRequestBean.getAjaxCalled());
}
@AfterPhase(Phase.INVOKE_APPLICATION)
public void testAfterAjax() {
assertEquals(Boolean.TRUE, imageRequestBean.getAjaxCalled());
}
});
}
}