blob: c984e2245e65464b935d74dea23564bb4ff94578 [file] [log] [blame]
The Android Open Source Projectb5de22c2012-04-01 00:00:00 -07001/*
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
17package libcore.net.url;
18
19import junit.framework.TestCase;
20
21public 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}