Cross Reference: /yui3/src/datasource/tests/datasource-io-tests.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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke SmithYUI.add('datasource-io-tests', function(Y) {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smithvar Assert = Y.Assert,
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith ObjectAssert = Y.ObjectAssert,
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith suite = new Y.Test.Suite("DataSource.IO Test Suite"),
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith jsonData = '{"ResultSet":{"Result":[{"Title":"Madonna"}]}}';
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smithsuite.add(new Y.Test.Case({
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith name: "DataSource.IO Tests",
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith testConstructorIO: function() {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith var ds = new Y.DataSource.IO();
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isInstanceOf(Y.Base, ds, "Expected Base instance.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isInstanceOf(Y.DataSource.Local, ds, "Expected DataSource.Local instance.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isInstanceOf(Y.DataSource.IO, ds, "Expected DataSource.IO instance.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith },
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith testIODefaults: function() {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith var ds = new Y.DataSource.IO({
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith source: "./php/ysearch_json_madonna.php",
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith io: function (uri, config) {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith var id = Y.guid();
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith config.on.success.call(ds, id, {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith responseText: jsonData
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith }, config["arguments"]);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith return id;
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith }
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith }),
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith request, response, tId, data, callback;
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith ds.sendRequest({
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith request: null,
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith callback: {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith success: function (e) {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith request = e.request;
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith response = e.response;
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith tId = e.tId;
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith data = e.data;
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith callback = e.callback;
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith }
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith }
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith });
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isNull(request, "Expected null request.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isObject(response, "Expected response object.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isNotUndefined(tId);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isNotUndefined(data);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isNotUndefined(callback);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith },
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith testIOConfig: function() {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith var ioCallback, failureCallback,
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith ds = new Y.DataSource.IO({
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith source: "x",
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith ioConfig: {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith method: "POST",
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith data: "foo=bar",
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith timeout: 1
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith },
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith io: function (uri, config) {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith var id = Y.guid();
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.areSame(1, config.timeout);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.areSame(ds, config.context);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.areSame("foo=bar", config.data);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.areSame("POST", config.method);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith ioCallback = true;
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith config.on.failure.call(config.context, id, {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith responseText: jsonData
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith }, config["arguments"]);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith }
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith });
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith ds.sendRequest({
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith request: null,
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith callback: {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith failure: function (e) {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isObject(e.error, "Expected error from timeout.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isNull(e.request, "Expected null request.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isObject(e.response, "Expected response object.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith ObjectAssert.ownsKeys({
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith tId: null,
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith request: null,
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith data: null,
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith response: null,
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith callback: null
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith }, e, "Expected all properties.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith failureCallback = true;
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith }
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith }
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith });
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isTrue(ioCallback);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isTrue(failureCallback);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith },
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith testIOPost: function() {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith var ioCallback, successCallback,
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith ds = new Y.DataSource.IO({
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith source: "./php/ysearch_json_madonna.php",
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith io: function (uri, config) {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith var id = Y.guid();
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.areSame(ds, config.context);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.areSame("foo=bar", config.data);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.areSame("POST", config.method);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith ioCallback = true;
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith config.on.success.call(config.context, id, {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith responseText: jsonData
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith }, config["arguments"]);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith }
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith });
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith ds.sendRequest({
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith callback: {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith success: function (e) {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isUndefined(e.request, "Expected undefined request.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isObject(e.response, "Expected response object.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith ObjectAssert.ownsKeys({
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith tId: null,
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith request: null,
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith data: null,
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith response: null,
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith callback: null
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith }, e, "Expected all properties.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith successCallback = true;
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith }
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith },
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith cfg: {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith method: "POST",
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith data: "foo=bar"
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith }
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith });
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isTrue(ioCallback);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isTrue(successCallback);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith },
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith testIOEvents: function() {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith var ioCallback, requestCallback, dataCallback, responseCallback,
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith ds = new Y.DataSource.IO({
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith source: "./php/ysearch_json_madonna.php",
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith io: function (uri, config) {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith var id = Y.guid();
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith ioCallback = true;
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith config.on.success.call(config.context, id, {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith responseText: jsonData
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith }, config["arguments"]);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith }
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith });
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith ds.plug(Y.Plugin.DataSourceJSONSchema, {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith schema: {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith resultListLocator: "ResultSet.Result",
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith resultFields: ["Title"]
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith }
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith });
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith ds.on("request", function (e) {
2fe13ddab136a6eb6239d89e5e064e09d9e1bb92Luke Smith Assert.areSame("dataSourceIO:request", e.type);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isNumber(e.tId, "request: Expected transaction ID.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isUndefined(e.request, "request: Expected undefined request.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.areSame("callback", e.callback, "request: Expected callback.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith requestCallback = true;
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith });
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith ds.on("data", function (e) {
2fe13ddab136a6eb6239d89e5e064e09d9e1bb92Luke Smith Assert.areSame("dataSourceIO:data", e.type);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isNumber(e.tId, "data: Expected transaction ID.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isUndefined(e.request, "data: Expected undefined request.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.areSame("callback", e.callback, "data: Expected callback.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isObject(e.data, "data: Expected raw data.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith dataCallback = true;
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith });
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith ds.on("response", function (e) {
2fe13ddab136a6eb6239d89e5e064e09d9e1bb92Luke Smith Assert.areSame("dataSourceIO:response", e.type);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isNumber(e.tId, "response: Expected transaction ID.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isUndefined(e.request, "response: Expected undefined request.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.areSame("callback", e.callback, "response: Expected callback.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isObject(e.data, "response: Expected raw data.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isObject(e.response, "response: Expected normalized response object.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isArray(e.response.results, "response: Expected parsed results.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isObject(e.response.meta, "response: Expected parsed meta data.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith responseCallback = true;
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith });
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith ds.sendRequest({
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith callback: "callback"
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith });
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isTrue(ioCallback);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isTrue(requestCallback);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isTrue(dataCallback);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isTrue(responseCallback);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith },
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith testIOError: function() {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith var ds = new Y.DataSource.IO({
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith source: "./php/ysearch_json_madonna.php",
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith io: function (uri, config) {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith var id = Y.guid();
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith config.on.failure.call(config.context, id, {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith responseText: jsonData
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith }, config["arguments"]);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith }
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith }),
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith errorCallback;
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith ds.plug(Y.Plugin.DataSourceJSONSchema, {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith schema: {
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith resultListLocator: "ResultSet.Result",
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith resultFields: ["Title"]
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith }
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith });
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith ds.on("error", function (e) {
2fe13ddab136a6eb6239d89e5e064e09d9e1bb92Luke Smith Assert.areSame("dataSourceIO:error", e.type);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isNumber(e.tId, "error: Expected transaction ID.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.areSame("a", e.request, "error: Expected request.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.areSame("callback", e.callback, "error: Expected callback.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isObject(e.data, "error: Expected raw data.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isObject(e.response, "error: Expected normalized response object.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isObject(e.error, "error: Expected error.");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith errorCallback = true;
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith });
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith ds.set("source", "foo");
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith ds.sendRequest({
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith request: "a",
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith callback: "callback"
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith });
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith Assert.isTrue(errorCallback);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith }
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith}));
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke SmithY.Test.Runner.add(suite);
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith
d08a2495e1fbc0cf1435767148ec01129af3bcd6Luke Smith}, '@VERSION@' ,{requires:['datasource-io', 'test']});