@NonNull @Override public String process(@NonNull String destination) { String out; final Uri uri = Uri.parse(destination); if (TextUtils.isEmpty(uri.getScheme())) { out = processor.process(destination); } else { out = destination; } return out; } }
public UrlProcessorRelativeToAbsolute(@NonNull String base) { this.base = obtain(base); }
@Test public void malformed_base_do_not_process() { final UrlProcessorRelativeToAbsolute processor = new UrlProcessorRelativeToAbsolute("!@#$%^&*("); final String destination = "../hey.there.html"; assertEquals(destination, processor.process(destination)); }
urlProcessor = new UrlProcessorInitialReadme(); } else { urlProcessor = new UrlProcessorRelativeToAbsolute(uri.toString());
@Test public void with_query_arguments() { final UrlProcessorRelativeToAbsolute processor = new UrlProcessorRelativeToAbsolute("http://ro.ot/first/"); final String url = "../index.php?ROOT=1"; assertEquals( "http://ro.ot/index.php?ROOT=1", processor.process(url) ); } }
@Test public void access_same_directory() { final UrlProcessorRelativeToAbsolute processor = new UrlProcessorRelativeToAbsolute("https://ro.ot/hello/"); final String url = "./.htaccess"; assertEquals("https://ro.ot/hello/.htaccess", processor.process(url)); }
@NonNull @Override public String process(@NonNull String destination) { final String out; final Uri uri = Uri.parse(destination); if (TextUtils.isEmpty(uri.getScheme())) { out = assetsProcessor.process(destination).replace(MOCK, BASE); } else { if (processor != null) { out = processor.process(destination); } else { out = destination; } } return out; } }
@Test public void asset_directory_up() { final UrlProcessorRelativeToAbsolute processor = new UrlProcessorRelativeToAbsolute("http://ro.ot/first/second/"); final String url = "../cat.JPG"; assertEquals("http://ro.ot/first/cat.JPG", processor.process(url)); }
@Test public void access_root() { final UrlProcessorRelativeToAbsolute processor = new UrlProcessorRelativeToAbsolute("https://ro.ot/hello/"); final String url = "/index.html"; assertEquals("https://ro.ot/index.html", processor.process(url)); }
@Test public void change_directory_inside_destination() { final UrlProcessorRelativeToAbsolute processor = new UrlProcessorRelativeToAbsolute("http://ro.ot/first/"); final String url = "../first/../second/./thi.rd"; assertEquals( "http://ro.ot/second/thi.rd", processor.process(url) ); }