This repository has been archived by the owner on Apr 20, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
/
Copy pathfromcallback.js
117 lines (98 loc) · 2.01 KB
/
fromcallback.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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
(function () {
/* jshint undef: true, unused: true */
/* globals QUnit, test, Rx, equal, ok */
QUnit.module('fromCallback');
var Observable = Rx.Observable;
test('fromCallback', function () {
var res = Observable.fromCallback(function (cb) {
cb(true);
})();
res.subscribe(
function (r) {
equal(r, true);
},
function () {
ok(false);
},
function () {
ok(true);
});
});
test('fromCallback single argument', function () {
var res = Observable.fromCallback(function (file, cb) {
cb(file);
})('file.txt');
res.subscribe(
function (r) {
equal(r, 'file.txt');
},
function () {
ok(false);
},
function () {
ok(true);
});
});
test('fromCallback selector', function () {
var res = Observable.fromCallback(
function (f,s,t,cb) {
cb(f,s,t);
},
null,
function (f) {
return f;
})(1,2,3);
res.subscribe(
function (r) {
equal(r, 1);
},
function () {
ok(false);
},
function () {
ok(true);
});
});
test('fromCallback context', function () {
var res = Observable.fromCallback(
function (cb) {
equal(this, 42);
cb(true);
},
42)();
res.subscribe(
function () {
ok(true);
},
function () {
ok(false);
},
function () {
ok(true);
});
});
test('fromCallback resubscribe', function() {
var count = 0;
var res = Observable.fromCallback(
function(cb) {
cb(++count);
})();
var observer = Rx.Observer.create(
function () {
ok(1);
}, function () {
ok(false);
}, function () {
ok(true);
});
res.subscribe(observer);
res.subscribe(function () {
ok(1);
}, function () {
ok(false);
}, function () {
ok(true);
});
equal(1, count);
});
}());