The Android Open Source Project | b5de22c | 2012-04-01 00:00:00 -0700 | [diff] [blame] | 1 | /* |
| 2 | * Copyright (C) 2011 The Android Open Source Project |
| 3 | * |
| 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | * you may not use this file except in compliance with the License. |
| 6 | * You may obtain a copy of the License at |
| 7 | * |
| 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
| 9 | * |
| 10 | * Unless required by applicable law or agreed to in writing, software |
| 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
| 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 13 | * See the License for the specific language governing permissions and |
| 14 | * limitations under the License. |
| 15 | */ |
| 16 | |
| 17 | package libcore.net.url; |
| 18 | |
| 19 | import junit.framework.TestCase; |
| 20 | |
| 21 | public final class UrlUtilsTest extends TestCase { |
| 22 | public void testCanonicalizePath() { |
| 23 | assertEquals("", UrlUtils.canonicalizePath("", true)); |
| 24 | assertEquals("", UrlUtils.canonicalizePath(".", true)); |
| 25 | assertEquals("", UrlUtils.canonicalizePath("..", true)); |
| 26 | assertEquals("...", UrlUtils.canonicalizePath("...", true)); |
| 27 | assertEquals("", UrlUtils.canonicalizePath("./", true)); |
| 28 | assertEquals("", UrlUtils.canonicalizePath("../", true)); |
| 29 | assertEquals("a", UrlUtils.canonicalizePath("../a", true)); |
| 30 | assertEquals("a", UrlUtils.canonicalizePath("a", true)); |
| 31 | assertEquals("a/", UrlUtils.canonicalizePath("a/", true)); |
| 32 | assertEquals("a/", UrlUtils.canonicalizePath("a/.", true)); |
| 33 | assertEquals("a/b", UrlUtils.canonicalizePath("a/./b", true)); |
| 34 | assertEquals("", UrlUtils.canonicalizePath("a/..", true)); |
| 35 | assertEquals("b", UrlUtils.canonicalizePath("a/../b", true)); |
| 36 | assertEquals("a/.../b", UrlUtils.canonicalizePath("a/.../b", true)); |
| 37 | assertEquals("a/b", UrlUtils.canonicalizePath("a/b", true)); |
| 38 | assertEquals("a/b/", UrlUtils.canonicalizePath("a/b/.", true)); |
| 39 | assertEquals("a/b/", UrlUtils.canonicalizePath("a/b/./", true)); |
| 40 | assertEquals("a/b/c", UrlUtils.canonicalizePath("a/b/./c", true)); |
| 41 | assertEquals("a/", UrlUtils.canonicalizePath("a/b/..", true)); |
| 42 | assertEquals("a/", UrlUtils.canonicalizePath("a/b/../", true)); |
| 43 | assertEquals("a//", UrlUtils.canonicalizePath("a/b/..//", true)); |
| 44 | assertEquals("a/c", UrlUtils.canonicalizePath("a/b/../c", true)); |
| 45 | assertEquals("a//c", UrlUtils.canonicalizePath("a/b/..//c", true)); |
| 46 | assertEquals("c", UrlUtils.canonicalizePath("a/b/../../c", true)); |
| 47 | assertEquals("/", UrlUtils.canonicalizePath("/", true)); |
| 48 | assertEquals("//", UrlUtils.canonicalizePath("//", true)); |
| 49 | assertEquals("/", UrlUtils.canonicalizePath("/.", true)); |
| 50 | assertEquals("/", UrlUtils.canonicalizePath("/./", true)); |
| 51 | assertEquals("", UrlUtils.canonicalizePath("/..", true)); |
| 52 | assertEquals("c", UrlUtils.canonicalizePath("/../c", true)); |
| 53 | assertEquals("/a/b/c", UrlUtils.canonicalizePath("/a/b/c", true)); |
| 54 | } |
| 55 | |
| 56 | public void testGetProtocolPrefix() { |
| 57 | assertEquals("http", UrlUtils.getSchemePrefix("http:")); |
| 58 | assertEquals("http", UrlUtils.getSchemePrefix("HTTP:")); |
| 59 | assertEquals("http", UrlUtils.getSchemePrefix("http:x")); |
| 60 | assertEquals("a", UrlUtils.getSchemePrefix("a:")); |
| 61 | assertEquals("z", UrlUtils.getSchemePrefix("z:")); |
| 62 | assertEquals("a", UrlUtils.getSchemePrefix("A:")); |
| 63 | assertEquals("z", UrlUtils.getSchemePrefix("Z:")); |
| 64 | assertEquals("h0", UrlUtils.getSchemePrefix("h0:")); |
| 65 | assertEquals("h5", UrlUtils.getSchemePrefix("h5:")); |
| 66 | assertEquals("h9", UrlUtils.getSchemePrefix("h9:")); |
| 67 | assertEquals("h+", UrlUtils.getSchemePrefix("h+:")); |
| 68 | assertEquals("h-", UrlUtils.getSchemePrefix("h-:")); |
| 69 | assertEquals("h.", UrlUtils.getSchemePrefix("h.:")); |
| 70 | } |
| 71 | |
| 72 | public void testGetProtocolPrefixInvalidScheme() { |
| 73 | assertNull(UrlUtils.getSchemePrefix("")); |
| 74 | assertNull(UrlUtils.getSchemePrefix("http")); |
| 75 | assertNull(UrlUtils.getSchemePrefix(":")); |
| 76 | assertNull(UrlUtils.getSchemePrefix("+:")); |
| 77 | assertNull(UrlUtils.getSchemePrefix("-:")); |
| 78 | assertNull(UrlUtils.getSchemePrefix(".:")); |
| 79 | assertNull(UrlUtils.getSchemePrefix("0:")); |
| 80 | assertNull(UrlUtils.getSchemePrefix("5:")); |
| 81 | assertNull(UrlUtils.getSchemePrefix("9:")); |
| 82 | assertNull(UrlUtils.getSchemePrefix("http//")); |
| 83 | assertNull(UrlUtils.getSchemePrefix("http/:")); |
| 84 | assertNull(UrlUtils.getSchemePrefix("ht tp://")); |
| 85 | assertNull(UrlUtils.getSchemePrefix(" http://")); |
| 86 | assertNull(UrlUtils.getSchemePrefix("http ://")); |
| 87 | assertNull(UrlUtils.getSchemePrefix(":://")); |
| 88 | } |
| 89 | } |