package org.richfaces.component.fileUpload;
import java.io.File;
import java.io.RandomAccessFile;
import java.net.URL;
import org.jboss.arquillian.container.test.api.RunAsClient;
import org.jboss.arquillian.drone.api.annotation.Drone;
import org.jboss.arquillian.graphene.Graphene;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.junit.runner.RunWith;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.FindBy;
import org.richfaces.fragment.fileUpload.RichFacesFileUpload;
import com.google.common.base.Predicate;
@RunWith(Arquillian.class)
@RunAsClient
public abstract class IT_RF14257 {
protected static final long ONE_KB = 1024;
@Drone
protected WebDriver browser;
@ArquillianResource
protected URL contextPath;
@ArquillianResource
protected JavascriptExecutor executor;
@FindBy(id = "fileUpload")
protected RichFacesFileUpload fileUpload;
public static File createFileWithSize(long lengthInBytes) {
if (lengthInBytes > 0) {
try {
File f = new File("target/generatedFile-" + lengthInBytes + "-B.bin");
if (f.exists()) {
return f;// return already generated file
}
// create file with needed length
RandomAccessFile ra = new RandomAccessFile(f, "rw");
ra.setLength(lengthInBytes);
ra.close();
return f;
} catch (Throwable ex) {
throw new RuntimeException(ex);
}
} else {
throw new IllegalArgumentException();
}
}
protected void assertOnsizeRejectedTriggered(final int times) {
Graphene.waitGui().until(new Predicate<WebDriver>() {
private int onsizerejectedTriggeredTimes = 0;
@Override
public boolean apply(WebDriver t) {
onsizerejectedTriggeredTimes = Integer.valueOf(String.valueOf(executor.executeScript("return window.onsizerejected")));
return onsizerejectedTriggeredTimes == times;
}
@Override
public String toString() {
return "onsizerejected to be triggered <" + times + "> times. In the last check, it was triggered <" + onsizerejectedTriggeredTimes + "> times.";
}
});
}
}