| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 import "dart:collection"; | 5 import "dart:collection"; |
| 6 | 6 |
| 7 import "package:expect/expect.dart"; | 7 import "package:expect/expect.dart"; |
| 8 | 8 |
| 9 void testInvalidArguments() { | 9 void testInvalidArguments() {} |
| 10 } | |
| 11 | 10 |
| 12 void testPath() { | 11 void testPath() { |
| 13 void test(s, uri) { | 12 void test(s, uri) { |
| 14 Expect.equals(s, uri.toString()); | 13 Expect.equals(s, uri.toString()); |
| 15 Expect.equals(uri, Uri.parse(s)); | 14 Expect.equals(uri, Uri.parse(s)); |
| 16 } | 15 } |
| 17 | 16 |
| 18 test("http:", new Uri(scheme: "http")); | 17 test("http:", new Uri(scheme: "http")); |
| 19 test("http://host/xxx", new Uri(scheme: "http", host: "host", path: "xxx")); | 18 test("http://host/xxx", new Uri(scheme: "http", host: "host", path: "xxx")); |
| 20 test("http://host/xxx", new Uri(scheme: "http", host: "host", path: "/xxx")); | 19 test("http://host/xxx", new Uri(scheme: "http", host: "host", path: "/xxx")); |
| 21 test("http://host/xxx", | 20 test("http://host/xxx", |
| 22 new Uri(scheme: "http", host: "host", pathSegments: ["xxx"])); | 21 new Uri(scheme: "http", host: "host", pathSegments: ["xxx"])); |
| 23 test("http://host/xxx/yyy", | 22 test("http://host/xxx/yyy", |
| 24 new Uri(scheme: "http", host: "host", path: "xxx/yyy")); | 23 new Uri(scheme: "http", host: "host", path: "xxx/yyy")); |
| 25 test("http://host/xxx/yyy", | 24 test("http://host/xxx/yyy", |
| 26 new Uri(scheme: "http", host: "host", path: "/xxx/yyy")); | 25 new Uri(scheme: "http", host: "host", path: "/xxx/yyy")); |
| 27 test("http://host/xxx/yyy", | 26 test("http://host/xxx/yyy", |
| 28 new Uri(scheme: "http", host: "host", pathSegments: ["xxx", "yyy"])); | 27 new Uri(scheme: "http", host: "host", pathSegments: ["xxx", "yyy"])); |
| 29 | 28 |
| 30 test("urn:", new Uri(scheme: "urn")); | 29 test("urn:", new Uri(scheme: "urn")); |
| 31 test("urn:xxx", new Uri(scheme: "urn", path: "xxx")); | 30 test("urn:xxx", new Uri(scheme: "urn", path: "xxx")); |
| 32 test("urn:xxx:yyy", new Uri(scheme: "urn", path: "xxx:yyy")); | 31 test("urn:xxx:yyy", new Uri(scheme: "urn", path: "xxx:yyy")); |
| 33 | 32 |
| 34 Expect.equals(3, new Uri(path: "xxx/yyy/zzz").pathSegments.length); | 33 Expect.equals(3, new Uri(path: "xxx/yyy/zzz").pathSegments.length); |
| 35 Expect.equals(3, new Uri(path: "/xxx/yyy/zzz").pathSegments.length); | 34 Expect.equals(3, new Uri(path: "/xxx/yyy/zzz").pathSegments.length); |
| 36 Expect.equals(3, Uri.parse("http://host/xxx/yyy/zzz").pathSegments.length); | 35 Expect.equals(3, Uri.parse("http://host/xxx/yyy/zzz").pathSegments.length); |
| 37 Expect.equals(3, Uri.parse("file:///xxx/yyy/zzz").pathSegments.length); | 36 Expect.equals(3, Uri.parse("file:///xxx/yyy/zzz").pathSegments.length); |
| 38 } | 37 } |
| (...skipping 21 matching lines...) Expand all Loading... |
| 60 test("%C3%B8/%C3%A5", ["ø", "å"]); | 59 test("%C3%B8/%C3%A5", ["ø", "å"]); |
| 61 test("%C8%A4/%E5%B9%B3%E4%BB%AE%E5%90%8D", ["Ȥ", "平仮名"]); | 60 test("%C8%A4/%E5%B9%B3%E4%BB%AE%E5%90%8D", ["Ȥ", "平仮名"]); |
| 62 test("A/b", ["A", "b"]); | 61 test("A/b", ["A", "b"]); |
| 63 test("A/%25", ["A", "%"]); | 62 test("A/%25", ["A", "%"]); |
| 64 test("%2F/a%2Fb", ["/", "a/b"]); | 63 test("%2F/a%2Fb", ["/", "a/b"]); |
| 65 test("name;v=1.1", ["name;v=1.1"]); | 64 test("name;v=1.1", ["name;v=1.1"]); |
| 66 test("name,v=1.1", ["name,v=1.1"]); | 65 test("name,v=1.1", ["name,v=1.1"]); |
| 67 test("name;v=1.1/name,v=1.1", ["name;v=1.1", "name,v=1.1"]); | 66 test("name;v=1.1/name,v=1.1", ["name;v=1.1", "name,v=1.1"]); |
| 68 | 67 |
| 69 var unreserved = "-._~0123456789" | 68 var unreserved = "-._~0123456789" |
| 70 "ABCDEFGHIJKLMNOPQRSTUVWXYZ" | 69 "ABCDEFGHIJKLMNOPQRSTUVWXYZ" |
| 71 "abcdefghijklmnopqrstuvwxyz"; | 70 "abcdefghijklmnopqrstuvwxyz"; |
| 72 var subDelimiters = r"!$&'()*+,;="; | 71 var subDelimiters = r"!$&'()*+,;="; |
| 73 var additionalPathChars = ":@"; | 72 var additionalPathChars = ":@"; |
| 74 var pchar = unreserved + subDelimiters + additionalPathChars; | 73 var pchar = unreserved + subDelimiters + additionalPathChars; |
| 75 | 74 |
| 76 var encoded = new StringBuffer(); | 75 var encoded = new StringBuffer(); |
| 77 var unencoded = new StringBuffer(); | 76 var unencoded = new StringBuffer(); |
| 78 for (int i = 32; i < 128; i++) { | 77 for (int i = 32; i < 128; i++) { |
| 79 if (pchar.indexOf(new String.fromCharCode(i)) != -1) { | 78 if (pchar.indexOf(new String.fromCharCode(i)) != -1) { |
| 80 encoded.writeCharCode(i); | 79 encoded.writeCharCode(i); |
| 81 } else { | 80 } else { |
| (...skipping 10 matching lines...) Expand all Loading... |
| 92 Uri uri; | 91 Uri uri; |
| 93 List pathSegments = ["xxx", "yyy", "zzz"]; | 92 List pathSegments = ["xxx", "yyy", "zzz"]; |
| 94 | 93 |
| 95 uri = new Uri(pathSegments: pathSegments); | 94 uri = new Uri(pathSegments: pathSegments); |
| 96 Expect.equals(3, uri.pathSegments.length); | 95 Expect.equals(3, uri.pathSegments.length); |
| 97 uri = new Uri(pathSegments: pathSegments.where((_) => true)); | 96 uri = new Uri(pathSegments: pathSegments.where((_) => true)); |
| 98 Expect.equals(3, uri.pathSegments.length); | 97 Expect.equals(3, uri.pathSegments.length); |
| 99 uri = new Uri(pathSegments: new DoubleLinkedQueue.from(pathSegments)); | 98 uri = new Uri(pathSegments: new DoubleLinkedQueue.from(pathSegments)); |
| 100 Expect.equals(3, uri.pathSegments.length); | 99 Expect.equals(3, uri.pathSegments.length); |
| 101 | 100 |
| 102 uri = new Uri(scheme: "http", | 101 uri = new Uri(scheme: "http", host: "host", pathSegments: pathSegments); |
| 103 host: "host", | |
| 104 pathSegments: pathSegments); | |
| 105 Expect.equals(3, uri.pathSegments.length); | 102 Expect.equals(3, uri.pathSegments.length); |
| 106 uri = new Uri(scheme: "http", | 103 uri = new Uri( |
| 107 host: "host", | 104 scheme: "http", |
| 108 pathSegments: pathSegments.where((_) => true)); | 105 host: "host", |
| 106 pathSegments: pathSegments.where((_) => true)); |
| 109 Expect.equals(3, uri.pathSegments.length); | 107 Expect.equals(3, uri.pathSegments.length); |
| 110 uri = new Uri(scheme: "http", | 108 uri = new Uri( |
| 111 host: "host", | 109 scheme: "http", |
| 112 pathSegments: new DoubleLinkedQueue.from(pathSegments)); | 110 host: "host", |
| 111 pathSegments: new DoubleLinkedQueue.from(pathSegments)); |
| 113 Expect.equals(3, uri.pathSegments.length); | 112 Expect.equals(3, uri.pathSegments.length); |
| 114 | 113 |
| 115 uri = new Uri(scheme: "file", | 114 uri = new Uri(scheme: "file", pathSegments: pathSegments); |
| 116 pathSegments: pathSegments); | |
| 117 Expect.equals(3, uri.pathSegments.length); | 115 Expect.equals(3, uri.pathSegments.length); |
| 118 uri = new Uri(scheme: "file", | 116 uri = new Uri(scheme: "file", pathSegments: pathSegments.where((_) => true)); |
| 119 pathSegments: pathSegments.where((_) => true)); | |
| 120 Expect.equals(3, uri.pathSegments.length); | 117 Expect.equals(3, uri.pathSegments.length); |
| 121 uri = new Uri(scheme: "file", | 118 uri = new Uri( |
| 122 pathSegments: new DoubleLinkedQueue.from(pathSegments)); | 119 scheme: "file", pathSegments: new DoubleLinkedQueue.from(pathSegments)); |
| 123 Expect.equals(3, uri.pathSegments.length); | 120 Expect.equals(3, uri.pathSegments.length); |
| 124 } | 121 } |
| 125 | 122 |
| 126 void testPathCompare() { | 123 void testPathCompare() { |
| 127 void test(Uri uri1, Uri uri2) { | 124 void test(Uri uri1, Uri uri2) { |
| 128 Expect.equals(uri1, uri2); | 125 Expect.equals(uri1, uri2); |
| 129 Expect.equals(uri2, uri1); | 126 Expect.equals(uri2, uri1); |
| 130 } | 127 } |
| 131 | 128 |
| 132 test(new Uri(scheme: "http", host: "host", path: "xxx"), | 129 test(new Uri(scheme: "http", host: "host", path: "xxx"), |
| 133 new Uri(scheme: "http", host: "host", path: "/xxx")); | 130 new Uri(scheme: "http", host: "host", path: "/xxx")); |
| 134 test(new Uri(scheme: "http", host: "host", pathSegments: ["xxx"]), | 131 test(new Uri(scheme: "http", host: "host", pathSegments: ["xxx"]), |
| 135 new Uri(scheme: "http", host: "host", path: "/xxx")); | 132 new Uri(scheme: "http", host: "host", path: "/xxx")); |
| 136 test(new Uri(scheme: "http", host: "host", pathSegments: ["xxx"]), | 133 test(new Uri(scheme: "http", host: "host", pathSegments: ["xxx"]), |
| 137 new Uri(scheme: "http", host: "host", path: "xxx")); | 134 new Uri(scheme: "http", host: "host", path: "xxx")); |
| 138 test(new Uri(scheme: "file", path: "xxx"), | 135 test(new Uri(scheme: "file", path: "xxx"), |
| 139 new Uri(scheme: "file", path: "/xxx")); | 136 new Uri(scheme: "file", path: "/xxx")); |
| 140 test(new Uri(scheme: "file", pathSegments: ["xxx"]), | 137 test(new Uri(scheme: "file", pathSegments: ["xxx"]), |
| 141 new Uri(scheme: "file", path: "/xxx")); | 138 new Uri(scheme: "file", path: "/xxx")); |
| 142 test(new Uri(scheme: "file", pathSegments: ["xxx"]), | 139 test(new Uri(scheme: "file", pathSegments: ["xxx"]), |
| 143 new Uri(scheme: "file", path: "xxx")); | 140 new Uri(scheme: "file", path: "xxx")); |
| 144 } | 141 } |
| 145 | 142 |
| 146 testPathSegmentsUnmodifiableList() { | 143 testPathSegmentsUnmodifiableList() { |
| 147 void test(list) { | 144 void test(list) { |
| 148 bool isUnsupported(e) => e is UnsupportedError; | 145 bool isUnsupported(e) => e is UnsupportedError; |
| 149 | 146 |
| 150 Expect.equals("a", list[0]); | 147 Expect.equals("a", list[0]); |
| 151 Expect.throws(() => list[0] = "c", isUnsupported); | 148 Expect.throws(() => list[0] = "c", isUnsupported); |
| 152 Expect.equals(2, list.length); | 149 Expect.equals(2, list.length); |
| 153 Expect.throws(() => list.length = 1, isUnsupported); | 150 Expect.throws(() => list.length = 1, isUnsupported); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 182 test(new Uri(pathSegments: ["a", "b"]).pathSegments); | 179 test(new Uri(pathSegments: ["a", "b"]).pathSegments); |
| 183 } | 180 } |
| 184 | 181 |
| 185 main() { | 182 main() { |
| 186 testInvalidArguments(); | 183 testInvalidArguments(); |
| 187 testPath(); | 184 testPath(); |
| 188 testPathSegments(); | 185 testPathSegments(); |
| 189 testPathCompare(); | 186 testPathCompare(); |
| 190 testPathSegmentsUnmodifiableList(); | 187 testPathSegmentsUnmodifiableList(); |
| 191 } | 188 } |
| OLD | NEW |