| Index: test/codegen/expect/lib/html/event_customevent_test.js
|
| diff --git a/test/codegen/expect/lib/html/event_customevent_test.js b/test/codegen/expect/lib/html/event_customevent_test.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e74f0d739cc0e2265f84bea11c89c0de658fbc2d
|
| --- /dev/null
|
| +++ b/test/codegen/expect/lib/html/event_customevent_test.js
|
| @@ -0,0 +1,82 @@
|
| +dart_library.library('lib/html/event_customevent_test', null, /* Imports */[
|
| + 'dart_sdk',
|
| + 'unittest'
|
| +], function load__event_customevent_test(exports, dart_sdk, unittest) {
|
| + 'use strict';
|
| + const core = dart_sdk.core;
|
| + const html = dart_sdk.html;
|
| + const js = dart_sdk.js;
|
| + const async = dart_sdk.async;
|
| + const dart = dart_sdk.dart;
|
| + const dartx = dart_sdk.dartx;
|
| + const html_config = unittest.html_config;
|
| + const unittest$ = unittest.unittest;
|
| + const src__matcher__expect = unittest.src__matcher__expect;
|
| + const src__matcher__core_matchers = unittest.src__matcher__core_matchers;
|
| + const event_customevent_test = Object.create(null);
|
| + let EventStreamProviderOfCustomEvent = () => (EventStreamProviderOfCustomEvent = dart.constFn(html.EventStreamProvider$(html.CustomEvent)))();
|
| + let CustomEventTovoid = () => (CustomEventTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html.CustomEvent])))();
|
| + let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))();
|
| + let dynamicTovoid = () => (dynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic])))();
|
| + let dynamicTodynamic = () => (dynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic])))();
|
| + let VoidToFuture = () => (VoidToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [])))();
|
| + event_customevent_test.DartPayloadData = class DartPayloadData extends core.Object {
|
| + new(dartValue) {
|
| + this.dartValue = dartValue;
|
| + }
|
| + };
|
| + dart.setSignature(event_customevent_test.DartPayloadData, {
|
| + constructors: () => ({new: dart.definiteFunctionType(event_customevent_test.DartPayloadData, [dart.dynamic])})
|
| + });
|
| + event_customevent_test.main = function() {
|
| + html_config.useHtmlConfiguration();
|
| + unittest$.test('custom events', dart.fn(() => {
|
| + let provider = new (EventStreamProviderOfCustomEvent())('foo');
|
| + let el = html.DivElement.new();
|
| + let fired = false;
|
| + provider.forTarget(el).listen(dart.fn(ev => {
|
| + fired = true;
|
| + src__matcher__expect.expect(ev[dartx.detail], dart.map({type: 'detail'}));
|
| + }, CustomEventTovoid()));
|
| + let ev = html.CustomEvent.new('foo', {canBubble: false, cancelable: false, detail: dart.map({type: 'detail'})});
|
| + el[dartx.dispatchEvent](ev);
|
| + src__matcher__expect.expect(fired, src__matcher__core_matchers.isTrue);
|
| + }, VoidTodynamic()));
|
| + unittest$.test('custom events from JS', dart.fn(() => {
|
| + let scriptContents = ' var event = document.createEvent("CustomEvent");\n event.initCustomEvent("js_custom_event", true, true, {type: "detail"});\n window.dispatchEvent(event);\n ';
|
| + let fired = false;
|
| + html.window[dartx.on].get('js_custom_event').listen(dart.fn(ev => {
|
| + fired = true;
|
| + src__matcher__expect.expect(dart.dload(ev, 'detail'), dart.map({type: 'detail'}));
|
| + }, dynamicTovoid()));
|
| + let script = html.ScriptElement.new();
|
| + script[dartx.text] = scriptContents;
|
| + html.document[dartx.body][dartx.append](script);
|
| + src__matcher__expect.expect(fired, src__matcher__core_matchers.isTrue);
|
| + }, VoidTodynamic()));
|
| + unittest$.test('custom events to JS', dart.fn(() => {
|
| + src__matcher__expect.expect(js.context.get('gotDartEvent'), src__matcher__core_matchers.isNull);
|
| + let scriptContents = ' window.addEventListener(\'dart_custom_event\', function(e) {\n if (e.detail == \'dart_message\') {\n e.preventDefault();\n window.gotDartEvent = true;\n }\n window.console.log(\'here\' + e.detail);\n }, false);';
|
| + html.document[dartx.body][dartx.append]((() => {
|
| + let _ = html.ScriptElement.new();
|
| + _[dartx.text] = scriptContents;
|
| + return _;
|
| + })());
|
| + let event = html.CustomEvent.new('dart_custom_event', {detail: 'dart_message'});
|
| + html.window[dartx.dispatchEvent](event);
|
| + src__matcher__expect.expect(js.context.get('gotDartEvent'), src__matcher__core_matchers.isTrue);
|
| + }, VoidTodynamic()));
|
| + unittest$.test('custom data to Dart', dart.fn(() => {
|
| + let data = new event_customevent_test.DartPayloadData(666);
|
| + let event = html.CustomEvent.new('dart_custom_data_event', {detail: data});
|
| + let future = html.window[dartx.on].get('dart_custom_data_event').first.then(dart.dynamic)(dart.fn(_ => {
|
| + src__matcher__expect.expect(dart.dload(event[dartx.detail], 'dartValue'), 666);
|
| + }, dynamicTodynamic()));
|
| + html.document[dartx.body][dartx.dispatchEvent](event);
|
| + return future;
|
| + }, VoidToFuture()));
|
| + };
|
| + dart.fn(event_customevent_test.main, VoidTodynamic());
|
| + // Exports:
|
| + exports.event_customevent_test = event_customevent_test;
|
| +});
|
|
|