-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
/
controller_test.js
50 lines (38 loc) · 1.41 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
import run from 'ember-metal/run_loop';
import ContainerView from 'ember-views/views/container_view';
QUnit.module('Ember.View - controller property');
QUnit.test('controller property should be inherited from nearest ancestor with controller', function() {
var grandparent = ContainerView.create();
var parent = ContainerView.create();
var child = ContainerView.create();
var grandchild = ContainerView.create();
var grandparentController = {};
var parentController = {};
run(function() {
grandparent.set('controller', grandparentController);
parent.set('controller', parentController);
grandparent.pushObject(parent);
parent.pushObject(child);
});
strictEqual(grandparent.get('controller'), grandparentController);
strictEqual(parent.get('controller'), parentController);
strictEqual(child.get('controller'), parentController);
strictEqual(grandchild.get('controller'), null);
run(function() {
child.pushObject(grandchild);
});
strictEqual(grandchild.get('controller'), parentController);
var newController = {};
run(function() {
parent.set('controller', newController);
});
strictEqual(parent.get('controller'), newController);
strictEqual(child.get('controller'), newController);
strictEqual(grandchild.get('controller'), newController);
run(function() {
grandparent.destroy();
parent.destroy();
child.destroy();
grandchild.destroy();
});
});