blob: a88d63196f48700ac9c601f1cd0026a40063da5e [file] [log] [blame]
library EventsTest;
import '../../pkg/unittest/lib/unittest.dart';
import '../../pkg/unittest/lib/html_config.dart';
import 'dart:html';
main() {
useHtmlConfiguration();
test('TimeStamp', () {
Event event = new Event('test');
int timeStamp = event.timeStamp;
expect(timeStamp, greaterThan(0));
});
// The next test is not asynchronous because [on['test'].dispatch(event)] fires the event
// and event listener synchronously.
test('EventTarget', () {
Element element = new Element.tag('test');
element.id = 'eventtarget';
window.document.body.nodes.add(element);
int invocationCounter = 0;
void handler(Event e) {
expect(e.type, equals('test'));
Element target = e.target;
expect(element, equals(target));
invocationCounter++;
}
Event event = new Event('test');
invocationCounter = 0;
element.dispatchEvent(event);
expect(invocationCounter, isZero);
var provider = new EventStreamProvider<CustomEvent>('test');
var sub = provider.forTarget(element).listen(handler);
invocationCounter = 0;
element.dispatchEvent(event);
expect(invocationCounter, 1);
sub.cancel();
invocationCounter = 0;
element.dispatchEvent(event);
expect(invocationCounter, isZero);
provider.forTarget(element).listen(handler);
invocationCounter = 0;
element.dispatchEvent(event);
expect(invocationCounter, 1);
provider.forTarget(element).listen(handler);
invocationCounter = 0;
element.dispatchEvent(event);
expect(invocationCounter, 1);
});
test('InitMouseEvent', () {
DivElement div = new Element.tag('div');
MouseEvent event = new MouseEvent('zebra', relatedTarget: div);
});
}