package au.gov.ga.earthsci.worldwind.common.util;
import static org.junit.Assert.*;
import java.io.File;
import java.net.URL;
import org.junit.Test;
/**
* Unit tests for the {@link URLUtil} class
*/
public class URLUtilTest
{
// stripQuery()
@Test
public void testStripQueryWithNull()
{
URL url = null;
URL result = URLUtil.stripQuery(url);
assertNull(result);
}
@Test
public void testStripQueryWithNoQuery() throws Exception
{
URL url = new URL("http://www.some.url.com/without/query.html");
URL result = URLUtil.stripQuery(url);
assertNotNull(result);
assertEquals("http://www.some.url.com/without/query.html", result.toExternalForm());
}
@Test
public void testStripQueryWithQuery() throws Exception
{
URL url = new URL("http://www.some.url.com/with/query.html?param1=value1¶m2=value2");
URL result = URLUtil.stripQuery(url);
assertNotNull(result);
assertEquals("http://www.some.url.com/with/query.html", result.toExternalForm());
}
// urlToFile()
@Test
public void testUrlToFileWithNull()
{
File result = URLUtil.urlToFile(null);
assertEquals(null, result);
}
@Test
public void testUrlToFileWithFileUrl() throws Exception
{
File result = URLUtil.urlToFile(new URL("file:///c:/this/is/a/file.extension"));
assertEquals("c:\\this\\is\\a\\file.extension", result.getAbsolutePath().toLowerCase());
}
@Test
public void testUrlToFileWithHttpUrl() throws Exception
{
File result = URLUtil.urlToFile(new URL("http://this/is/not/a/file.html"));
assertEquals(null, result);
}
// isForResourceWithExtension()
@Test
public void testIsForResourceWithExtensionWithNullUrl() throws Exception
{
assertFalse(URLUtil.isForResourceWithExtension(null, "zip"));
}
@Test
public void testIsForResourceWithExtensionWithNullExtension() throws Exception
{
assertFalse(URLUtil.isForResourceWithExtension(new URL("http://somewhere.com/file.zip"), null));
}
@Test
public void testIsForResourceWithExtensionWithBlankExtension() throws Exception
{
assertFalse(URLUtil.isForResourceWithExtension(new URL("http://somewhere.com/file.zip"), " "));
}
@Test
public void testIsForResourceWithExtensionWithMatchingExtension() throws Exception
{
assertTrue(URLUtil.isForResourceWithExtension(new URL("http://somewhere.com/file.zip"), "zip"));
}
@Test
public void testIsForResourceWithExtensionWithNonMatchingExtension() throws Exception
{
assertFalse(URLUtil.isForResourceWithExtension(new URL("http://somewhere.com/file.zip"), "zipp"));
}
@Test
public void testIsForResourceWithExtensionWithNonQueryParamsAndMatchingExtension() throws Exception
{
assertTrue(URLUtil
.isForResourceWithExtension(new URL("http://somewhere.com/file.zip?param1=something&"), "zip"));
}
// fromObject()
@Test
public void testFromObjectWithNull() throws Exception
{
assertEquals(null, URLUtil.fromObject(null));
}
@Test
public void testFromObjectWithValidURLString() throws Exception
{
assertEquals(new URL("http://somewhere.com/something.html"),
URLUtil.fromObject("http://somewhere.com/something.html"));
}
@Test
public void testFromObjectWithInvalidURLString() throws Exception
{
assertEquals(null, URLUtil.fromObject("httpp://somewhere.com/something.html"));
}
@Test
public void testFromObjectWithURL() throws Exception
{
assertEquals(new URL("http://somewhere.com/something.html"),
URLUtil.fromObject(new URL("http://somewhere.com/something.html")));
}
@Test
public void testFromObjectWithFile() throws Exception
{
assertEquals(new URL("file:/C:/mypath/myfile.txt"), URLUtil.fromObject(new File("C:/mypath/myfile.txt")));
}
@Test
public void testFromObjectWithUnsupportedObject() throws Exception
{
assertEquals(null, URLUtil.fromObject(new Integer(2)));
}
}