OLD | NEW |
| (Empty) |
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 | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 | |
5 #source("../../../../runtime/bin/input_stream.dart"); | |
6 #source("../../../../runtime/bin/output_stream.dart"); | |
7 #source("../../../../runtime/bin/chunked_stream.dart"); | |
8 #source("../../../../runtime/bin/string_stream.dart"); | |
9 #source("../../../../runtime/bin/stream_util.dart"); | |
10 #source("../../../../runtime/bin/http.dart"); | |
11 #source("../../../../runtime/bin/http_impl.dart"); | |
12 #source("../../../../runtime/bin/http_parser.dart"); | |
13 #source("../../../../runtime/bin/http_utils.dart"); | |
14 | |
15 void testMultiValue() { | |
16 _HttpHeaders headers = new _HttpHeaders(); | |
17 Expect.isNull(headers[HttpHeaders.PRAGMA]); | |
18 headers.add(HttpHeaders.PRAGMA, "pragma1"); | |
19 Expect.equals(1, headers[HttpHeaders.PRAGMA].length); | |
20 Expect.equals(1, headers["pragma"].length); | |
21 Expect.equals(1, headers["Pragma"].length); | |
22 Expect.equals(1, headers["PRAGMA"].length); | |
23 Expect.equals("pragma1", headers.value(HttpHeaders.PRAGMA)); | |
24 | |
25 headers.add(HttpHeaders.PRAGMA, "pragma2"); | |
26 Expect.equals(2, headers[HttpHeaders.PRAGMA].length); | |
27 Expect.throws(() => headers.value(HttpHeaders.PRAGMA), | |
28 (e) => e is HttpException); | |
29 | |
30 headers.add(HttpHeaders.PRAGMA, ["pragma3", "pragma4"]); | |
31 Expect.listEquals(["pragma1", "pragma2", "pragma3", "pragma4"], | |
32 headers[HttpHeaders.PRAGMA]); | |
33 | |
34 headers.remove(HttpHeaders.PRAGMA, "pragma3"); | |
35 Expect.equals(3, headers[HttpHeaders.PRAGMA].length); | |
36 Expect.listEquals(["pragma1", "pragma2", "pragma4"], | |
37 headers[HttpHeaders.PRAGMA]); | |
38 | |
39 headers.remove(HttpHeaders.PRAGMA, "pragma3"); | |
40 Expect.equals(3, headers[HttpHeaders.PRAGMA].length); | |
41 | |
42 headers.set(HttpHeaders.PRAGMA, "pragma5"); | |
43 Expect.equals(1, headers[HttpHeaders.PRAGMA].length); | |
44 | |
45 headers.set(HttpHeaders.PRAGMA, ["pragma6", "pragma7"]); | |
46 Expect.equals(2, headers[HttpHeaders.PRAGMA].length); | |
47 | |
48 headers.removeAll(HttpHeaders.PRAGMA); | |
49 Expect.isNull(headers[HttpHeaders.PRAGMA]); | |
50 } | |
51 | |
52 void testDate() { | |
53 Date date1 = new Date.withTimeZone( | |
54 1999, Date.JUN, 11, 18, 46, 53, 0, new TimeZone.utc()); | |
55 String httpDate1 = "Fri, 11 Jun 1999 18:46:53 GMT"; | |
56 Date date2 = new Date.withTimeZone( | |
57 2000, Date.AUG, 16, 12, 34, 56, 0, new TimeZone.utc()); | |
58 String httpDate2 = "Wed, 16 Aug 2000 12:34:56 GMT"; | |
59 | |
60 _HttpHeaders headers = new _HttpHeaders(); | |
61 Expect.isNull(headers.date); | |
62 headers.date = date1; | |
63 Expect.equals(date1, headers.date); | |
64 Expect.equals(httpDate1, headers.value(HttpHeaders.DATE)); | |
65 Expect.equals(1, headers[HttpHeaders.DATE].length); | |
66 headers.add(HttpHeaders.DATE, httpDate2); | |
67 Expect.equals(1, headers[HttpHeaders.DATE].length); | |
68 Expect.equals(date2, headers.date); | |
69 Expect.equals(httpDate2, headers.value(HttpHeaders.DATE)); | |
70 headers.set(HttpHeaders.DATE, httpDate1); | |
71 Expect.equals(1, headers[HttpHeaders.DATE].length); | |
72 Expect.equals(date1, headers.date); | |
73 Expect.equals(httpDate1, headers.value(HttpHeaders.DATE)); | |
74 | |
75 headers.set(HttpHeaders.DATE, "xxx"); | |
76 Expect.equals("xxx", headers.value(HttpHeaders.DATE)); | |
77 Expect.equals(null, headers.date); | |
78 } | |
79 | |
80 void testExpires() { | |
81 Date date1 = new Date.withTimeZone( | |
82 1999, Date.JUN, 11, 18, 46, 53, 0, new TimeZone.utc()); | |
83 String httpDate1 = "Fri, 11 Jun 1999 18:46:53 GMT"; | |
84 Date date2 = new Date.withTimeZone( | |
85 2000, Date.AUG, 16, 12, 34, 56, 0, new TimeZone.utc()); | |
86 String httpDate2 = "Wed, 16 Aug 2000 12:34:56 GMT"; | |
87 | |
88 _HttpHeaders headers = new _HttpHeaders(); | |
89 Expect.isNull(headers.expires); | |
90 headers.expires = date1; | |
91 Expect.equals(date1, headers.expires); | |
92 Expect.equals(httpDate1, headers.value(HttpHeaders.EXPIRES)); | |
93 Expect.equals(1, headers[HttpHeaders.EXPIRES].length); | |
94 headers.add(HttpHeaders.EXPIRES, httpDate2); | |
95 Expect.equals(1, headers[HttpHeaders.EXPIRES].length); | |
96 Expect.equals(date2, headers.expires); | |
97 Expect.equals(httpDate2, headers.value(HttpHeaders.EXPIRES)); | |
98 headers.set(HttpHeaders.EXPIRES, httpDate1); | |
99 Expect.equals(1, headers[HttpHeaders.EXPIRES].length); | |
100 Expect.equals(date1, headers.expires); | |
101 Expect.equals(httpDate1, headers.value(HttpHeaders.EXPIRES)); | |
102 | |
103 headers.set(HttpHeaders.EXPIRES, "xxx"); | |
104 Expect.equals("xxx", headers.value(HttpHeaders.EXPIRES)); | |
105 Expect.equals(null, headers.expires); | |
106 } | |
107 | |
108 void testHost() { | |
109 String host = "www.google.com"; | |
110 _HttpHeaders headers = new _HttpHeaders(); | |
111 Expect.isNull(headers.host); | |
112 Expect.isNull(headers.port); | |
113 headers.host = host; | |
114 Expect.equals(host, headers.value(HttpHeaders.HOST)); | |
115 headers.port = 1234; | |
116 Expect.equals("$host:1234", headers.value(HttpHeaders.HOST)); | |
117 headers.port = HttpClient.DEFAULT_HTTP_PORT; | |
118 Expect.equals(host, headers.value(HttpHeaders.HOST)); | |
119 | |
120 headers = new _HttpHeaders(); | |
121 headers.add(HttpHeaders.HOST, host); | |
122 Expect.equals(host, headers.host); | |
123 Expect.equals(HttpClient.DEFAULT_HTTP_PORT, headers.port); | |
124 headers.add(HttpHeaders.HOST, "$host:4567"); | |
125 Expect.equals(1, headers[HttpHeaders.HOST].length); | |
126 Expect.equals(host, headers.host); | |
127 Expect.equals(4567, headers.port); | |
128 | |
129 headers = new _HttpHeaders(); | |
130 headers.add(HttpHeaders.HOST, "$host:xxx"); | |
131 Expect.equals("$host:xxx", headers.value(HttpHeaders.HOST)); | |
132 Expect.equals(host, headers.host); | |
133 Expect.isNull(headers.port); | |
134 | |
135 headers = new _HttpHeaders(); | |
136 headers.add(HttpHeaders.HOST, ":1234"); | |
137 Expect.equals(":1234", headers.value(HttpHeaders.HOST)); | |
138 Expect.isNull(headers.host); | |
139 Expect.equals(1234, headers.port); | |
140 } | |
141 | |
142 main() { | |
143 testMultiValue(); | |
144 testExpires(); | |
145 testHost(); | |
146 } | |
OLD | NEW |