OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 library uriTest; | 5 library uriTest; |
6 | 6 |
7 import "package:expect/expect.dart"; | 7 import "package:expect/expect.dart"; |
8 import 'dart:convert'; | 8 import 'dart:convert'; |
9 | 9 |
10 testUri(String uriText, bool isAbsolute) { | 10 testUri(String uriText, bool isAbsolute) { |
(...skipping 747 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
758 void testRegression28359() { | 758 void testRegression28359() { |
759 var uri = new Uri(path: "//"); | 759 var uri = new Uri(path: "//"); |
760 // This is an invalid path for a URI reference with no authority | 760 // This is an invalid path for a URI reference with no authority |
761 // since it looks like an authority. | 761 // since it looks like an authority. |
762 // Normalized to have an authority. | 762 // Normalized to have an authority. |
763 Expect.equals("////", "$uri"); | 763 Expect.equals("////", "$uri"); |
764 Expect.equals("//", uri.path); | 764 Expect.equals("//", uri.path); |
765 Expect.isTrue(uri.hasAuthority, "$uri has authority"); | 765 Expect.isTrue(uri.hasAuthority, "$uri has authority"); |
766 | 766 |
767 uri = new Uri(path: "file:///wat"); | 767 uri = new Uri(path: "file:///wat"); |
768 // This is an invalid pat for a URI reference with no authority or scheme | 768 // This is an invalid path for a URI reference with no authority or scheme |
769 // since the path looks like it starts with a scheme. | 769 // since the path looks like it starts with a scheme. |
770 // Normalized by escaping the ":". | 770 // Normalized by escaping the ":". |
771 Expect.equals("file%3A///wat", uri.path); | 771 Expect.equals("file%3A///wat", uri.path); |
772 Expect.equals("file%3A///wat", "$uri"); | 772 Expect.equals("file%3A///wat", "$uri"); |
773 Expect.isFalse(uri.hasAuthority); | 773 Expect.isFalse(uri.hasAuthority); |
774 Expect.isFalse(uri.hasScheme); | 774 Expect.isFalse(uri.hasScheme); |
775 } | 775 } |
776 | 776 |
777 main() { | 777 main() { |
778 testUri("http:", true); | 778 testUri("http:", true); |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
828 Uri.parse("https://example.com/a/b/c").origin); | 828 Uri.parse("https://example.com/a/b/c").origin); |
829 Expect.stringEquals( | 829 Expect.stringEquals( |
830 "http://example.com:1234", | 830 "http://example.com:1234", |
831 Uri.parse("http://example.com:1234/a/b/c").origin); | 831 Uri.parse("http://example.com:1234/a/b/c").origin); |
832 Expect.stringEquals( | 832 Expect.stringEquals( |
833 "https://example.com:1234", | 833 "https://example.com:1234", |
834 Uri.parse("https://example.com:1234/a/b/c").origin); | 834 Uri.parse("https://example.com:1234/a/b/c").origin); |
835 Expect.throws( | 835 Expect.throws( |
836 () => Uri.parse("http:").origin, | 836 () => Uri.parse("http:").origin, |
837 (e) { return e is StateError; }, | 837 (e) { return e is StateError; }, |
838 "origin for uri with empty host should fail"); | 838 "origin for URI with empty host should fail"); |
839 Expect.throws( | 839 Expect.throws( |
840 () => new Uri( | 840 () => new Uri( |
841 scheme: "http", | 841 scheme: "http", |
842 userInfo: null, | 842 userInfo: null, |
843 host: "", | 843 host: "", |
844 port: 80, | 844 port: 80, |
845 path: "/a/b/c", | 845 path: "/a/b/c", |
846 query: "query", | 846 query: "query", |
847 fragment: "fragment").origin, | 847 fragment: "fragment").origin, |
848 (e) { return e is StateError; }, | 848 (e) { return e is StateError; }, |
849 "origin for uri with empty host should fail"); | 849 "origin for URI with empty host should fail"); |
850 Expect.throws( | 850 Expect.throws( |
851 () => new Uri( | 851 () => new Uri( |
852 scheme: null, | 852 scheme: null, |
853 userInfo: null, | 853 userInfo: null, |
854 host: "", | 854 host: "", |
855 port: 80, | 855 port: 80, |
856 path: "/a/b/c", | 856 path: "/a/b/c", |
857 query: "query", | 857 query: "query", |
858 fragment: "fragment").origin, | 858 fragment: "fragment").origin, |
859 (e) { return e is StateError; }, | 859 (e) { return e is StateError; }, |
860 "origin for uri with empty scheme should fail"); | 860 "origin for URI with empty scheme should fail"); |
861 Expect.throws( | 861 Expect.throws( |
862 () => new Uri( | 862 () => new Uri( |
863 scheme: "http", | 863 scheme: "http", |
864 userInfo: null, | 864 userInfo: null, |
865 host: null, | 865 host: null, |
866 port: 80, | 866 port: 80, |
867 path: "/a/b/c", | 867 path: "/a/b/c", |
868 query: "query", | 868 query: "query", |
869 fragment: "fragment").origin, | 869 fragment: "fragment").origin, |
870 (e) { return e is StateError; }, | 870 (e) { return e is StateError; }, |
871 "origin for uri with empty host should fail"); | 871 "origin for URI with empty host should fail"); |
872 Expect.throws( | 872 Expect.throws( |
873 () => Uri.parse("http://:80").origin, | 873 () => Uri.parse("http://:80").origin, |
874 (e) { return e is StateError; }, | 874 (e) { return e is StateError; }, |
875 "origin for uri with empty host should fail"); | 875 "origin for URI with empty host should fail"); |
876 Expect.throws( | 876 Expect.throws( |
877 () => Uri.parse("file://localhost/test.txt").origin, | 877 () => Uri.parse("file://localhost/test.txt").origin, |
878 (e) { return e is StateError; }, | 878 (e) { return e is StateError; }, |
879 "origin for non-http/https uri should fail"); | 879 "origin for non-http/https uri should fail"); |
880 | 880 |
881 // URI encode tests | 881 // URI encode tests |
882 // Create a string with code point 0x10000 encoded as a surrogate pair. | 882 // Create a string with code point 0x10000 encoded as a surrogate pair. |
883 var s = UTF8.decode([0xf0, 0x90, 0x80, 0x80]); | 883 var s = UTF8.decode([0xf0, 0x90, 0x80, 0x80]); |
884 | 884 |
885 Expect.stringEquals("\u{10000}", s); | 885 Expect.stringEquals("\u{10000}", s); |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
946 String dump(Uri uri) { | 946 String dump(Uri uri) { |
947 return "URI: $uri\n" | 947 return "URI: $uri\n" |
948 " Scheme: ${uri.scheme} #${uri.scheme.length}\n" | 948 " Scheme: ${uri.scheme} #${uri.scheme.length}\n" |
949 " User-info: ${uri.userInfo} #${uri.userInfo.length}\n" | 949 " User-info: ${uri.userInfo} #${uri.userInfo.length}\n" |
950 " Host: ${uri.host} #${uri.host.length}\n" | 950 " Host: ${uri.host} #${uri.host.length}\n" |
951 " Port: ${uri.port}\n" | 951 " Port: ${uri.port}\n" |
952 " Path: ${uri.path} #${uri.path.length}\n" | 952 " Path: ${uri.path} #${uri.path.length}\n" |
953 " Query: ${uri.query} #${uri.query.length}\n" | 953 " Query: ${uri.query} #${uri.query.length}\n" |
954 " Fragment: ${uri.fragment} #${uri.fragment.length}\n"; | 954 " Fragment: ${uri.fragment} #${uri.fragment.length}\n"; |
955 } | 955 } |
OLD | NEW |