a323c55162
Change-Id: I4d492a63a41880ef8cd69321372a4853825b9efd Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/426321 Reviewed-by: Liam Appelbe <liama@google.com> Auto-Submit: Bob Nystrom <rnystrom@google.com> Commit-Queue: Liam Appelbe <liama@google.com>
88 lines
2.6 KiB
Dart
88 lines
2.6 KiB
Dart
// Copyright (c) 2012, 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.
|
|
|
|
import "dart:async";
|
|
import "dart:math";
|
|
import "dart:io";
|
|
import "package:expect/expect.dart";
|
|
|
|
void testParseHttpDate() {
|
|
DateTime date;
|
|
date = new DateTime.utc(1999, DateTime.june, 11, 18, 46, 53, 0);
|
|
Expect.equals(date, HttpDate.parse("Fri, 11 Jun 1999 18:46:53 GMT"));
|
|
Expect.equals(date, HttpDate.parse("Friday, 11-Jun-1999 18:46:53 GMT"));
|
|
Expect.equals(date, HttpDate.parse("Fri Jun 11 18:46:53 1999"));
|
|
|
|
date = new DateTime.utc(1970, DateTime.january, 1, 0, 0, 0, 0);
|
|
Expect.equals(date, HttpDate.parse("Thu, 1 Jan 1970 00:00:00 GMT"));
|
|
Expect.equals(date, HttpDate.parse("Thursday, 1-Jan-1970 00:00:00 GMT"));
|
|
Expect.equals(date, HttpDate.parse("Thu Jan 1 00:00:00 1970"));
|
|
|
|
date = new DateTime.utc(2012, DateTime.march, 5, 23, 59, 59, 0);
|
|
Expect.equals(date, HttpDate.parse("Mon, 5 Mar 2012 23:59:59 GMT"));
|
|
Expect.equals(date, HttpDate.parse("Monday, 5-Mar-2012 23:59:59 GMT"));
|
|
Expect.equals(date, HttpDate.parse("Mon Mar 5 23:59:59 2012"));
|
|
}
|
|
|
|
void testFormatParseHttpDate() {
|
|
test(
|
|
int year,
|
|
int month,
|
|
int day,
|
|
int hours,
|
|
int minutes,
|
|
int seconds,
|
|
String expectedFormatted,
|
|
) {
|
|
DateTime date;
|
|
String formatted;
|
|
date = new DateTime.utc(year, month, day, hours, minutes, seconds, 0);
|
|
formatted = HttpDate.format(date);
|
|
Expect.equals(expectedFormatted, formatted);
|
|
Expect.equals(date, HttpDate.parse(formatted));
|
|
}
|
|
|
|
test(1999, DateTime.june, 11, 18, 46, 53, "Fri, 11 Jun 1999 18:46:53 GMT");
|
|
test(1970, DateTime.january, 1, 0, 0, 0, "Thu, 01 Jan 1970 00:00:00 GMT");
|
|
test(1970, DateTime.january, 1, 9, 9, 9, "Thu, 01 Jan 1970 09:09:09 GMT");
|
|
test(2012, DateTime.march, 5, 23, 59, 59, "Mon, 05 Mar 2012 23:59:59 GMT");
|
|
}
|
|
|
|
void testParseHttpDateFailures() {
|
|
Expect.throws(() {
|
|
HttpDate.parse("");
|
|
});
|
|
String valid = "Mon, 5 Mar 2012 23:59:59 GMT";
|
|
for (int i = 1; i < valid.length - 1; i++) {
|
|
String tmp = valid.substring(0, i);
|
|
Expect.throws(() {
|
|
HttpDate.parse(tmp);
|
|
});
|
|
Expect.throws(() {
|
|
HttpDate.parse(" $tmp");
|
|
});
|
|
Expect.throws(() {
|
|
HttpDate.parse(" $tmp ");
|
|
});
|
|
Expect.throws(() {
|
|
HttpDate.parse("$tmp ");
|
|
});
|
|
}
|
|
Expect.throws(() {
|
|
HttpDate.parse(" $valid");
|
|
});
|
|
Expect.throws(() {
|
|
HttpDate.parse(" $valid ");
|
|
});
|
|
Expect.throws(() {
|
|
HttpDate.parse("$valid ");
|
|
});
|
|
}
|
|
|
|
void main() {
|
|
testParseHttpDate();
|
|
testFormatParseHttpDate();
|
|
testParseHttpDateFailures();
|
|
}
|