| Index: tests/html/event_customevent_test.dart
|
| diff --git a/tests/html/event_customevent_test.dart b/tests/html/event_customevent_test.dart
|
| index f7740e816288112f9099ee0d692c7fb5ce887f52..42e3031d2f878e0f4a0494454a825ddb5d385fdc 100644
|
| --- a/tests/html/event_customevent_test.dart
|
| +++ b/tests/html/event_customevent_test.dart
|
| @@ -8,6 +8,12 @@ import '../../pkg/unittest/lib/unittest.dart';
|
| import '../../pkg/unittest/lib/html_config.dart';
|
| import 'dart:html';
|
|
|
| +class DartPayloadData {
|
| + final dartValue;
|
| +
|
| + DartPayloadData(this.dartValue);
|
| +}
|
| +
|
| main() {
|
| useHtmlConfiguration();
|
|
|
| @@ -46,4 +52,31 @@ main() {
|
|
|
| expect(fired, isTrue);
|
| });
|
| +
|
| + test('custom events to JS', () {
|
| + var scriptContents = '''
|
| + window.addEventListener('dart_custom_event', function(e) {
|
| + if (e.detail == 'dart_message') {
|
| + e.preventDefault();
|
| + }
|
| + }, false);''';
|
| +
|
| + document.body.append(new ScriptElement()..text = scriptContents);
|
| +
|
| + var event = new CustomEvent('dart_custom_event', detail: 'dart_message');
|
| + window.dispatchEvent(event);
|
| + expect(event.defaultPrevented, isTrue);
|
| + });
|
| +
|
| + test('custom data to Dart', () {
|
| + var data = new DartPayloadData(666);
|
| + var event = new CustomEvent('dart_custom_data_event', detail: data);
|
| +
|
| + var future = window.on['dart_custom_data_event'].first.then((_) {
|
| + expect(event.detail.dartValue, 666);
|
| + });
|
| +
|
| + document.body.dispatchEvent(event);
|
| + return future;
|
| + });
|
| }
|
|
|