2019-11-27 23:04:02 +00:00
|
|
|
// Copyright 2014 The Flutter Authors. All rights reserved.
|
2018-11-11 01:02:32 +00:00
|
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
|
|
// found in the LICENSE file.
|
|
|
|
|
|
|
|
import 'package:flutter_tools/src/base/time.dart';
|
|
|
|
|
2019-07-13 18:51:44 +00:00
|
|
|
import '../src/common.dart';
|
2018-11-11 01:02:32 +00:00
|
|
|
|
|
|
|
void main() {
|
|
|
|
group(SystemClock, () {
|
|
|
|
test('can set a fixed time', () {
|
|
|
|
final SystemClock clock = SystemClock.fixed(DateTime(1991, 8, 23));
|
|
|
|
expect(clock.now(), DateTime(1991, 8, 23));
|
|
|
|
});
|
|
|
|
|
|
|
|
test('can find a time ago', () {
|
|
|
|
final SystemClock clock = SystemClock.fixed(DateTime(1991, 8, 23));
|
2018-11-14 16:16:12 +00:00
|
|
|
expect(clock.ago(const Duration(days: 10)), DateTime(1991, 8, 13));
|
2018-11-11 01:02:32 +00:00
|
|
|
});
|
|
|
|
});
|
2019-08-01 06:28:18 +00:00
|
|
|
|
|
|
|
group('formatting', () {
|
|
|
|
test('can round-trip formatted time', () {
|
|
|
|
final DateTime time = DateTime(1991, 7, 31);
|
|
|
|
expect(time.isUtc, isFalse);
|
|
|
|
// formatDateTime() adds a timezone offset to DateTime.toString().
|
|
|
|
final String formattedTime = formatDateTime(time);
|
|
|
|
// If a date time string has a timezone offset, DateTime.tryParse()
|
|
|
|
// converts the parsed time to UTC.
|
|
|
|
final DateTime parsedTime = DateTime.tryParse(formattedTime);
|
|
|
|
expect(parsedTime, isNotNull);
|
|
|
|
expect(parsedTime.isUtc, isTrue);
|
|
|
|
// Convert the parsed time (which should be utc) to the local timezone and
|
|
|
|
// compare against the original time which is in the local timezone. They
|
|
|
|
// should be the same.
|
|
|
|
expect(parsedTime.toLocal(), equals(time));
|
|
|
|
});
|
|
|
|
});
|
2018-11-11 01:02:32 +00:00
|
|
|
}
|