| /* |
| * Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
| * for details. All rights reserved. Use of this source code is governed by a |
| * BSD-style license that can be found in the LICENSE file. |
| */ |
| /** |
| * @assertion Uri normalizePath() |
| * Returns a URI where the path has been normalized. |
| * |
| * A normalized path does not contain . segments or non-leading .. segments. |
| * Only a relative path with no scheme or authority may contain leading .. |
| * segments, a path that starts with / will also drop any leading .. segments. |
| * |
| * This uses the same normalization strategy as new Uri().resolve(this). |
| * |
| * Does not change any part of the URI except the path. |
| * |
| * The default implementation of Uri always normalizes paths, so calling this |
| * function has no effect. |
| * @description Check that calling of this function has no effect |
| * @author sgrekhov@unipro.ru |
| */ |
| import "../../../Utils/expect.dart"; |
| |
| main() { |
| var url = Uri.parse('scheme://user:pass@host/path/'); |
| Expect.equals(url, url.normalizePath()); |
| |
| url = Uri.parse('../path/'); |
| Expect.equals(url, url.normalizePath()); |
| |
| url = Uri.parse('../path/./../a/b.c/'); |
| Expect.equals(url, url.normalizePath()); |
| |
| url = Uri.parse('../path/./../a/b.c/ .. /'); |
| Expect.equals(url, url.normalizePath()); |
| } |