package org.richfaces.arquillian.browser;
import org.jboss.arquillian.core.api.Instance;
import org.jboss.arquillian.core.api.annotation.Inject;
import org.jboss.arquillian.core.api.annotation.Observes;
import org.jboss.arquillian.drone.spi.DroneContext;
import org.jboss.arquillian.drone.spi.DronePoint;
import org.jboss.arquillian.drone.spi.event.AfterDroneEnhanced;
import org.jboss.arquillian.drone.spi.event.DroneEvent;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebDriver;
/**
* Resizes browser window to 1280x1024.
*
* @author Lukas Fryc
* @author <a href="https://developer.jboss.org/people/ppitonak">Pavol Pitonak</a>
*/
public class WindowResizer {
@Inject
Instance<DroneContext> droneContext;
public void resizeBrowserWindow(@Observes AfterDroneEnhanced event) {
resizeWindow(event);
}
private void resizeWindow(DroneEvent event) {
DronePoint<?> dronePoint = event.getDronePoint();
if (!dronePoint.conformsTo(WebDriver.class)) {
// This Drone is not instance of WebDriver, we will not resize the window
return;
}
DroneContext context = droneContext.get();
if (context == null) {
throw new IllegalArgumentException("DroneContext must not be null");
}
WebDriver driver = context.get(dronePoint).getInstanceAs(WebDriver.class);
driver.manage().window().setSize(new Dimension(1280, 1024));
}
}