blob: c984e2245e65464b935d74dea23564bb4ff94578 [file] [log] [blame]
/*
* Copyright (C) 2011 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package libcore.net.url;
import junit.framework.TestCase;
public final class UrlUtilsTest extends TestCase {
public void testCanonicalizePath() {
assertEquals("", UrlUtils.canonicalizePath("", true));
assertEquals("", UrlUtils.canonicalizePath(".", true));
assertEquals("", UrlUtils.canonicalizePath("..", true));
assertEquals("...", UrlUtils.canonicalizePath("...", true));
assertEquals("", UrlUtils.canonicalizePath("./", true));
assertEquals("", UrlUtils.canonicalizePath("../", true));
assertEquals("a", UrlUtils.canonicalizePath("../a", true));
assertEquals("a", UrlUtils.canonicalizePath("a", true));
assertEquals("a/", UrlUtils.canonicalizePath("a/", true));
assertEquals("a/", UrlUtils.canonicalizePath("a/.", true));
assertEquals("a/b", UrlUtils.canonicalizePath("a/./b", true));
assertEquals("", UrlUtils.canonicalizePath("a/..", true));
assertEquals("b", UrlUtils.canonicalizePath("a/../b", true));
assertEquals("a/.../b", UrlUtils.canonicalizePath("a/.../b", true));
assertEquals("a/b", UrlUtils.canonicalizePath("a/b", true));
assertEquals("a/b/", UrlUtils.canonicalizePath("a/b/.", true));
assertEquals("a/b/", UrlUtils.canonicalizePath("a/b/./", true));
assertEquals("a/b/c", UrlUtils.canonicalizePath("a/b/./c", true));
assertEquals("a/", UrlUtils.canonicalizePath("a/b/..", true));
assertEquals("a/", UrlUtils.canonicalizePath("a/b/../", true));
assertEquals("a//", UrlUtils.canonicalizePath("a/b/..//", true));
assertEquals("a/c", UrlUtils.canonicalizePath("a/b/../c", true));
assertEquals("a//c", UrlUtils.canonicalizePath("a/b/..//c", true));
assertEquals("c", UrlUtils.canonicalizePath("a/b/../../c", true));
assertEquals("/", UrlUtils.canonicalizePath("/", true));
assertEquals("//", UrlUtils.canonicalizePath("//", true));
assertEquals("/", UrlUtils.canonicalizePath("/.", true));
assertEquals("/", UrlUtils.canonicalizePath("/./", true));
assertEquals("", UrlUtils.canonicalizePath("/..", true));
assertEquals("c", UrlUtils.canonicalizePath("/../c", true));
assertEquals("/a/b/c", UrlUtils.canonicalizePath("/a/b/c", true));
}
public void testGetProtocolPrefix() {
assertEquals("http", UrlUtils.getSchemePrefix("http:"));
assertEquals("http", UrlUtils.getSchemePrefix("HTTP:"));
assertEquals("http", UrlUtils.getSchemePrefix("http:x"));
assertEquals("a", UrlUtils.getSchemePrefix("a:"));
assertEquals("z", UrlUtils.getSchemePrefix("z:"));
assertEquals("a", UrlUtils.getSchemePrefix("A:"));
assertEquals("z", UrlUtils.getSchemePrefix("Z:"));
assertEquals("h0", UrlUtils.getSchemePrefix("h0:"));
assertEquals("h5", UrlUtils.getSchemePrefix("h5:"));
assertEquals("h9", UrlUtils.getSchemePrefix("h9:"));
assertEquals("h+", UrlUtils.getSchemePrefix("h+:"));
assertEquals("h-", UrlUtils.getSchemePrefix("h-:"));
assertEquals("h.", UrlUtils.getSchemePrefix("h.:"));
}
public void testGetProtocolPrefixInvalidScheme() {
assertNull(UrlUtils.getSchemePrefix(""));
assertNull(UrlUtils.getSchemePrefix("http"));
assertNull(UrlUtils.getSchemePrefix(":"));
assertNull(UrlUtils.getSchemePrefix("+:"));
assertNull(UrlUtils.getSchemePrefix("-:"));
assertNull(UrlUtils.getSchemePrefix(".:"));
assertNull(UrlUtils.getSchemePrefix("0:"));
assertNull(UrlUtils.getSchemePrefix("5:"));
assertNull(UrlUtils.getSchemePrefix("9:"));
assertNull(UrlUtils.getSchemePrefix("http//"));
assertNull(UrlUtils.getSchemePrefix("http/:"));
assertNull(UrlUtils.getSchemePrefix("ht tp://"));
assertNull(UrlUtils.getSchemePrefix(" http://"));
assertNull(UrlUtils.getSchemePrefix("http ://"));
assertNull(UrlUtils.getSchemePrefix(":://"));
}
}