-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
/
controller_test.js
79 lines (62 loc) · 1.93 KB
/
controller_test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import Controller from 'ember-runtime/controllers/controller';
import Route from 'ember-routing/system/route';
import run from 'ember-metal/run_loop';
import { compile } from 'ember-template-compiler/tests/utils/helpers';
import Application from 'ember-application/system/application';
import Component from 'ember-templates/component';
import jQuery from 'ember-views/system/jquery';
import { setTemplates, set as setTemplate } from 'ember-templates/template_registry';
/*
In Ember 1.x, controllers subtly affect things like template scope
and action targets in exciting and often inscrutable ways. This test
file contains integration tests that verify the correct behavior of
the many parts of the system that change and rely upon controller scope,
from the runtime up to the templating layer.
*/
var App, $fixture;
QUnit.module('Template scoping examples', {
setup() {
run(function() {
App = Application.create({
name: 'App',
rootElement: '#qunit-fixture'
});
App.deferReadiness();
App.Router.reopen({
location: 'none'
});
App.LoadingRoute = Route.extend();
});
$fixture = jQuery('#qunit-fixture');
},
teardown() {
run(function() {
App.destroy();
});
App = null;
setTemplates({});
}
});
import { test } from 'internal-test-helpers/tests/skip-if-glimmer';
test('Actions inside an outlet go to the associated controller', function() {
expect(1);
setTemplate('index', compile('{{component-with-action action=\'componentAction\'}}'));
App.IndexController = Controller.extend({
actions: {
componentAction() {
ok(true, 'received the click');
}
}
});
App.ComponentWithActionComponent = Component.extend({
classNames: ['component-with-action'],
click() {
this.sendAction();
}
});
bootApp();
$fixture.find('.component-with-action').click();
});
function bootApp() {
run(App, 'advanceReadiness');
}