Skip to content
This repository was archived by the owner on Apr 20, 2018. It is now read-only.

Commit a6b13fa

Browse files
Merge pull request #959 from paulpdaniels/from-event-fix
Fixed typo in fromEvent. Updated tests that were missing it.
2 parents 1b8709d + 2fbcb21 commit a6b13fa

2 files changed

Lines changed: 92 additions & 53 deletions

File tree

src/core/linq/observable/fromevent.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
inherits(EventObservable, __super__);
4848
function EventObservable(el, name, fn) {
4949
this._el = el;
50-
this._name = name;
50+
this._n = name;
5151
this._fn = fn;
5252
__super__.call(this);
5353
}

tests/observable/fromevent.js

Lines changed: 91 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
(function () {
22
/* jshint undef: true, unused: true */
33
/* globals QUnit, test, Rx, equal */
4+
var Observable = Rx.Observable,
5+
slice = Array.prototype.slice,
6+
onNext = Rx.ReactiveTest.onNext;
7+
8+
QUnit.module('FromEvent', {
9+
setup : function() {
10+
this.scheduler = new Rx.TestScheduler();
11+
}
12+
});
413

5-
QUnit.module('FromEvent');
614

7-
var Observable = Rx.Observable,
8-
slice = Array.prototype.slice;
915

1016
/** Fake DOM Element */
1117
function FakeDOMStandardElement(nodeName) {
@@ -35,16 +41,20 @@
3541
test('Event_1', function () {
3642
var element = new FakeDOMStandardElement('foo');
3743

38-
var d = Observable.fromEvent(element, 'someEvent')
39-
.subscribe(function (x) {
40-
equal(x, 42);
44+
this.scheduler.scheduleFuture(null, 210, function() {
45+
equal(element.addEventListenerCalled, true);
46+
equal(element.removeEventListenerCalled, false);
4147
});
4248

43-
element.trigger('someEvent', 42);
44-
equal(element.addEventListenerCalled, true);
45-
equal(element.removeEventListenerCalled, false);
49+
this.scheduler.scheduleFuture(null, 220, function() {
50+
element.trigger('someEvent', 42);
51+
});
52+
53+
var result = this.scheduler.startScheduler(function() {
54+
return Observable.fromEvent(element, 'someEvent');
55+
});
4656

47-
d.dispose();
57+
result.messages.assertEqual(onNext(220, 42));
4858

4959
equal(element.removeEventListenerCalled, true);
5060
});
@@ -73,42 +83,56 @@
7383
};
7484

7585
test('Event_3', function () {
86+
7687
var element = new FakeEventEmitter();
7788

78-
var d = Observable.fromEvent(element, 'someEvent')
79-
.subscribe(function (x) {
80-
equal(x, 42);
89+
this.scheduler.scheduleFuture(null, 210, function() {
90+
equal(element.addListenerCalled, true);
91+
equal(element.removeListenerCalled, false);
8192
});
8293

83-
element.emit('someEvent', 42);
84-
equal(element.addListenerCalled, true);
85-
equal(element.removeListenerCalled, false);
94+
this.scheduler.scheduleFuture(null, 220, function() {
95+
element.emit('someEvent', 42);
96+
});
8697

87-
d.dispose();
98+
var result = this.scheduler.startScheduler(function() {
99+
return Observable.fromEvent(element, 'someEvent');
100+
});
88101

102+
result.messages.assertEqual(onNext(220, 42));
89103
equal(element.removeListenerCalled, true);
90104
});
91105

92106
test('Event_4', function () {
107+
var scheduler = new Rx.TestScheduler();
93108
var element = new FakeDOMStandardElement('foo');
94109

95-
var d = Observable.fromEvent(
96-
element,
97-
'someEvent',
98-
function (baz, quux) {
99-
return { foo: baz, bar: quux };
100-
}
101-
)
102-
.subscribe(function (x) {
103-
equal(x.foo, 'baz');
104-
equal(x.bar, 'quux');
110+
scheduler.scheduleFuture(null, 210, function() {
111+
equal(element.addEventListenerCalled, true);
112+
equal(element.removeEventListenerCalled, false);
105113
});
106114

107-
element.trigger('someEvent', 'baz', 'quux');
108-
equal(element.addEventListenerCalled, true);
109-
equal(element.removeEventListenerCalled, false);
115+
scheduler.scheduleFuture(null, 220, function() {
116+
element.trigger('someEvent', 'baz', 'quux');
117+
});
110118

111-
d.dispose();
119+
var result = scheduler.startScheduler(function() {
120+
return Observable.fromEvent(
121+
element,
122+
'someEvent',
123+
function (baz, quux) {
124+
return { foo: baz, bar: quux };
125+
}
126+
);
127+
});
128+
129+
result.messages.assertEqual(
130+
onNext(220, function(x) {
131+
equal(x.value.foo, 'baz');
132+
equal(x.value.bar, 'quux');
133+
return true;
134+
})
135+
);
112136

113137
equal(element.removeEventListenerCalled, true);
114138
});
@@ -141,40 +165,55 @@
141165
test('Event_5', function () {
142166
var element = new FakeJQueryElement('foo');
143167

144-
var d = Observable.fromEvent(element, 'someEvent')
145-
.subscribe(function (x) {
146-
equal(x, 42);
168+
this.scheduler.scheduleFuture(null, 210, function() {
169+
equal(element.onCalled, true);
170+
equal(element.offCalled, false);
171+
});
172+
173+
this.scheduler.scheduleFuture(null, 220, function() {
174+
element.trigger('someEvent', 42);
147175
});
148176

149-
element.trigger('someEvent', 42);
150-
equal(element.onCalled, true);
151-
equal(element.offCalled, false);
177+
var result = this.scheduler.startScheduler(function() {
178+
return Observable.fromEvent(element, 'someEvent');
179+
});
152180

153-
d.dispose();
181+
result.messages.assertEqual(
182+
onNext(220, 42)
183+
);
154184

155185
equal(element.offCalled, true);
156186
});
157187

158188
test('Event_6', function () {
159189
var element = new FakeJQueryElement('foo');
160190

161-
var d = Observable.fromEvent(
162-
element,
163-
'someEvent',
164-
function (baz, quux) {
165-
return { foo: baz, bar: quux };
166-
}
167-
)
168-
.subscribe(function (x) {
169-
equal(x.foo, 'baz');
170-
equal(x.bar, 'quux');
191+
this.scheduler.scheduleFuture(null, 210, function() {
192+
element.trigger('someEvent', 'baz', 'quux');
171193
});
172194

173-
element.trigger('someEvent', 'baz', 'quux');
174-
equal(element.onCalled, true);
175-
equal(element.offCalled, false);
195+
this.scheduler.scheduleFuture(null, 220, function(){
196+
equal(element.onCalled, true);
197+
equal(element.offCalled, false);
198+
});
199+
200+
var result = this.scheduler.startScheduler(function(){
201+
return Observable.fromEvent(
202+
element,
203+
'someEvent',
204+
function (baz, quux) {
205+
return { foo: baz, bar: quux };
206+
}
207+
);
208+
});
176209

177-
d.dispose();
210+
result.messages.assertEqual(
211+
onNext(210, function(x) {
212+
equal(x.value.foo, 'baz');
213+
equal(x.value.bar, 'quux');
214+
return true;
215+
})
216+
);
178217

179218
equal(element.offCalled, true);
180219
});

0 commit comments

Comments
 (0)