blob: d1da947c3d27b7bc3ef9e99200dd926a539999cd [file] [log] [blame]
// 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:isolate';
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 Date.now()).millisecondsSinceEpoch;
expect(endTime - _startTime1, greaterThanOrEqualTo(TIMEOUT1));
expect(_order[_message], 0);
_message++;
}
void timeoutHandler2(Timer timer) {
int endTime = (new Date.now()).millisecondsSinceEpoch;
expect(endTime - _startTime2, greaterThanOrEqualTo(TIMEOUT2));
expect(_order[_message], 1);
_message++;
}
void timeoutHandler3(Timer timer) {
int endTime = (new Date.now()).millisecondsSinceEpoch;
expect(endTime - _startTime3, greaterThanOrEqualTo(TIMEOUT3));
expect(_order[_message], 2);
_message++;
}
void timeoutHandler4(Timer timer) {
int endTime = (new Date.now()).millisecondsSinceEpoch;
expect(endTime - _startTime4, greaterThanOrEqualTo(TIMEOUT4));
expect(_order[_message], 3);
_message++;
}
_order = new List<int>(4);
_order[0] = 2;
_order[1] = 0;
_order[2] = 3;
_order[3] = 1;
_message = 0;
_startTime1 = (new Date.now()).millisecondsSinceEpoch;
new Timer(TIMEOUT1, expectAsync1(timeoutHandler1));
_startTime2 = (new Date.now()).millisecondsSinceEpoch;
new Timer(TIMEOUT2, expectAsync1(timeoutHandler2));
_startTime3 = (new Date.now()).millisecondsSinceEpoch;
new Timer(TIMEOUT3, expectAsync1(timeoutHandler3));
_startTime4 = (new Date.now()).millisecondsSinceEpoch;
new Timer(TIMEOUT4, expectAsync1(timeoutHandler4));
});
}