Skip to content

Commit

Permalink
Fixes #14754 deprecate canDispatchToEventMAnager
Browse files Browse the repository at this point in the history
  • Loading branch information
Hassan Abdel-Rahman committed Mar 28, 2017
1 parent 6edfda7 commit f36fcbe
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 2 deletions.
29 changes: 29 additions & 0 deletions packages/ember-glimmer/tests/integration/event-dispatcher-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
run
} from 'ember-metal';
import { EMBER_IMPROVED_INSTRUMENTATION } from 'ember/features';
import { EventDispatcher } from 'ember-views';

let canDataTransfer = !!document.createEvent('HTMLEvents').dataTransfer;

Expand Down Expand Up @@ -138,6 +139,34 @@ moduleFor('EventDispatcher#setup', class extends RenderingTest {
this.$('div').trigger('myevent');
}

['@test canDispatchToEventManager is deprecated'](assert) {
this.dispatcher.canDispatchToEventManager = null;
this.registerComponent('x-foo', {
ComponentClass: Component.extend({
eventManager: {
myEvent() {}
}
}),
template: `<p>Hello!</p>`
});

expectDeprecation(() => {
this.render(`{{x-foo}}`);
}, '[DEPRECATED] `canDispatchToEventManager` has been deprecated.');

this.$('div').trigger('myevent');
}

['@test canDispatchToEventManager is deprecated in EventDispatcher'](assert) {
let MyDispatcher = EventDispatcher.extend({
canDispatchToEventManager: null
});

expectDeprecation(() => {
MyDispatcher.create();
}, '[DEPRECATED] `canDispatchToEventManager` has been deprecated.');
}

['@test a rootElement can be specified'](assert) {
this.$().append('<div id="app"></div>');
this.dispatcher.setup({ myevent: 'myEvent' }, '#app');
Expand Down
11 changes: 10 additions & 1 deletion packages/ember-views/lib/mixins/view_support.js
Original file line number Diff line number Diff line change
Expand Up @@ -538,7 +538,16 @@ export default Mixin.create({
let owner = getOwner(this);
let dispatcher = owner && owner.lookup('event_dispatcher:main');

if (dispatcher && dispatcher.canDispatchToEventManager === null) {
deprecate(
`[DEPRECATED] \`canDispatchToEventManager\` has been deprecated.`,
!('canDispatchToEventManager' in dispatcher),
{
id: 'ember-views.event-dispatcher.canDispatchToEventManager',
until: '3.0.0'
}
);

if (dispatcher && !('canDispatchToEventManager' in dispatcher)) {
dispatcher.canDispatchToEventManager = true;
}
}
Expand Down
12 changes: 11 additions & 1 deletion packages/ember-views/lib/system/event_dispatcher.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import { assign, getOwner } from 'ember-utils';
import { assert } from 'ember-debug';
import { get, set, isNone, run } from 'ember-metal';
import { deprecate } from 'ember-debug';
import { Object as EmberObject } from 'ember-runtime';
import jQuery from './jquery';
import ActionManager from './action_manager';
Expand Down Expand Up @@ -129,13 +130,22 @@ export default EmberObject.extend({
@type boolean
@default false
@since 1.7.0
@deprecated
@private
*/
canDispatchToEventManager: null,

init() {
this._super();
assert('EventDispatcher should never be instantiated in fastboot mode. Please report this as an Ember bug.', environment.hasDOM);

deprecate(
`[DEPRECATED] \`canDispatchToEventManager\` has been deprecated.`,
!('canDispatchToEventManager' in this),
{
id: 'ember-views.event-dispatcher.canDispatchToEventManager',
until: '3.0.0'
}
);
},

/**
Expand Down

0 comments on commit f36fcbe

Please sign in to comment.