-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcontroller.js
84 lines (66 loc) · 2.36 KB
/
controller.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
80
81
82
83
84
describe('Controller', function(){
var dom = '\
<div id="test-controller" style="position: absolute; top: -1000px">\
<div class="test-click">click</div>\
<div class="test-custom-event">eventA</div>\
<form class="test-submit">\
<input type="text" name="" >\
</form>\
</div>\
';
$('body').append(dom);
var eventName;
var TestController = I.Controller.extend({
events:{
'click .test-click' : 'testClick',
'submit .test-submit' : 'testSubmit',
'eventA .test-custom-event' : 'testCustomEvent'
},
pageSelector: '#test-controller',
testClick: function(){
eventName = "click event is triggered";
},
testSubmit: function(e){
e.preventDefault();
eventName = "submit event is triggered";
//return false;
},
testCustomEvent: function(){
eventName = "eventA is triggered";
}
});
beforeEach(function(){
//var page = document.createElement('div');
});
describe('can bind events', function(){
var con;
beforeEach(function(){
con = new TestController();
eventName = "";
});
it('will trigger click event', function(){
$('.test-click', con.page).trigger('click');
expect(eventName).toBe("click event is triggered");
});
it('will trigger submit event', function(){
$('.test-submit', con.page).trigger('submit');
expect(eventName).toBe("submit event is triggered");
});
it('will trigger a custom event', function(){
$('.test-custom-event', con.page).trigger('eventA');
expect(eventName).toBe("eventA is triggered");
});
it("constructor has detected events and customEvents", function(){
var klass = con.constructor;
expect(klass.isDetected).toBeTruthy();
expect(klass.events['click .test-click']).toBe('testClick');
expect(klass.events['submit .test-submit']).toBe('testSubmit');
expect(klass.events['eventA .test-custom-event']).not.toBe('testCustomEvent');
expect(klass.events['eventA .test-custom-event']).toBeUndefined();
//custom events
expect(klass.customEvents['eventA .test-custom-event']).toBe('testCustomEvent');
expect(klass.customEvents['submit .test-submit']).not.toBe('testSubmit');
expect(klass.customEvents['submit .test-submit']).toBeUndefined();
});
});
});