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/http_utils.dart"); | |
6 | |
7 class HttpException implements Exception { | |
8 const HttpException([String this.message = ""]); | |
9 String toString() => "HttpException: $message"; | |
10 final String message; | |
11 } | |
12 | |
13 void testParseHttpDate() { | |
14 TimeZone utc = new TimeZone.utc(); | |
15 Date date; | |
16 date = new Date.withTimeZone(1999, Date.JUN, 11, 18, 46, 53, 0, utc); | |
17 Expect.equals(date, _HttpUtils.parseDate("Fri, 11 Jun 1999 18:46:53 GMT")); | |
18 Expect.equals(date, _HttpUtils.parseDate("Friday, 11-Jun-1999 18:46:53 GMT")); | |
19 Expect.equals(date, _HttpUtils.parseDate("Fri Jun 11 18:46:53 1999")); | |
20 | |
21 date = new Date.withTimeZone(1970, Date.JAN, 1, 0, 0, 0, 0, utc); | |
22 Expect.equals(date, _HttpUtils.parseDate("Thu, 1 Jan 1970 00:00:00 GMT")); | |
23 Expect.equals(date, | |
24 _HttpUtils.parseDate("Thursday, 1-Jan-1970 00:00:00 GMT")); | |
25 Expect.equals(date, _HttpUtils.parseDate("Thu Jan 1 00:00:00 1970")); | |
26 | |
27 date = new Date.withTimeZone(2012, Date.MAR, 5, 23, 59, 59, 0, utc); | |
28 Expect.equals(date, _HttpUtils.parseDate("Mon, 5 Mar 2012 23:59:59 GMT")); | |
29 Expect.equals(date, _HttpUtils.parseDate("Monday, 5-Mar-2012 23:59:59 GMT")); | |
30 Expect.equals(date, _HttpUtils.parseDate("Mon Mar 5 23:59:59 2012")); | |
31 } | |
32 | |
33 void testFormatParseHttpDate() { | |
34 test(int year, | |
35 int month, | |
36 int day, | |
37 int hours, | |
38 int minutes, | |
39 int seconds, | |
40 String expectedFormatted) { | |
41 TimeZone utc = new TimeZone.utc(); | |
42 Date date; | |
43 String formatted; | |
44 date = new Date.withTimeZone( | |
45 year, month, day, hours, minutes, seconds, 0, utc); | |
46 formatted = _HttpUtils.formatDate(date); | |
47 Expect.equals(expectedFormatted, formatted); | |
48 Expect.equals(date, _HttpUtils.parseDate(formatted)); | |
49 } | |
50 | |
51 test(1999, Date.JUN, 11, 18, 46, 53, "Fri, 11 Jun 1999 18:46:53 GMT"); | |
52 test(1970, Date.JAN, 1, 0, 0, 0, "Thu, 1 Jan 1970 00:00:00 GMT"); | |
53 test(2012, Date.MAR, 5, 23, 59, 59, "Mon, 5 Mar 2012 23:59:59 GMT"); | |
54 } | |
55 | |
56 void testParseHttpDateFailures() { | |
57 Expect.throws(() { | |
58 _HttpUtils.parseDate(""); | |
59 }); | |
60 String valid = "Mon, 5 Mar 2012 23:59:59 GMT"; | |
61 for (int i = 1; i < valid.length - 1; i++) { | |
62 String tmp = valid.substring(0, i); | |
63 Expect.throws(() { | |
64 _HttpUtils.parseDate(tmp); | |
65 }); | |
66 Expect.throws(() { | |
67 _HttpUtils.parseDate(" $tmp"); | |
68 }); | |
69 Expect.throws(() { | |
70 _HttpUtils.parseDate(" $tmp "); | |
71 }); | |
72 Expect.throws(() { | |
73 _HttpUtils.parseDate("$tmp "); | |
74 }); | |
75 } | |
76 Expect.throws(() { | |
77 _HttpUtils.parseDate(" $valid"); | |
78 }); | |
79 Expect.throws(() { | |
80 _HttpUtils.parseDate(" $valid "); | |
81 }); | |
82 Expect.throws(() { | |
83 _HttpUtils.parseDate("$valid "); | |
84 }); | |
85 } | |
86 | |
87 void main() { | |
88 testParseHttpDate(); | |
89 testFormatParseHttpDate(); | |
90 testParseHttpDateFailures(); | |
91 } | |
OLD | NEW |