1
YUI.add('datasource-get-tests', function(Y) {
5
suite = new Y.Test.Suite("DataSource.Get Test Suite"),
16
suite.add(new Y.Test.Case({
17
name: "DataSource.Get Tests",
19
testGetDefaults: function() {
20
var ds = new Y.DataSource.Get({
21
source: "http://query.yahooapis.com/v1/public/yql?format=json&",
23
script: function (uri, config) {
24
var fn = uri.match(/callback=YUI\.Env\.DataSource\.callbacks\.([^&]*)/)[1];
25
YUI.Env.DataSource.callbacks[fn](jsonData);
29
request, response, tId, data, callback;
32
request: "q=select%20*%20from%20search.web%20where%20query%3D%22pizza%22",
34
success: function (e) {
36
response = e.response;
39
callback = e.callback;
44
Assert.areSame("q=select%20*%20from%20search.web%20where%20query%3D%22pizza%22", request, "Expected same request.");
45
Assert.isObject(response, "Expected response object.");
46
Assert.isNotUndefined(tId);
47
Assert.isNotUndefined(data);
48
Assert.isNotUndefined(callback);
51
testGetEvents: function() {
52
var ds = new Y.DataSource.Get({
53
source: "http://query.yahooapis.com/v1/public/yql?format=json&",
55
script: function (uri, config) {
56
var fn = uri.match(/callback=YUI\.Env\.DataSource\.callbacks\.([^&]*)/)[1];
57
YUI.Env.DataSource.callbacks[fn](jsonData);
61
requestCallback, dataCallback, responseCallback;
63
ds.plug(Y.Plugin.DataSourceJSONSchema, {
65
resultListLocator: "query.results.result",
66
resultFields: ["title"]
70
ds.on("request", function (e) {
71
Assert.areSame("dataSourceGet:request", e.type);
72
Assert.isNumber(e.tId, "request: Expected transaction ID.");
73
Assert.areSame("q=select%20*%20from%20search.web%20where%20query%3D%22pizza%22", e.request, "Expected same request.");
74
Assert.areSame("callback", e.callback, "request: Expected callback.");
75
requestCallback = true;
78
ds.on("data", function (e) {
79
Assert.areSame("dataSourceGet:data", e.type);
80
Assert.isNumber(e.tId, "data: Expected transaction ID.");
81
Assert.areSame("q=select%20*%20from%20search.web%20where%20query%3D%22pizza%22", e.request, "Expected same request.");
82
Assert.areSame("callback", e.callback, "data: Expected callback.");
83
Assert.isObject(e.data, "data: Expected raw data.");
87
ds.on("response", function (e) {
88
Assert.areSame("dataSourceGet:response", e.type);
89
Assert.isNumber(e.tId, "response: Expected transaction ID.");
90
Assert.areSame("q=select%20*%20from%20search.web%20where%20query%3D%22pizza%22", e.request, "Expected same request.");
91
Assert.areSame("callback", e.callback, "response: Expected callback.");
92
Assert.isObject(e.data, "response: Expected raw data.");
93
Assert.isObject(e.response, "response: Expected normalized response object.");
94
Assert.isArray(e.response.results, "response: Expected parsed results.");
95
Assert.isObject(e.response.meta, "response: Expected parsed meta data.");
96
responseCallback = true;
100
request: "q=select%20*%20from%20search.web%20where%20query%3D%22pizza%22",
104
Assert.isTrue(requestCallback);
105
Assert.isTrue(dataCallback);
106
Assert.isTrue(responseCallback);
109
testGetError: function () {
110
var ds = new Y.DataSource.Get({
111
source: "http://query.yahooapis.com/v1/public/yql?format=json&",
113
script: function (uri, config) {
114
config.onFailure({ msg: "Planned failure" });
120
ds.plug(Y.Plugin.DataSourceJSONSchema, {
122
resultListLocator: "query.results.result",
123
resultFields: ["title"]
127
ds.on("error", function (e) {
128
Assert.areSame("dataSourceGet:error", e.type);
129
Assert.isNumber(e.tId, "error: Expected transaction ID.");
130
Assert.areSame("a", e.request, "error: Expected request.");
131
Assert.areSame("callback", e.callback, "error: Expected callback.");
132
Assert.isUndefined(e.data, "error: Expected undefined data.");
133
Assert.isObject(e.response, "error: Expected normalized response object.");
134
Assert.isObject(e.error, "error: Expected error.");
135
errorCallback = true;
138
ds.set("source", "foo");
144
Assert.isTrue(errorCallback);
148
Y.Test.Runner.add(suite);
151
}, '@VERSION@' ,{requires:['datasource-get', 'test']});