datasource-local-tests.js revision d08a2495e1fbc0cf1435767148ec01129af3bcd6
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas PhilippeYUI.add('datasource-local-tests', function(Y) {
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippevar Assert = Y.Assert,
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe ArrayAssert = Y.ArrayAssert,
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe suite = new Y.Test.Suite("DataSource.Local Test Suite");
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippesuite.add(new Y.Test.Case({
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe name: "DataSource.Local Tests",
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe testConstructor: function() {
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe var ds = new Y.DataSource.Local();
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe Assert.isInstanceOf(Y.Base, ds, "Expected DataSource.Base instance.");
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe Assert.isInstanceOf(Y.DataSource.Local, ds, "Expected DataSource.Local instance.");
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe },
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe testLocalDefaults: function() {
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe var data = ["a","b","c","d"],
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe ds = new Y.DataSource.Local({ source: data }),
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe request = null,
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe received;
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe ds.sendRequest({
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe callback: {
3ee0383ad6381d9b18fb94cf251068f5031ba480Laurent Bristiel success: function (e) {
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe request = e.request;
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe received = e.response.results;
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe }
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe }
3ee0383ad6381d9b18fb94cf251068f5031ba480Laurent Bristiel });
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe Assert.isUndefined(request);
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe ArrayAssert.itemsAreSame(data, received);
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe },
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe testLocalEvents: function() {
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe var ds = new Y.DataSource.Local({ source: ["a","b","c","d"] }),
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe requestCallback, dataCallback, responseCallback;
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe ds.on("request", function (e) {
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe Assert.isNumber(e.tId, "request: Expected transaction ID.");
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe Assert.areSame("a", e.request, "request: Expected request.");
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe Assert.areSame("callback", e.callback, "request: Expected callback.");
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe requestCallback = true;
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe });
3ee0383ad6381d9b18fb94cf251068f5031ba480Laurent Bristiel
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe ds.on("data", function (e) {
3ee0383ad6381d9b18fb94cf251068f5031ba480Laurent Bristiel Assert.isNumber(e.tId, "data: Expected transaction ID.");
3ee0383ad6381d9b18fb94cf251068f5031ba480Laurent Bristiel Assert.areSame("a", e.request, "data: Expected request.");
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe Assert.areSame("callback", e.callback, "data: Expected callback.");
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe Assert.isArray(e.data, "data: Expected raw data.");
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe dataCallback = true;
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe });
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe ds.on("response", function (e) {
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe Assert.isNumber(e.tId, "response: Expected transaction ID.");
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe Assert.areSame("a", e.request, "response: Expected request.");
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe Assert.areSame("callback", e.callback, "response: Expected callback.");
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe Assert.isArray(e.data, "response: Expected raw data.");
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe Assert.isObject(e.response, "response: Expected normalized response object.");
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe Assert.isArray(e.response.results, "response: Expected parsed results.");
3ee0383ad6381d9b18fb94cf251068f5031ba480Laurent Bristiel Assert.isObject(e.response.meta, "response: Expected parsed meta data.");
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe responseCallback = true;
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe });
c47e9248564b807eca4362bb0e9c4997101a16e9Nicolas Philippe
3ee0383ad6381d9b18fb94cf251068f5031ba480Laurent Bristiel ds.sendRequest({
c2a1ba49d48529d09c5492a45d72eea3c64f8310Nicolas Philippe request: "a",
callback: "callback"
});
Assert.isTrue(requestCallback);
Assert.isTrue(dataCallback);
Assert.isTrue(responseCallback);
},
testLocalError: function() {
var ds = new Y.DataSource.Local({ source: ["a","b","c","d"] }),
errorCallback;
ds.on("error", function (e) {
Assert.isNumber(e.tId, "error: Expected transaction ID.");
Assert.areSame("a", e.request, "error: Expected request.");
Assert.areSame("callback", e.callback, "error: Expected callback.");
Assert.isObject(e.response, "error: Expected normalized response object.");
Assert.isObject(e.error, "error: Expected error.");
errorCallback = true;
});
ds.set("source", undefined);
ds.sendRequest({
request: "a",
callback: "callback"
});
Assert.isTrue(errorCallback)
}
}));
Y.Test.Runner.add(suite);
}, '@VERSION@' ,{requires:['datasource-local', 'test']});