| // 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. |
| |
| library multiple_timer_test; |
| |
| import 'dart:async'; |
| import '../../pkg/unittest/lib/unittest.dart'; |
| |
| const int TIMEOUT1 = 1000; |
| const int TIMEOUT2 = 2000; |
| const int TIMEOUT3 = 500; |
| const int TIMEOUT4 = 1500; |
| |
| main() { |
| test("multiple timer test", () { |
| int _startTime1; |
| int _startTime2; |
| int _startTime3; |
| int _startTime4; |
| List<int> _order; |
| int _message; |
| |
| void timeoutHandler1(Timer timer) { |
| int endTime = (new DateTime.now()).millisecondsSinceEpoch; |
| expect(endTime - _startTime1, greaterThanOrEqualTo(TIMEOUT1)); |
| expect(_order[_message], 0); |
| _message++; |
| } |
| |
| void timeoutHandler2(Timer timer) { |
| int endTime = (new DateTime.now()).millisecondsSinceEpoch; |
| expect(endTime - _startTime2, greaterThanOrEqualTo(TIMEOUT2)); |
| expect(_order[_message], 1); |
| _message++; |
| } |
| |
| void timeoutHandler3(Timer timer) { |
| int endTime = (new DateTime.now()).millisecondsSinceEpoch; |
| expect(endTime - _startTime3, greaterThanOrEqualTo(TIMEOUT3)); |
| expect(_order[_message], 2); |
| _message++; |
| } |
| |
| void timeoutHandler4(Timer timer) { |
| int endTime = (new DateTime.now()).millisecondsSinceEpoch; |
| expect(endTime - _startTime4, greaterThanOrEqualTo(TIMEOUT4)); |
| expect(_order[_message], 3); |
| _message++; |
| } |
| |
| _order = new List<int>.fixedLength(4); |
| _order[0] = 2; |
| _order[1] = 0; |
| _order[2] = 3; |
| _order[3] = 1; |
| _message = 0; |
| |
| _startTime1 = (new DateTime.now()).millisecondsSinceEpoch; |
| new Timer(TIMEOUT1, expectAsync1(timeoutHandler1)); |
| _startTime2 = (new DateTime.now()).millisecondsSinceEpoch; |
| new Timer(TIMEOUT2, expectAsync1(timeoutHandler2)); |
| _startTime3 = (new DateTime.now()).millisecondsSinceEpoch; |
| new Timer(TIMEOUT3, expectAsync1(timeoutHandler3)); |
| _startTime4 = (new DateTime.now()).millisecondsSinceEpoch; |
| new Timer(TIMEOUT4, expectAsync1(timeoutHandler4)); |
| }); |
| } |