package org.kefirsf.bb.proc;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.kefirsf.bb.UrlCollection;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
/**
* Tests for invalid URLs
* @author kefir
*/
@RunWith(Parameterized.class)
public class ProcInvalidUrlTest extends AbstractProcUrlTest {
@Parameterized.Parameters(name = "{0}")
public static String[] urlCollection() {
return UrlCollection.INVALID;
}
@Parameterized.Parameter
public String url;
@Test
public void testParse() throws NestingException {
Context context = prepareContext();
Source source = context.getSource();
ProcUrl proc = new ProcUrl("a", false, false, false);
assertFalse(proc.parse(context, null));
source.setOffset(1);
assertFalse(proc.parse(context, null));
}
@Test
public void testParseTerminator() throws NestingException {
StringBuilder b = new StringBuilder();
b.append(PREFIX);
b.append(url);
b.append("suffix");
Source source = new Source(b);
Context context = new Context();
context.setSource(source);
PatternConstant terminator = new PatternConstant("suffix", false);
ProcUrl proc = new ProcUrl("a", false, false, false);
assertFalse(url, proc.parse(context, terminator));
source.setOffset(PREFIX.length());
assertFalse(url, proc.parse(context, terminator));
}
@Test
public void testIsNextIn() {
Context context = prepareContext();
Source source = context.getSource();
ProcUrl element = new ProcUrl("a", false, false, false);
assertFalse(url, element.isNextIn(context));
source.setOffset(PREFIX.length() - 1);
assertFalse(url, element.isNextIn(context));
source.setOffset(PREFIX.length());
assertFalse(url, element.isNextIn(context));
source.setOffset(source.length() - SUFFIX.length());
assertFalse(url, element.isNextIn(context));
}
@Test
public void testFindIn() {
Source source = prepareSource();
ProcUrl element = new ProcUrl("a", false, false, false);
assertEquals(url, -1, element.findIn(source));
source.setOffset(PREFIX.length() - 1);
assertEquals(url, -1, element.findIn(source));
source.setOffset(source.length() - SUFFIX.length());
assertEquals(url, -1, element.findIn(source));
}
@Override
protected String getValue() {
return url;
}
}