/** * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @fileoverview MakeRequest tests. */ function MakeRequestSuite() { this.name = 'MakeRequest Test Suite'; this.id = 'MKR'; this.tests = [ { name: 'makeRequest() - html, default', id : 'MKRT001', description: 'Tests if the makeRequest() can fetch an html file from ' + 'remote content .', run: function(context, callback, result) { gadgets.io.makeRequest( Config.contentPath + 'suites/0.7/makerequest/content/htmlsample.html', function(dataObject) { var expected = 'sample'; Assert.assertDataContent(dataObject, gadgets.io.ContentType.TEXT, result, expected); callback(result); }); } }, { name: 'makeRequest() - xml, default', id : 'MKRT002', description: 'Tests if the makeRequest() can fetch an xml file from ' + 'remote content and check the data content.', run: function(context, callback, result) { gadgets.io.makeRequest( Config.contentPath + 'suites/0.7/makerequest/content/xmlsample.xml', function(dataObject) { var expected = 'xmlsample'; Assert.assertDataContent(dataObject, gadgets.io.ContentType.TEXT, result, expected); callback(result); }, {}); } }, // makeRequest for html file with ContentType DOM // doesn't return a DOM object // bugid : 1017755 { name: 'makeRequest() - xml - DOM contentType', id : 'MKRT014', description: 'Tests if the makeRequest() can fetch an html file with ' + 'DOM as content type and check if the returned data' + 'content is DOM.', run: function(context, callback, result) { var params = {}; params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.DOM; gadgets.io.makeRequest( Config.contentPath + 'suites/0.7/makerequest/content/xmlsample.xml', function(dataObject) { var textExpected = 'xmlsample'; var textContentExpected = 'xmlsample'; Assert.assertDataContent(dataObject, gadgets.io.ContentType.DOM, result, textExpected, textContentExpected); callback(result); }, params); } }, { name: 'makeRequest() - xml - DOM contentType with ?xml tag', id : 'MKRT018', description: 'Tests if makeRequest() can fetch an xml file with ' + 'content type as DOM. Also checks for the returned' + 'content type to be DOM', run: function(context, callback, result) { var params = {}; params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.DOM; gadgets.io.makeRequest( Config.contentPath + 'suites/0.7/makerequest/content/xmlsample2.xml', function(dataObject) { var textExpected = '\n' + '\n John\n'; var textContentExpected = 'John'; Assert.assertDataContent(dataObject, gadgets.io.ContentType.DOM, result, textExpected, textContentExpected); callback(result); }, params); } }, { name: 'makeRequest() - txt - JSON contentType', id : 'MKRT015', description: 'Tests if makeRequest() can fetch an txt file with ' + 'content type as JSON. Also checks for the returned data' + 'content type to be JSON', run: function(context, callback, result) { var params = {}; params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON; gadgets.io.makeRequest( Config.contentPath + 'suites/0.7/makerequest/content/jsonexample.txt', function(dataObject) { var jsonObject = {'widget':{'debug':'on', 'window':{'title':'Sample Konfabulator Widget','height':500}, 'image':{'src':'Images/Sun.png','alignment':'center'}}}; Assert.assertDataContent(dataObject, gadgets.io.ContentType.JSON, result, gadgets.json.stringify(jsonObject)); callback(result); }, params); } }, { name: 'makeRequest() - feed, default Atom', id : 'MKRT003', description: 'Tests if makeRequest() can fetch a feed with format ' + 'as atom. Also checks for the returned data content ' + 'type to be FEED', queue: 7, bugs: ['1015442'], run: function(context, callback, result) { var params = {}; params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.FEED; gadgets.io.makeRequest(Config.contentPath + 'suites/0.7/makerequest/content/atomfeedsample.xml', function(dataObject) { Assert.assertDataContent(dataObject, gadgets.io.ContentType.FEED, result); // var subtest = new ResultValidation('makeRequest math with title'); // var expected = 'Example Feed'; // subtest.setResult( // Assert.assertEquals(data.text.match(expected), expected), // data.text.match(expected), expected); // result.add(subtest); // // var subtest2 = new ResultValidation('makeRequest match with row3'); // var expected2 = 'Row3'; // subtest2.setResult( // Assert.assertEquals(data.text.match(expected2), expected2), // data.text.match(expected2), expected2); // result.add(subtest2); callback(result); }, params); } }, { name: 'makeRequest() - feed, default RSS', id : 'MKRT012', description: 'Tests if makeRequest() can fetch a feed with rss format. ' + 'Also checks for the returned data content type to be FEED', bugs: ['1015442'], queue: 8, run: function(context, callback, result) { var params = {}; params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.FEED; gadgets.io.makeRequest(Config.contentPath + 'suites/0.7/makerequest/content/rssfeedsample.xml', function(dataObject) { Assert.assertDataContent(dataObject, gadgets.io.ContentType.FEED, result); callback(result); }, params); } }, { name: 'makeRequest() - html, POST with postData', id : 'MKRT004', description: 'Tests if makeRequest() can fetch an html file by using ' + 'POST method with some data to be posted. Checks for the ' + 'returned data content type to be text file.', run: function(context, callback, result) { var params = {}; params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.TEXT; params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST; params[gadgets.io.RequestParameters.POST_DATA] = 'value1'; gadgets.io.makeRequest(Config.contentPath + 'suites/0.7/makerequest/content/htmlsample.html', function(data) { var expected = 'sample'; Assert.assertDataContent(data, gadgets.io.ContentType.TEXT, result, expected); callback(result); }, params); } }, { name: 'makeRequest() - feed, POST with postData, entries, summaries', id : 'MKRT005', description: 'Tests if makeRequest() can fetch a feed using POST method' + 'with some data to be posted and to fetch data with ' + 'number of entries and summary. Checks for the returned ' + 'data content type to be a FEED.', bugs: ['1015442'], queue: 9, run: function(context, callback, result) { var params = {}; params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.FEED; params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST; params[gadgets.io.RequestParameters.NUM_ENTRIES] = 5; params[gadgets.io.RequestParameters.GET_SUMMARIES] = true; params[gadgets.io.RequestParameters.POST_DATA] = 'value1'; gadgets.io.makeRequest(Config.contentPath + 'suites/0.7/makerequest/content/atomfeedsample.xml', function(data) { Assert.assertDataContent(data, gadgets.io.ContentType.FEED, result); // var subtest = new ResultValidation('matching title'); // var expected = 'Example Feed'; // subtest.setResult( // Assert.assertEquals(data.text.match(expected), expected), // data.text.match(expected), expected); // result.add(subtest); // // var subtest2 = new ResultValidation('match with entry 3'); // var expected2 = 'Row4'; // subtest2.setResult( // Assert.assertEquals(data.text.match(expected2), expected2), // data.text.match(expected2), expected2); // result.add(subtest2); // // var subtest3 = new ResultValidation('match with summary'); // var expected3 = 'Summary4'; // subtest3.setResult( // Assert.assertEquals(data.text.match(expected3), expected3), // data.text.match(expected3), expected3); // result.add(subtest3); callback(result); }, params); } }, { name: 'makeRequest() - xml, POST with postData', id : 'MKRT006', description: 'Tests if makeRequest() can fetch an xml file using POST ' + 'method with some data to be posted.Checks for the ' + 'returned data content type to be a DOM.', run: function(context, callback, result) { var params = {}; params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.DOM; params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST; params[gadgets.io.RequestParameters.POST_DATA] = 'value1'; gadgets.io.makeRequest(Config.contentPath + 'suites/0.7/makerequest/content/xmlsample.xml', function(dataObject) { var textExpected = 'xmlsample'; var textContentExpected = 'xmlsample'; Assert.assertDataContent(dataObject, gadgets.io.ContentType.DOM, result, textExpected, textContentExpected); callback(result); }, params); } }, { name: 'makeRequest() - xml, POST with no postData)', id : 'MKRT007', description: 'Tests if makeRequest() can fetch an xml file using POST ' + 'method without any data to be posted.Checks for the ' + 'returned data content type to be a DOM.', run: function(context, callback, result) { var params = {}; params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.DOM; params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST; gadgets.io.makeRequest(Config.contentPath + 'suites/0.7/makerequest/content/xmlsample.xml', function(dataObject) { var textExpected = 'xmlsample'; var textContentExpected = 'xmlsample'; Assert.assertDataContent(dataObject, gadgets.io.ContentType.DOM, result, textExpected, textContentExpected); callback(result); }, params); } }, { name: 'makeRequest() - html, POST with no postData', id : 'MKRT008', description: 'Tests if makeRequest() can fetch an html file using POST ' + 'method with some data to be posted. Checks for the ' + 'returned data content type to be a TEXT.', run: function(context, callback, result) { var params = {}; params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST; gadgets.io.makeRequest(Config.contentPath + 'suites/0.7/makerequest/content/htmlsample.html', function(data) { var expected = 'sample'; Assert.assertDataContent(data, gadgets.io.ContentType.TEXT, result, expected); callback(result); }, params); } }, { name: 'makeRequest() - txt file with html extension, GET, default', id : 'MKRT009', description: 'Tests if makeRequest() can fetch a txt file using GET ' + 'method. Checks for the returned data content type ' + 'to be a TEXT.', run: function(context, callback, result) { var params = {}; params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.GET; gadgets.io.makeRequest( Config.contentPath + 'suites/0.7/makerequest/content/txtsample.html', function(data) { var expected = 'text'; Assert.assertDataContent(data, gadgets.io.ContentType.TEXT, result, expected); callback(result); }, params); } }, { name: 'makeRequest() - txt file with csv extension, GET, default', id : 'MKRT010', description: 'Tests if makeRequest() can fetch a txt file with csv extn' + 'and using GET method. Checks for the returned data ' + 'content type to be a TEXT.', run: function(context, callback, result) { var params = {}; params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.GET; gadgets.io.makeRequest( Config.contentPath + 'suites/0.7/makerequest/content/txtsample.csv', function(data) { var expected = 'text'; Assert.assertDataContent(data, gadgets.io.ContentType.TEXT, result, expected); callback(result); }, params); } }, { name: 'makeRequest() - feed, no Postdata, 4 entries & no summaries', id : 'MKRT011', description: 'Tests if makeRequest() can fetch a feed using POST ' + 'without any post data and with 4 entries and without ' + 'the summary. Checks for the returned data ' + 'content type to be a FEED.', bugs: ['1015442'], queue: 10, run: function(context, callback, result) { var params = {}; params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.FEED; params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST; params[gadgets.io.RequestParameters.GET_SUMMARIES] = false; params[gadgets.io.RequestParameters.NUM_ENTRIES] = 4; gadgets.io.makeRequest(Config.contentPath + 'suites/0.7/makerequest/' + 'content/atomfeedsample.xml', function(data) { Assert.assertDataContent(data, gadgets.io.ContentType.FEED, result); // var subtest1 = new ResultValidation('Summary must not exist'); // var expected1 = 'Summary1'; // subtest1.setResult( // Assert.assertNotEquals(data.text.match(expected1), expected1), // data.text.match(expected1), 'Summary1 should not exist'); // result.add(subtest1); // // var subtest2 = new ResultValidation('entry 5 must not exist'); // var expected2 = 'Row5'; // subtest2.setResult( // Assert.assertNotEquals(data.text.match(expected2), expected2), // data.text.match(expected2), 'Row5 should not exist'); // result.add(subtest2); callback(result); }, params); } }, { name: 'makeRequest() - html, non-existent URL should return 404 error', id : 'MKRT013', description: 'Tests if makeRequest() can fetch an html file with non ' + 'existing URL. Checks if the method returns 404 error.', bugs:['1008132'], run: function(context, callback, result) { try { gadgets.io.makeRequest( Config.contentPath + 'suites/0.7/makerequest/content/nonexistent.html', function(dataOutput) { Helper.addSubResult(result, 'Data Response: ', Assert.assertTrue, dataOutput, 'Not null'); callback(result); }, {}); } catch (ex) { Helper.addSubResult( result, 'Exception occured: ', Assert.fail, ex.toString(), 'No exception'); callback(result); } } }, // When Passing invalid content types such as html the xml will // simply be ignored // bugid : 1015480 { name: 'makeRequest() - php, SIGNED', id : 'SMKRT001', description: 'Tests if makeRequest() can fetch a php file with a ' + 'signed request. ', run: function(context, callback, result) { var params = {}; params[gadgets.io.RequestParameters.AUTHORIZATION] = gadgets.io.AuthorizationType.SIGNED; params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON; gadgets.io.makeRequest(Config.contentPath + 'suites/0.7/makerequest/content/signed.php', function(dataObject) { var data = dataObject.data; Helper.addSubResult(result, 'field: validated', Assert.assertEquals, data.validated, 'success'); Helper.addSubResult(result, 'field: query.opensocial_owner_id', Assert.assertNotEmpty, data.query.opensocial_owner_id, 'not empty'); Helper.addSubResult(result, 'field: query.opensocial_app_url', Assert.assertNotEmpty, data.query.opensocial_app_url, 'not empty'); Helper.addUnsevereSubResult(result, 'field: query.opensocial_viewer_id', Assert.assertNotEmpty, data.query.opensocial_viewer_id, 'not empty'); Helper.addUnsevereSubResult(result, 'field: query.opensocial_app_id', Assert.assertNotEmpty, data.query.opensocial_app_id, 'not empty'); Helper.addUnsevereSubResult(result, 'field: query.oauth_consumer_key', Assert.assertNotEmpty, data.query.oauth_consumer_key, 'not empty'); Helper.addUnsevereSubResult(result, 'field: query.xoauth_signature_publickey', Assert.assertStringContains, data.query.xoauth_signature_publickey, '.cer'); callback(result); }, params); } } ] };