| // Copyright 2014 The Flutter Authors. All rights reserved. |
| // 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'; |
| |
| import '../src/common.dart'; |
| |
| 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)); |
| expect(clock.ago(const Duration(days: 10)), DateTime(1991, 8, 13)); |
| }); |
| }); |
| |
| 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)); |
| }); |
| }); |
| } |