package eu.swiec.bearballin.model.exceptions;
import java.util.ArrayList;
import java.util.List;
import eu.swiec.bearballin.model.steps.SeleniumStep;
import eu.swiec.bearballin.runtime.steps.selenium.errorpages.ErrorStepSentToHandDecision;
import eu.swiec.bearballin.runtime.steps.selenium.errorpages.ErrorStepUpss;
public class SeleniumException extends RuntimeException {
private static final long serialVersionUID = 6633629196775760609L;
public final static List<SeleniumStep> knownErrorSteps = initializeKnownErrorSteps();
public SeleniumException() {
this("No message");
}
public SeleniumException(String message) {
this(message, new Throwable());
}
public SeleniumException(String message, Throwable cause) {
super(message, cause);
SeleniumException.checkKnownErrors();
SeleniumStep.savePage();
SeleniumStep.quit();
}
private static List<SeleniumStep> initializeKnownErrorSteps() {
List<SeleniumStep> errorSteps = new ArrayList<SeleniumStep>();
errorSteps.add(new ErrorStepUpss("Upss! Cos sie zepsulo"));
errorSteps.add(new ErrorStepSentToHandDecision("Przes�anie do r�cznej decyzji"));
return errorSteps;
}
public static void checkKnownErrors() {
for (SeleniumStep knownErrorPage : knownErrorSteps) {
if (knownErrorPage.checkAccesibility()) {
throw new SeleniumErrorPageException("Known Error Page occured: ", knownErrorPage);
}
}
}
}