blob: 4b042e033b4161ef9ce1abcfd85ecba5f400f524 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
* compeople AG (Stefan Liebig) - Test fix for bug 121201 - Poor performance behind proxy/firewall
*******************************************************************************/
package org.eclipse.equinox.p2.tests.core;
import java.io.File;
import java.net.*;
import org.eclipse.equinox.internal.p2.core.helpers.URLUtil;
import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
/**
* Tests for the {@link URLUtil} class.
*/
public class URLUtilTest extends AbstractProvisioningTest {
private static final String[] testPaths = new String[] {"abc", "with spaces", "with%percent"};
/**
* Tests for {@link URLUtil#toFile(URL)}.
*/
public void testToFile() {
File base = new File(System.getProperty("java.io.tmpdir"));
for (int i = 0; i < testPaths.length; i++) {
File original = new File(base, testPaths[i]);
URI uri = original.toURI();
try {
URL encoded = uri.toURL();
File result = URLUtil.toFile(encoded);
assertEquals("1." + i, original, result);
} catch (MalformedURLException e) {
fail("1.99", e);
}
}
}
/**
* Tests for {@link URLUtil#toFile(URL)}.
*/
public void testToFileRelative() throws URISyntaxException {
for (int i = 0; i < testPaths.length; i++) {
File original = new File(testPaths[i]);
URI uri = new URI(null, testPaths[i], null);
try {
URL encoded = new URL("file:" + uri.getRawPath());
File result = URLUtil.toFile(encoded);
assertEquals("1." + i, original, result);
} catch (MalformedURLException e) {
fail("1.99", e);
}
}
}
/**
* Tests for {@link URLUtil#toURI(URL)}.
*/
public void testToFileFromLocalURL() throws Exception {
File original = new File(System.getProperty("java.io.tmpdir"), "repo");
//this URL is technically not correct because it is not hierarchical, but ensure URLUtil is lenient.
URL url = new URL("file:" + original.toString());
File result = URLUtil.toFile(url);
assertEquals("1.0", original, result);
}
public void testToFileFromUNC() throws Exception {
File original = new File("//a/b c");
// this tests the two slash UNC path that URL creates
URL url = new URL("file:" + original.toString());
File result = URLUtil.toFile(url);
assertEquals("1.0", original, result);
// this tests the four slash UNC path that URI creates
url = original.toURI().toURL();
result = URLUtil.toFile(url);
assertEquals("1.1", original, result);
}
}