| /* |
| * 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(":://")); |
| } |
| } |