time_test.dart 1.43 KB
Newer Older
1 2 3 4 5 6
// Copyright 2018 The Chromium 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';

7
import '../src/common.dart';
8 9 10 11 12 13 14 15 16 17

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));
18
      expect(clock.ago(const Duration(days: 10)), DateTime(1991, 8, 13));
19 20
    });
  });
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38

  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));
    });
  });
39
}