package test.com.xceptance.xlt.common.util.action.validation;
import org.junit.BeforeClass;
import org.junit.Test;
import test.com.xceptance.xlt.common.util.MockObjects;
import com.xceptance.xlt.api.data.GeneralDataProvider;
import com.xceptance.xlt.api.util.XltProperties;
import com.xceptance.xlt.common.util.action.data.URLActionData;
import com.xceptance.xlt.common.util.action.data.URLActionDataValidation;
import com.xceptance.xlt.common.util.action.validation.URLActionDataExecutableResult;
import com.xceptance.xlt.common.util.action.validation.URLActionDataValidationResponseHandler;
import com.xceptance.xlt.common.util.action.validation.XPathWithHtmlPage;
import com.xceptance.xlt.common.util.bsh.ParameterInterpreter;
public class URLActionDataValidationResponseHandlerTest
{
private static URLActionDataValidationResponseHandler validationHandler;
private static MockObjects mockObjects;
private static ParameterInterpreter interpreter;
private static XltProperties properties;
private static GeneralDataProvider dataProvider;
private static URLActionDataExecutableResult result;
private static XPathWithHtmlPage xpwh;
private static URLActionData action;
private static URLActionDataValidation validationExists;
private static URLActionDataValidation validationCount;
private static URLActionDataValidation validationText;
private static URLActionDataValidation validationMatches;
private static URLActionDataValidation validationExistsMalicious;
private static URLActionDataValidation validationCountMalicious;
private static URLActionDataValidation validationTextMalicious;
private static URLActionDataValidation validationMatchesMalicious;
@BeforeClass
public static void setup()
{
properties = XltProperties.getInstance();
dataProvider = GeneralDataProvider.getInstance();
interpreter = new ParameterInterpreter(properties, dataProvider);
mockObjects = new MockObjects();
mockObjects.load();
xpwh = new XPathWithHtmlPage(mockObjects.getHtmlPage());
result = new URLActionDataExecutableResult(mockObjects.getResponse(), xpwh);
validationExists = new URLActionDataValidation("exists", URLActionDataValidation.REGEXP, mockObjects.regexString,
URLActionDataValidation.EXISTS, null, interpreter);
validationCount = new URLActionDataValidation("count", URLActionDataValidation.REGEXP, mockObjects.regexString, URLActionDataValidation.COUNT,
"1", interpreter);
validationText = new URLActionDataValidation("text", URLActionDataValidation.REGEXP, mockObjects.regexString, URLActionDataValidation.TEXT,
mockObjects.regexStringExpected, interpreter);
validationMatches = new URLActionDataValidation("matches", URLActionDataValidation.REGEXP, mockObjects.regexString,
URLActionDataValidation.MATCHES, mockObjects.regexString, interpreter);
validationExistsMalicious = new URLActionDataValidation("exists", URLActionDataValidation.REGEXP, "malicious",
URLActionDataValidation.EXISTS, null, interpreter);
validationCountMalicious = new URLActionDataValidation("count", URLActionDataValidation.REGEXP, mockObjects.regexString,
URLActionDataValidation.COUNT, "5", interpreter);
validationTextMalicious = new URLActionDataValidation("text", URLActionDataValidation.REGEXP, mockObjects.regexString,
URLActionDataValidation.TEXT, mockObjects.regexString, interpreter);
validationMatchesMalicious = new URLActionDataValidation("matches", URLActionDataValidation.REGEXP, mockObjects.regexString,
URLActionDataValidation.MATCHES, "not a title", interpreter);
}
@Test
public void testExists()
{
validationHandler = new URLActionDataValidationResponseHandler();
validationHandler.validate(validationExists, result, action);
}
@Test
public void testCount()
{
validationHandler = new URLActionDataValidationResponseHandler();
validationHandler.validate(validationCount, result, action);
}
@Test
public void testText()
{
validationHandler = new URLActionDataValidationResponseHandler();
validationHandler.validate(validationText, result, action);
}
@Test
public void testMatches()
{
validationHandler = new URLActionDataValidationResponseHandler();
validationHandler.validate(validationMatches, result, action);
}
@Test(expected = AssertionError.class)
public void testExistsMalicious()
{
validationHandler = new URLActionDataValidationResponseHandler();
validationHandler.validate(validationExistsMalicious, result, action);
}
@Test(expected = AssertionError.class)
public void testCountMalicious()
{
validationHandler = new URLActionDataValidationResponseHandler();
validationHandler.validate(validationCountMalicious, result, action);
}
@Test(expected = AssertionError.class)
public void testTextMalicious()
{
validationHandler = new URLActionDataValidationResponseHandler();
validationHandler.validate(validationTextMalicious, result, action);
}
@Test(expected = AssertionError.class)
public void testMatchesMalicious()
{
validationHandler = new URLActionDataValidationResponseHandler();
validationHandler.validate(validationMatchesMalicious, result, action);
}
}