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.*; /** * Test ProcUrl for local URLs * * @author Vitalii Samolovskikh */ @RunWith(Parameterized.class) public class ProcLocalUrlTest extends AbstractProcUrlTest { @Parameterized.Parameters(name = "{0}") public static String[] urlCollection() { String[] urls = new String[UrlCollection.LOCAL.length + UrlCollection.VALID.length]; System.arraycopy(UrlCollection.LOCAL, 0, urls, 0, UrlCollection.LOCAL.length); System.arraycopy(UrlCollection.VALID, 0, urls, UrlCollection.LOCAL.length, UrlCollection.VALID.length); return urls; } private ProcUrl element = new ProcUrl("a", false, true, false); @Parameterized.Parameter public String url; @Test public void testParse() throws NestingException { Context context = prepareContext(); Source source = context.getSource(); assertFalse(element.parse(context, null)); source.setOffset(PREFIX.length() - 1); assertFalse(element.parse(context, null)); source.setOffset(PREFIX.length()); assertTrue(element.parse(context, null)); assertEquals(source.length() - SUFFIX.length(), source.getOffset()); source.setOffset(source.length() - SUFFIX.length()); assertFalse(element.parse(context, null)); } @Test public void testIsNextIn() { Context context = prepareContext(); Source source = context.getSource(); assertFalse(element.isNextIn(context)); source.setOffset(PREFIX.length() - 1); assertFalse(element.isNextIn(context)); source.setOffset(PREFIX.length()); assertTrue(element.isNextIn(context)); source.setOffset(source.length() - SUFFIX.length()); assertFalse(element.isNextIn(context)); } @Test public void testFindIn() { Source source = prepareSource(); assertEquals(url, PREFIX.length(), element.findIn(source)); source.setOffset(PREFIX.length()); assertEquals(url, PREFIX.length(), element.findIn(source)); source.setOffset(source.length() - SUFFIX.length()); assertEquals(url, -1, element.findIn(source)); } @Override protected String getValue() { return url; } }