http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/4621d41c/JSLib/tests/odata-read-functional-tests.js ---------------------------------------------------------------------- diff --git a/JSLib/tests/odata-read-functional-tests.js b/JSLib/tests/odata-read-functional-tests.js deleted file mode 100644 index 8a58b15..0000000 --- a/JSLib/tests/odata-read-functional-tests.js +++ /dev/null @@ -1,583 +0,0 @@ -/// <reference path="common/djstest.js" /> -/// <reference path="../src/odata.js" /> -/// <reference path="common/ODataReadOracle.js" /> - -(function (window, undefined) { - OData.defaultHandler.accept = "application/json;q=0.9, application/atomsvc+xml;q=0.8, */*;q=0.1"; - var unexpectedErrorHandler = function (err) { - djstest.assert(false, "Unexpected call to error handler with error: " + djstest.toString(err)); - djstest.done(); - }; - - // to do: enable the Atom/XML senario - var validServiceDocumentAcceptHeaders = [ - "*/*", - //"application/xml", - "application/json", - undefined - ]; - - var validMetadataAcceptHeaders = [ - "*/*", - "application/xml", - undefined - ]; - - var invalidServiceDocumentAcceptHeaders = [ - "application/atom+xml" - ]; - - var invalidMetadataAcceptHeaders = [ - "application/atom+xml", - "application/json" - ]; - - var handlerAcceptStrings = [ - "*/*", - // "application/atom+xml", - "application/json", - undefined - ]; - - var httpStatusCode = { - notFound: 404, - badRequest: 400, - unsupportedMediaType: 415 - }; - - var service = "./endpoints/FoodStoreDataServiceV4.svc/"; - var epmService = "./endpoints/EpmDataService.svc/"; - var feed = service + "Foods"; - var categoriesFeed = service + "Categories"; - - var expectedErrorMessage = "HTTP request failed"; - - module("Functional", { - setup: function () { - djstest.wait(function (done) { - $.post(service + "ResetData", done); - }); - OData.jsonHandler.recognizeDates = false; - } - }); - - for (var i = 0; i < handlerAcceptStrings.length; i++) { - - djstest.addTest(function readFullFeedTest(handlerAccept) { - djstest.assertsExpected(1); - odatajs.oData.read({ requestUri: feed, headers: { Accept: handlerAccept} }, - function (data, response) { - window.ODataReadOracle.readFeed(feed, - function (expectedData) { - djstest.assertAreEqualDeep(data, expectedData, "Response data not same as expected"); - djstest.done(); - }, handlerAccept - ); - }, - unexpectedErrorHandler - ); - }, "Testing valid read of full feed collection with " + handlerAcceptStrings[i], handlerAcceptStrings[i]); - - djstest.addTest(function readMaxAndNullValueEntryTest(handlerAccept) { - var endPoint = feed + "(0)"; - djstest.assertsExpected(1); - odatajs.oData.read({ requestUri: endPoint, headers: { Accept: handlerAccept} }, - function (data, response) { - window.ODataReadOracle.readEntry(endPoint, - function (expectedData) { - djstest.assertAreEqualDeep(data, expectedData, "Response data not same as expected"); - djstest.done(); - }, handlerAccept - ); - }, - unexpectedErrorHandler - ); - }, "Testing valid read of entry with max numbers, complex types, and null and empty strings " + handlerAcceptStrings[i], handlerAcceptStrings[i]); - - djstest.addTest(function readMinAndZeroValueEntryTest(handlerAccept) { - var endPoint = feed + "(1)"; - djstest.assertsExpected(1); - odatajs.oData.read({ requestUri: "./endpoints/FoodStoreDataServiceV4.svc/Foods(1)", headers: { Accept: handlerAccept} }, - function (data, response) { - window.ODataReadOracle.readEntry(endPoint, - function (expectedData) { - djstest.assertAreEqualDeep(data, expectedData, "Response data not same as expected"); - djstest.done(); - }, handlerAccept - ); - }, - unexpectedErrorHandler); - }, "Testing valid read of minimum and zero values " + handlerAcceptStrings[i], handlerAcceptStrings[i]); - - djstest.addTest(function readNullNestedComplexTypeEntryTest(handlerAccept) { - var endPoint = feed + "(2)"; - djstest.assertsExpected(1); - odatajs.oData.read({ requestUri: endPoint, headers: { Accept: handlerAccept} }, - function (data, response) { - window.ODataReadOracle.readEntry(endPoint, - function (expectedData) { - djstest.assertAreEqualDeep(data, expectedData, "Response data not same as expected"); - djstest.done(); - }, handlerAccept - ); - }, - unexpectedErrorHandler - ); - }, "Testing valid read of null nested complex type and navigation property " + handlerAcceptStrings[i], handlerAcceptStrings[i]); - - djstest.addTest(function readNullComplexTypeEntryTest(handlerAccept) { - var endPoint = feed + "(3)"; - djstest.assertsExpected(1); - odatajs.oData.read({ requestUri: endPoint, headers: { Accept: handlerAccept} }, - function (data, response) { - window.ODataReadOracle.readEntry(endPoint, - function (expectedData) { - djstest.assertAreEqualDeep(data, expectedData, "Response data not same as expected"); - djstest.done(); - }, handlerAccept - ); - }, - unexpectedErrorHandler - ); - }, "Testing valid read of null top level complex type" + handlerAcceptStrings[i], handlerAcceptStrings[i]); - - djstest.addTest(function readNullPropertiesDerivedEntryTest(handlerAccept) { - djstest.assertsExpected(1); - var endPoint = feed + "(4)"; - odatajs.oData.read({ requestUri: endPoint, headers: { Accept: handlerAccept} }, - function (data, response) { - window.ODataReadOracle.readEntry(endPoint, - function (expectedData) { - djstest.assertAreEqualDeep(data, expectedData, "Response data not same as expected"); - djstest.done(); - }, handlerAccept - ); - }, - unexpectedErrorHandler - ); - }, "Testing valid read of derived type null properties with " + handlerAcceptStrings[i], handlerAcceptStrings[i]); - - djstest.addTest(function readNextComplexTypeDerivedEntryTest(handlerAccept) { - - djstest.assertsExpected(1); - var endPoint = feed + "(5)"; - odatajs.oData.read({ requestUri: endPoint, headers: { Accept: handlerAccept} }, - function (data, response) { - window.ODataReadOracle.readEntry(endPoint, - function (expectedData) { - djstest.assertAreEqualDeep(data, expectedData, "Response data not same as expected"); - djstest.done(); - }, handlerAccept - ); - }, - unexpectedErrorHandler - ); - }, "Testing valid read of derived type with full nested complex type properties with " + handlerAcceptStrings[i], handlerAcceptStrings[i]); - - djstest.addTest(function readEntryWithInlineFeedTest(handlerAccept) { - var endpoint = categoriesFeed + "(0)?$expand=Foods"; - djstest.assertsExpected(2); - odatajs.oData.read({ requestUri: endpoint, headers: { Accept: handlerAccept} }, - function (data, response) { - window.ODataReadOracle.readEntry(endpoint, - function (expectedData) { - djstest.assertAreEqualDeep(data.value, expectedData.value, "Verify inline feed"); - djstest.assertAreEqualDeep(data, expectedData, "Verify entry"); - djstest.done(); - }, handlerAccept - ); - }, - unexpectedErrorHandler - ); - }, "Testing read of entry with inline feed with " + handlerAcceptStrings[i], handlerAcceptStrings[i]); - - djstest.addTest(function readFeedWithEmptyInlineFeedTest(handlerAccept) { - var endpoint = categoriesFeed + "?$filter=Name eq 'Empty Category'&$expand=Foods"; - djstest.assertsExpected(2); - odatajs.oData.read({ requestUri: endpoint, headers: { Accept: handlerAccept} }, - function (data, response) { - window.ODataReadOracle.readFeed(endpoint, - function (expectedData) { - djstest.assertAreEqualDeep(data.value, expectedData.value, "Verify inline feed"); - djstest.assertAreEqualDeep(data, expectedData, "Verify feed"); - djstest.done(); - }, handlerAccept - ); - }, - unexpectedErrorHandler - ); - }, "Testing read of entry with empty inline feed with " + handlerAcceptStrings[i], handlerAcceptStrings[i]); - - djstest.addTest(function readEntryWithInlineEntryTest(handlerAccept) { - var endpoint = feed + "(0)?$expand=Category"; - djstest.assertsExpected(2); - odatajs.oData.read({ requestUri: endpoint, headers: { Accept: handlerAccept} }, - function (data, response) { - window.ODataReadOracle.readEntry(endpoint, - function (expectedData) { - djstest.assertAreEqualDeep(data.Category, expectedData.Category, "Verify inline entry"); - djstest.assertAreEqualDeep(data, expectedData, "Verify entry"); - djstest.done(); - }, handlerAccept - ); - }, - unexpectedErrorHandler - ); - }, "Testing read of entry with inline entry with " + handlerAcceptStrings[i], handlerAcceptStrings[i]); - - djstest.addTest(function readFeedWithNullInlineEntryTest(handlerAccept) { - var endpoint = feed + "?$expand=Category&$filter=Category eq null"; - djstest.assertsExpected(2); - odatajs.oData.read({ requestUri: endpoint, headers: { Accept: handlerAccept} }, - function (data, response) { - window.ODataReadOracle.readFeed(endpoint, - function (expectedData) { - djstest.assertAreEqualDeep(data.value, expectedData.value, "Verify inline data"); - djstest.assertAreEqualDeep(data, expectedData, "Verify feed"); - djstest.done(); - }, handlerAccept); - }, - unexpectedErrorHandler - ); - }, "Testing read of feed with null inline entry with " + handlerAcceptStrings[i], handlerAcceptStrings[i]); - - djstest.addTest(function readFeedWithInlineCountTest(handlerAccept) { - var endpoint = feed + "?$count=true"; - djstest.assertsExpected(2); - odatajs.oData.read({ requestUri: endpoint, headers: { Accept: handlerAccept} }, - function (data, response) { - window.ODataReadOracle.readFeed(endpoint, - function (expectedData) { - djstest.assertAreEqual(data["@odata.count"], expectedData["@odata.count"], "Verify count in response data"); - djstest.assertAreEqualDeep(data, expectedData, "Verify feed"); - djstest.done(); - }, handlerAccept - ); - }, - unexpectedErrorHandler - ); - }, "Testing read of collection with inline count with " + handlerAcceptStrings[i], handlerAcceptStrings[i]); - - djstest.addTest(function selectSinglePropertyOnEntryTest(handlerAccept) { - var endpoint = feed + "(0)?$select=Name"; - djstest.assertsExpected(1); - odatajs.oData.read({ requestUri: endpoint, headers: { Accept: handlerAccept} }, - function (data, response) { - window.ODataReadOracle.readEntry(endpoint, - function (expectedData) { - djstest.assertAreEqualDeep(data, expectedData, "Verify select result"); - djstest.done(); - }, handlerAccept - ); - }, - unexpectedErrorHandler); - }, "Select single property of entry " + handlerAcceptStrings[i], handlerAcceptStrings[i]); - - djstest.addTest(function selectComplexTypeOnFeedTest(handlerAccept) { - var endpoint = feed + "?$select=Packaging"; - djstest.assertsExpected(1); - odatajs.oData.read({ requestUri: endpoint, headers: { Accept: handlerAccept} }, - function (data, response) { - window.ODataReadOracle.readFeed(endpoint, - function (expectedData) { - djstest.assertAreEqualDeep(data, expectedData, "Verify select result"); - djstest.done(); - }, handlerAccept - ); - }, - unexpectedErrorHandler); - }, "Select single complex type property of feed " + handlerAcceptStrings[i], handlerAcceptStrings[i]); - - djstest.addTest(function selectMultiplePropertiesOnEntryTest(handlerAccept) { - var endpoint = feed + "(3)?$select=Packaging,ExpirationDate,IsAvailable"; - djstest.assertsExpected(1); - odatajs.oData.read({ requestUri: endpoint, headers: { Accept: handlerAccept} }, - function (data, response) { - window.ODataReadOracle.readEntry(endpoint, - function (expectedData) { - djstest.assertAreEqualDeep(data, expectedData, "Verify select result"); - djstest.done(); - }, handlerAccept - ); - }, - unexpectedErrorHandler); - }, "Select multiple primitive properties of feed " + handlerAcceptStrings[i], handlerAcceptStrings[i]); - - djstest.addTest(function readPagedCategoriesCollectionTest(handlerAccept) { - var endpoint = categoriesFeed; - djstest.assertsExpected(1); - odatajs.oData.read({ requestUri: endpoint, headers: { Accept: handlerAccept} }, - function (data, response) { - window.ODataReadOracle.readFeed(endpoint, - function (expectedData) { - djstest.assertAreEqualDeep(data, expectedData, "Verify response data"); - djstest.done(); - }, handlerAccept - ); - }, unexpectedErrorHandler); - }, "Testing read of paged collection with " + handlerAcceptStrings[i], handlerAcceptStrings[i]); - - djstest.addTest(function readPagedCollectionWithInlineCountTest(handlerAccept) { - var endpoint = categoriesFeed + "?$count=true"; - djstest.assertsExpected(2); - odatajs.oData.read({ requestUri: endpoint, headers: { Accept: handlerAccept} }, - function (data, response) { - window.ODataReadOracle.readFeed(endpoint, - function (expectedData) { - djstest.assertAreEqual(data["@odata.context"], expectedData["@odata.context"], "Verify count in response data"); - djstest.assertAreEqualDeep(data, expectedData, "Verify feed"); - djstest.done(); - }, handlerAccept - ); - }, unexpectedErrorHandler); - }, "Testing read of paged collection with inline count with " + handlerAcceptStrings[i], handlerAcceptStrings[i]); - - djstest.addTest(function readEntryWithNamedStreams(handlerAccept) { - var endpoint = feed + "(1)?$expand=Category"; - djstest.assertsExpected(1); - odatajs.oData.read({ requestUri: endpoint, headers: { Accept: handlerAccept} }, - function (data, response) { - window.ODataReadOracle.readEntry(endpoint, - function (expectedData) { - djstest.assertAreEqualDeep(data, expectedData, "Verify entry"); - djstest.done(); - }, handlerAccept - ); - }, unexpectedErrorHandler); - }, "Testing read of entry with named streams " + handlerAcceptStrings[i], handlerAcceptStrings[i]); - - djstest.addTest(function readEntryWithCollectionProperties(handlerAccept) { - var endpoint = feed + "(0)"; - djstest.assertsExpected(1); - odatajs.oData.read({ requestUri: endpoint, headers: { Accept: handlerAccept} }, - function (data, response) { - window.ODataReadOracle.readEntry(endpoint, - function (expectedData) { - djstest.assertAreEqualDeep(data, expectedData, "Verify entry"); - djstest.done(); - }, handlerAccept - ); - }, unexpectedErrorHandler); - }, "Testing read of entry with collection properties " + handlerAcceptStrings[i], handlerAcceptStrings[i]); - - djstest.addTest(function invalidEntryReadTest(handlerAccept) { - var endPoint = feed + "(16)"; - djstest.assertsExpected(2); - odatajs.oData.read({ requestUri: endPoint, headers: { Accept: handlerAccept} }, - function (data, response) { - djstest.assert(false, "We should not get here because data is not valid."); - djstest.done() - }, - function (err) { - djstest.assertAreEqual(err.message, expectedErrorMessage, "Error message"); - djstest.assertAreEqual(err.response.statusCode, httpStatusCode.notFound, "Response status code"); - djstest.done(); - }); - }, "Testing invalid entry read with " + handlerAcceptStrings[i], handlerAcceptStrings[i]); - - djstest.addTest(function invalidFeedReadTest(handlerAccept) { - var endPoint = feed + "Invalid"; - djstest.assertsExpected(2); - odatajs.oData.read({ requestUri: endPoint, headers: { Accept: handlerAccept} }, - function (data, response) { - djstest.assert(false, "We should not get here because data is not valid."); - djstest.done(); - }, - function (err) { - djstest.assertAreEqual(err.message, expectedErrorMessage, "Error message"); - djstest.assertAreEqual(err.response.statusCode, httpStatusCode.notFound, "Response status code"); - djstest.done(); - }); - }, "Testing invalid feed read with " + handlerAcceptStrings[i], handlerAcceptStrings[i]); - - djstest.addTest(function standardErrorReadTest(handlerAccept) { - var endPoint = feed + "?$foo=bar"; - djstest.assertsExpected(2); - odatajs.oData.read({ requestUri: endPoint, headers: { Accept: handlerAccept} }, - function (data, response) { - djstest.assert(false, "We should not get here because data is not valid."); - djstest.done() - }, - function (err) { - djstest.assertAreEqual(err.message, expectedErrorMessage, "Error message"); - djstest.assertAreEqual(err.response.statusCode, httpStatusCode.badRequest, "Response status code"); - djstest.done(); - }); - }, "Testing standard error read with " + handlerAcceptStrings[i], handlerAcceptStrings[i]); - - djstest.addTest(function inStreamErrorReadTest(handlerAccept) { - var endPoint = "./endpoints/ErrorDataService.svc/Entities"; - djstest.assertsExpected(1); - odatajs.oData.read({ requestUri: endPoint, headers: { Accept: handlerAccept} }, function (data, response) { - djstest.assert(false, "Unexpected call to success handler with response: " + djstest.toString(response)); - djstest.done() - }, function (err) { - djstest.assert(err.response.body.indexOf("An error occurred while processing this request") > -1, "Error handler was called with the correct response body"); - djstest.done(); - }); - }, "Testing in-stream error read with " + handlerAcceptStrings[i], handlerAcceptStrings[i]); - - var user = "djsUser"; - var password = "djsPassword"; - - djstest.addTest(function readFullFeedBasicAuthTest(handlerAccept) { - var endpoint = "./endpoints/BasicAuthDataService.svc/Customers"; - djstest.assertsExpected(1); - odatajs.oData.read({ requestUri: endpoint, headers: { Accept: handlerAccept }, user: user, password: password }, function (data, response) { - window.ODataReadOracle.readFeed({ url: endpoint, user: user, password: password }, function (expectedData) { - djstest.assertAreEqualDeep(data, expectedData, "Response data not same as expected"); - djstest.done(); - }, handlerAccept); - }, unexpectedErrorHandler); - }, "Testing valid read of full feed collection on basic auth with " + handlerAcceptStrings[i], handlerAcceptStrings[i]); - - djstest.addTest(function readEntryBasicAuthTest(handlerAccept) { - var endpoint = "./endpoints/BasicAuthDataService.svc/Customers(1)"; - djstest.assertsExpected(1); - odatajs.oData.read({ requestUri: endpoint, headers: { Accept: handlerAccept }, user: user, password: password }, function (data, response) { - window.ODataReadOracle.readEntry({ url: endpoint, user: user, password: password }, function (expectedData) { - djstest.assertAreEqualDeep(data, expectedData, "Response data not same as expected"); - djstest.done(); - }, handlerAccept); - }, unexpectedErrorHandler); - }, "Testing valid read of entry on basic auth with " + handlerAcceptStrings[i], handlerAcceptStrings[i]); - } - - var services = [ - service, - epmService - ]; - - $.each(services, function (_, serviceName) { - $.each(validServiceDocumentAcceptHeaders, function (_, validServiceDocumentAcceptHeader) { - var parameters = { handlerAccept: validServiceDocumentAcceptHeader, serviceName: serviceName }; - - djstest.addTest(function validReadServiceDocumentTest(params) { - djstest.assertsExpected(1); - odatajs.oData.read({ requestUri: params.serviceName, headers: { Accept: params.handlerAccept} }, - function (data, response) { - window.ODataReadOracle.readServiceDocument(serviceName, - function (expectedData) { - djstest.assertAreEqualDeep(data, expectedData, "Response data not same as expected"); - djstest.done(); - }, params.handlerAccept - ); - }, - unexpectedErrorHandler - ); - }, "Testing valid read of service document " + parameters.handlerAccept + " on service " + parameters.serviceName, parameters); - }); - - $.each(invalidServiceDocumentAcceptHeaders, function (_, invalidServiceDocumentAcceptHeader) { - var parameters = { handlerAccept: invalidServiceDocumentAcceptHeader, serviceName: serviceName }; - - djstest.addTest(function invalidReadServiceDocumentTest(params) { - djstest.assertsExpected(2); - odatajs.oData.read({ requestUri: params.serviceName, headers: { Accept: params.handlerAccept} }, - function success(data, response) { - djstest.fail("Reading service document should produce error with " + params.handlerAccept); - djstest.done(); - }, - function (err) { - djstest.assertAreEqual(err.message, expectedErrorMessage, "Error message"); - djstest.assertAreEqual(err.response.statusCode, httpStatusCode.unsupportedMediaType, "Response status code"); - djstest.done(); - } - ); - }, "Testing read of service document with invalid MIME type " + parameters.invalidServiceDocumentAcceptHeader + " on service " + serviceName, parameters); - }); - - //to do: - $.each(validMetadataAcceptHeaders, function (_, validMetadataAcceptHeader) { - var parameters = { handlerAccept: validMetadataAcceptHeader, serviceName: serviceName }; - - djstest.addTest(function validReadMetadataTest(params) { - djstest.assertsExpected(1); - var endPoint = params.serviceName + "$metadata"; - odatajs.oData.read({ requestUri: endPoint, headers: { Accept: params.handlerAccept} }, - function (data, response) { - window.ODataReadOracle.readMetadata(endPoint, - function (expectedData) { - djstest.assertAreEqualDeep(data, expectedData, "Response data not same as expected"); - djstest.done(); - } - ); - }, - unexpectedErrorHandler, - OData.metadataHandler - ); - }, "Testing valid read metadata " + parameters.handlerAccept + " on service " + parameters.serviceName, parameters); - }); - - $.each(invalidMetadataAcceptHeaders, function (_, invalidMetadataAcceptHeader) { - var parameters = { handlerAccept: invalidMetadataAcceptHeader, serviceName: serviceName }; - djstest.addTest(function invlaidReadMetadataTest(params) { - djstest.assertsExpected(2); - var endPoint = params.serviceName + "$metadata"; - odatajs.oData.read({ requestUri: endPoint, headers: { Accept: params.handlerAccept} }, - function success(data, response) { - djstest.fail("Reading metadata should produce error with " + params.handlerAccept); - djstest.done(); - }, - function (err) { - djstest.assertAreEqual(err.message, expectedErrorMessage, "Error message"); - djstest.assertAreEqual(err.response.statusCode, httpStatusCode.unsupportedMediaType, "Response status code"); - djstest.done(); - }, - OData.metadataHandler - ); - }, "Testing read metadata with invalid MIME type " + parameters.handlerAccept + " on service " + parameters.serviceName, parameters); - }); - }); - - // To do: update the test data for enabling the annotation test - djstest.addFullTest(true, function metadataElementExtensionsTest() { - var csdlFile = "./endpoints/CustomAnnotations.xml"; - var modifyTypeHttpClient = {}; - var originalHttpClient = OData.defaultHttpClient; - - // Modify the content-type of the response so that it is accepted by the metadataHandler. - // By default, the content-type of CustomAnnotations.xml comes back as text/xml - modifyTypeHttpClient.request = function (request, success, error) { - return originalHttpClient.request(request, function (response) { - response.headers["Content-Type"] = "application/xml"; - success(response); - }, error); - } - - OData.defaultHttpClient = modifyTypeHttpClient; - - odatajs.oData.read({ requestUri: csdlFile, headers: { Accept: "text/xml"} }, - function (data) { - window.ODataReadOracle.readMetadata(csdlFile, - function (expectedData) { - djstest.assertAreEqualDeep(data, expectedData, "Response data not same as expected"); - djstest.done(); - } - ) - }, - unexpectedErrorHandler, OData.metadataHandler - ); - }); - - djstest.addTest(function verifyNonDefaultReadMethodCalled() { - var endPoint = feed + "(0)"; - djstest.assertsExpected(2); - odatajs.oData.read( - { requestUri: endPoint }, - function success(data, response) { - djstest.assert(true, "Test executed"); - djstest.done(); - }, - null, - { - read: function (response) { - djstest.assert(true, "Non-default read reached"); - djstest.done(); - }, - accept: "*/*" - } - ); - }, "Testing nondefault read is called."); - -})(this); \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/4621d41c/JSLib/tests/odata-request-functional-tests.html ---------------------------------------------------------------------- diff --git a/JSLib/tests/odata-request-functional-tests.html b/JSLib/tests/odata-request-functional-tests.html deleted file mode 100644 index 4298493..0000000 --- a/JSLib/tests/odata-request-functional-tests.html +++ /dev/null @@ -1,44 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> -<html> -<head> - <title>odata.request tests</title> - <meta http-equiv="cache-control" content="no-cache" /> - <meta http-equiv="pragma" content="no-cache" /> - <meta http-equiv="expires" content="-1" /> - <link rel="stylesheet" href="http://code.jquery.com/qunit/qunit-1.10.0.css" type="text/css" /> - <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/json2/20110223/json2.js"></script> - <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"></script> - <script type="text/javascript" src="http://code.jquery.com/qunit/qunit-1.10.0.js"></script> - <script type="text/javascript" src="common/ODataReadOracle.js"></script> - <script type="text/javascript" src="common/TestSynchronizerClient.js"></script> - <script type="text/javascript"> - window.TestSynchronizer.init(QUnit); - </script> - - <script type="text/javascript" src="../src/datajs.js"></script> - <script type="text/javascript" src="../src/utils.js"></script> - <script type="text/javascript" src="../src/xml.js"></script> - - <script type="text/javascript" src="../src/odata-utils.js"></script> - <script type="text/javascript" src="../src/odata-handler.js"></script> - <script type="text/javascript" src="../src/odata-gml.js"></script> - <script type="text/javascript" src="../src/odata-xml.js"></script> - <script type="text/javascript" src="../src/odata-net.js"></script> - <script type="text/javascript" src="../src/odata-json-light.js"></script> - <script type="text/javascript" src="../src/odata-json.js"></script> - <script type="text/javascript" src="../src/odata-atom.js"></script> - <script type="text/javascript" src="../src/odata-metadata.js"></script> - <script type="text/javascript" src="../src/odata-batch.js"></script> - <script type="text/javascript" src="../src/odata.js"></script> - - <script type="text/javascript" src="common/djstest.js"></script> - - <script type="text/javascript" src="odata-request-functional-tests.js"></script> -</head> -<body> - <h1 id="qunit-header">odata.request tests</h1> - <h2 id="qunit-banner"></h2> - <h2 id="qunit-userAgent"></h2> - <ol id="qunit-tests"></ol> -</body> -</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/4621d41c/JSLib/tests/odata-request-functional-tests.js ---------------------------------------------------------------------- diff --git a/JSLib/tests/odata-request-functional-tests.js b/JSLib/tests/odata-request-functional-tests.js deleted file mode 100644 index b6644af..0000000 --- a/JSLib/tests/odata-request-functional-tests.js +++ /dev/null @@ -1,386 +0,0 @@ -/// <reference path="common/djstest.js" /> -/// <reference path="../src/odata.js" /> -/// <reference path="common/ODataReadOracle.js" /> - -(function (window, undefined) { - OData.defaultHandler.accept = "application/json;q=0.9, application/atomsvc+xml;q=0.8, */*;q=0.1"; - var unexpectedErrorHandler = function (err) { - djstest.assert(false, "Unexpected call to error handler with error: " + djstest.toString(err)); - djstest.done(); - }; - - var verifyRequest = function (request, done) { - if (request.method == "POST") { - verifyPost(request, done); - } - else if (request.method == "PUT") { - verifyPut(request, done); - } - else if (request.method == "PATCH") { - verifyPatch(request, done); - } - }; - - var tryRemoveOdataType = function (data) { - if (data && data["@odata.type"]) { - delete data["@odata.type"]; - } - - return data; - }; - - var verifyPost = function (request, done) { - var httpOperation = request.method + " " + request.requestUri; - djstest.log(httpOperation); - odatajs.oData.request(request, function (data, response) { - djstest.log("Status code:" + response.statusCode); - djstest.assertAreEqual(response.statusCode, httpStatusCode.created, "Verify response code: " + httpOperation); - djstest.log("Uri:" + request.requestUri); - ODataReadOracle.readEntry(response.headers["Location"], function (expectedData) { - djstest.assertAreEqualDeep(response.data, expectedData, "Verify new entry against response: " + httpOperation); - done(); - }, request.headers.Accept); - }, unexpectedErrorHandler); - }; - - var verifyPut = function(request, done) { - var httpOperation = request.method + " " + request.requestUri; - djstest.log(httpOperation); - odatajs.oData.request(request, function(data, response) { - djstest.log("Status code:" + response.statusCode); - djstest.assertAreEqual(response.statusCode, httpStatusCode.noContent, "Verify response code: " + httpOperation); - djstest.log("Uri:" + request.requestUri); - ODataReadOracle.readEntry(request.requestUri, function(actualData) { - var requestData = tryRemoveOdataType(request.data); - djstest.assertAreEqualDeep(subset(actualData, requestData), requestData, "Verify updated entry: " + httpOperation); - done(); - }, request.headers.Accept); - }, unexpectedErrorHandler); - }; - - var verifyPatch = function (request, done) { - var httpOperation = request.method + " " + request.requestUri; - djstest.log(httpOperation); - ODataReadOracle.readEntry(request.requestUri, function (originalData) { - odatajs.oData.request(request, function (data, response) { - djstest.log("Status code:" + response.statusCode); - djstest.assertAreEqual(response.statusCode, httpStatusCode.noContent, "Verify response code"); - djstest.log("Uri:" + request.requestUri); - ODataReadOracle.readEntry(request.requestUri, function (actualData) { - - // Merge the original data with the updated data to get the expected data - var expectedData = $.extend(true, {}, originalData, request.data); - djstest.assertAreEqualDeep(actualData, tryRemoveOdataType(expectedData), "Verify merged data"); - done(); - }, request.headers["Content-Type"]); - }, unexpectedErrorHandler); - }, request.headers["Content-Type"]); - }; - - // Returns a subset of object with the same set of properties (recursive) as the subsetObject - var subset = function (object, subsetObject) { - if (typeof (object) == "object" && typeof (subsetObject) == "object") { - var result = {}; - for (subsetProp in subsetObject) { - result[subsetProp] = subset(object[subsetProp], subsetObject[subsetProp]); - } - return result; - } - else { - return object; - } - }; - - var foodData = { - "@odata.type": "#DataJS.Tests.V4.Food", - FoodID: 42, - Name: "olive oil", - UnitPrice: 3.14, - ServingSize: 1, - MeasurementUnit: "", - ProteinGrams: 5, - FatGrams: 9, - CarbohydrateGrams: 2, - CaloriesPerServing: 6, - IsAvailable: true, - ExpirationDate: "2010-12-25T12:00:00Z", - ItemGUID: "27272727-2727-2727-2727-272727272727", - Weight: 10, - AvailableUnits: 1, - Packaging: { - Type: "Can", - Color: null, - NumberPerPackage: 1, - RequiresRefridgeration: false, - PackageDimensions: { - Length: 4, - Height: 3, - Width: 2, - Volume: 1 - }, - ShipDate: "2010-12-25T12:00:00Z" - } - }; - - var testServices = { - V4: "./endpoints/FoodStoreDataServiceV4.svc" - }; - - var testData = { - V4: $.extend(true, {}, foodData, { - AlternativeNames: ["name1", "name2"], - Providers: - [{ - Name: "Provider", - Aliases: ["alias1"], - Details: { - Telephone: "555-555-555", - PreferredCode: 999 - } - }, - { - Name: "Provider2", - Aliases: [], - Details: null - } - ] - }) - }; - - var mimeTypes = [undefined, "application/json;odata.metadata=minimal"/*, "application/atom+xml"*/]; - - var httpStatusCode = { - created: 201, - noContent: 204, - notFound: 404 - }; - - $.each(testServices, function (serviceName, service) { - var newFood = testData[serviceName]; - - var foodsFeed = service + "/Foods"; - var categoriesFeed = service + "/Categories"; - - module("Functional", { - setup: function () { - djstest.log("Resetting data"); - djstest.wait(function (done) { - $.post(service + "/ResetData", done); - }); - } - }); - - $.each(mimeTypes, function (_, mimeType) { - // Provide coverage for both undefined and specific DSVs - // For all other cases DSV = undefined is a valid scenario - var dataServiceVersions = ["4.0"]; - - $.each(dataServiceVersions, function (_, dataServiceVersion) { - var headers; - if (mimeType || dataServiceVersion) { - headers = { - "Content-Type": mimeType, - Accept: mimeType, - "OData-Version": dataServiceVersion - }; - } - - djstest.addTest(function addEntityTest(headers) { - var request = { - requestUri: categoriesFeed, - method: "POST", - headers: headers, - data: { - CategoryID: 42, - Name: "New Category" - } - }; - - djstest.assertsExpected(2); - verifyRequest(request, djstest.done); - }, "Add new entity to " + serviceName + " service using mimeType = " + mimeType + " and DSV = " + dataServiceVersion, headers); - - djstest.addTest(function addEntityWithUTF16CharTest(headers) { - var request = { - requestUri: categoriesFeed, - method: "POST", - headers: headers, - data: { - CategoryID: 42, - Name: "\u00f6 New Category \u00f1" - } - }; - - djstest.assertsExpected(2); - verifyRequest(request, djstest.done); - }, "Add new entity with UTF-16 character to " + serviceName + " service using mimeType = " + mimeType + " and DSV = " + dataServiceVersion, headers); - - djstest.addTest(function addLinkedEntityTest(headers) { - var request = { - requestUri: categoriesFeed + "(0)/Foods", - method: "POST", - headers: headers, - data: newFood - }; - - djstest.assertsExpected(2); - verifyRequest(request, djstest.done); - }, "Add new linked entity to " + serviceName + " service using mimeType = " + mimeType + " and DSV = " + dataServiceVersion, headers); - - djstest.addTest(function addEntityWithInlineFeedTest(headers) { - var request = { - requestUri: categoriesFeed, - method: "POST", - headers: headers, - data: { - CategoryID: 42, - Name: "Olive Products", - Foods: [newFood] - } - }; - - djstest.assertsExpected(3); - verifyRequest(request, function () { - ODataReadOracle.readEntry(foodsFeed + "(" + newFood.FoodID + ")", function (actualData) { - djstest.assertAreEqual(actualData.Name, newFood.Name, "Verify inline entities were added"); - djstest.done(); - }, headers ? headers.Accept : undefined); - }); - }, "Add new entity with inline feed to " + serviceName + " service using mimeType = " + mimeType + " and DSV = " + dataServiceVersion, headers); - - djstest.addTest(function addEntityWithInlineEntryTest(headers) { - var request = { - requestUri: foodsFeed, - method: "POST", - headers: headers, - data: $.extend({}, newFood, { - Category: { - CategoryID: 42, - Name: "Olive Products" - } - }) - }; - - djstest.assertsExpected(3); - verifyRequest(request, function () { - ODataReadOracle.readEntry(categoriesFeed + "(" + request.data.Category.CategoryID + ")", function (actualData) { - djstest.assertAreEqual(actualData.Name, request.data.Category.Name, "Verify inline entities were added"); - djstest.done(); - }, headers ? headers.Accept : undefined); - }); - }, "Add new entity with inline entry to " + serviceName + " service using mimeType = " + mimeType + " and DSV = " + dataServiceVersion, headers); - - djstest.addTest(function updateEntityTest(headers) { - var request = { - requestUri: categoriesFeed + "(0)", - method: "PUT", - headers: headers, - data: { - CategoryID: 0, - Name: "Updated Category" - } - }; - - djstest.assertsExpected(2); - verifyRequest(request, djstest.done); - }, "Update entity to " + serviceName + " service using mimeType = " + mimeType + " and DSV = " + dataServiceVersion, headers); - - if (serviceName === "V4") { - djstest.addTest(function updateEntityTest(headers) { - var request = { - requestUri: foodsFeed + "(0)", - method: "PATCH", - headers: headers, - data: { - "@odata.type": "#DataJS.Tests.V4.Food", - AlternativeNames: ["one", "two"] - } - }; - - djstest.assertsExpected(2); - verifyRequest(request, djstest.done); - }, "Update collection property to " + serviceName + " service using mimeType = " + mimeType + " and DSV = " + dataServiceVersion, headers); - } - - if (mimeType !== "application/atom+xml") { - djstest.addTest(function updatePrimitivePropertyTest(headers) { - var request = { - requestUri: categoriesFeed + "(0)/Name", - method: "PUT", - headers: headers, - data: { value: "Updated Category" } - }; - - djstest.assertsExpected(2); - verifyRequest(request, djstest.done); - }, "Update primitive property to " + serviceName + " service using mimeType = " + mimeType + " and DSV = " + dataServiceVersion, headers); - } - - djstest.addTest(function updateLinkedEntityTest(headers) { - var request = { - requestUri: categoriesFeed + "(0)/Foods(0)", - method: "PUT", - headers: headers, - data: { - "@odata.type": "#DataJS.Tests.V4.Food", - Name: "Updated Food" - } - }; - - djstest.assertsExpected(2); - verifyRequest(request, djstest.done); - }, "Update linked entity to " + serviceName + " service using mimeType = " + mimeType + " and DSV = " + dataServiceVersion, headers); - - djstest.addTest(function mergeEntityTest(headers) { - var request = { - requestUri: categoriesFeed + "(0)", - method: "PATCH", - headers: headers, - data: { Name: "Merged Category" } - }; - - djstest.assertsExpected(2); - verifyRequest(request, djstest.done); - }, "Merge entity to " + serviceName + " service using mimeType = " + mimeType + " and DSV = " + dataServiceVersion, headers); - - djstest.addTest(function mergeLinkedEntityTest(headers) { - var request = { - requestUri: categoriesFeed + "(0)/Foods(0)", - method: "PATCH", - headers: headers, - data: { - "@odata.type": "#DataJS.Tests.V4.Food", - Name: "Merged Food" - } - }; - - djstest.assertsExpected(2); - verifyRequest(request, djstest.done); - }, "Merge linked entity to " + serviceName + " service using mimeType = " + mimeType + " and DSV = " + dataServiceVersion, headers); - - djstest.addTest(function deleteEntityTest(headers) { - var endpoint = categoriesFeed + "(0)"; - djstest.assertsExpected(2); - odatajs.oData.request({ - requestUri: endpoint, - method: "DELETE", - headers: headers - }, function (data, response) { - djstest.assertAreEqual(response.statusCode, httpStatusCode.noContent, "Verify response code"); - $.ajax({ - url: endpoint, - error: function (xhr) { - djstest.assertAreEqual(xhr.status, httpStatusCode.notFound, "Verify response code of attempted retrieval after delete"); - djstest.done(); - }, - success: function () { - djstest.fail("Delete failed: querying the endpoint did not return expected response code"); - djstest.done(); - } - }); - }, unexpectedErrorHandler); - }, "Delete entity from " + serviceName + " service using mimeType = " + mimeType + " and DSV = " + dataServiceVersion, headers); - }); - }); - }); -})(this); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/4621d41c/JSLib/tests/odata-roundtrip-functional-tests.js ---------------------------------------------------------------------- diff --git a/JSLib/tests/odata-roundtrip-functional-tests.js b/JSLib/tests/odata-roundtrip-functional-tests.js deleted file mode 100644 index ba0c23d..0000000 --- a/JSLib/tests/odata-roundtrip-functional-tests.js +++ /dev/null @@ -1,374 +0,0 @@ -/// <reference path="common/djstest.js" /> -/// <reference path="../src/odata.js" /> -/// <reference path="common/ODataReadOracle.js" /> - -(function (window, undefined) { - var unexpectedErrorHandler = function (err) { - djstest.assert(false, "Unexpected call to error handler with error: " + djstest.toString(err)); - djstest.done(); - }; - - var verifyRequest = function (request, done) { - if (request.method == "POST") { - if (request.headers && request.headers["X-HTTP-Method"] == "MERGE") { - verifyMerge(request, done); - } - else { - verifyPost(request, done); - } - } - else if (request.method == "PUT") { - verifyPut(request, done); - } - }; - - var verifyPost = function (request, done) { - var httpOperation = request.method + " " + request.requestUri; - odatajs.oData.request(request, function (data, response) { - djstest.assertAreEqual(response.statusCode, httpStatusCode.created, "Verify response code: " + httpOperation); - ODataReadOracle.readJson(data.__metadata.uri, function (expectedData) { - djstest.assertAreEqualDeep(response.data, expectedData, "Verify new entry against response: " + httpOperation); - done(); - }, request.headers.Accept); - }, unexpectedErrorHandler); - }; - - var verifyPut = function (request, done) { - var httpOperation = request.method + " " + request.requestUri; - odatajs.oData.request(request, function (data, response) { - djstest.assertAreEqual(response.statusCode, httpStatusCode.noContent, "Verify response code: " + httpOperation); - ODataReadOracle.readJson(request.requestUri, function (actualData) { - djstest.assertAreEqualDeep(actualData, request.data, "Verify updated entry: " + httpOperation); - done(); - }, request.headers.Accept); - }, unexpectedErrorHandler); - } - - var verifyMerge = function (request, done) { - var httpOperation = request.method + " " + request.requestUri; - ODataReadOracle.readJson(request.requestUri, function (originalData) { - odatajs.oData.request(request, function (data, response) { - djstest.assertAreEqual(response.statusCode, httpStatusCode.noContent, "Verify response code"); - ODataReadOracle.readJson(request.requestUri, function (actualData) { - // Merge the original data with the updated data to get the expected data - var expectedData = $.extend(true, {}, originalData, request.data); - djstest.assertAreEqualDeep(actualData, expectedData, "Verify merged data"); - done(); - }, request.headers["Content-Type"]); - }, unexpectedErrorHandler); - }, request.headers["Content-Type"]); - } - - // Returns a subset of object with the same set of properties (recursive) as the subsetObject - var subset = function (object, subsetObject) { - if (typeof (object) == "object" && typeof (subsetObject) == "object") { - var result = {}; - for (subsetProp in subsetObject) { - result[subsetProp] = subset(object[subsetProp], subsetObject[subsetProp]); - } - return result; - } - else { - return object; - } - }; - - var service = "./endpoints/FoodStoreDataService.svc"; - var foodsFeed = service + "/Foods"; - var categoriesFeed = service + "/Categories"; - //var mimeTypes = [undefined, "application/json", "application/atom+xml"]; - var mimeTypes = ["application/json", "application/atom+xml"]; - - var httpStatusCode = { - created: 201, - noContent: 204, - notFound: 404 - }; - - var newFood = { - "__metadata": { - type: "DataJS.Tests.Food" - }, - FoodID: 42, - Name: "olive oil", - UnitPrice: 3.14, - ServingSize: "1", - MeasurementUnit: "Cup", - ProteinGrams: 5, - FatGrams: 9, - CarbohydrateGrams: 2, - CaloriesPerServing: "6", - IsAvailable: true, - ExpirationDate: new Date("2011/05/03 12:00:00 PM"), - ItemGUID: "27272727-2727-2727-2727-272727272727", - Weight: 10, - AvailableUnits: 1, - Packaging: { - Type: "Can", - Color: "White", - NumberPerPackage: 1, - RequiresRefridgeration: false, - PackageDimensions: { - Length: "4", - Height: 3, - Width: "2", - Volume: 1 - }, - ShipDate: new Date("2011/01/01 12:00:00 PM") - } - }; - - var newFoodLinks = { - uri: foodsFeed + "(1)" - } - - module("Functional", { - setup: function () { - $.ajax({ async: false, type: "POST", url: service + "/ResetData" }); - } - }); - - $.each(mimeTypes, function (_, mimeType) { - var headers = mimeType ? { "Content-Type": mimeType, Accept: mimeType} : undefined; - - djstest.addTest(function addEntityTest(headers) { - var request = { - requestUri: categoriesFeed, - method: "POST", - headers: headers, - data: { - CategoryID: 42, - Name: "New Category" - } - }; - - verifyRequest(request, function () { - odatajs.oData.read({ requestUri: categoriesFeed + "(42)", headers: { Accept: mimeType} }, function (actualData, response) { - actualData.CategoryID = 27; - var newRequest = { - requestUri: categoriesFeed, - method: "POST", - headers: headers, - data: actualData - }; - verifyRequest(newRequest, function () { djstest.done(); }); - }, request.headers["Content-Type"]); - }); - - }, "Post, read posted data, post read data (mimeType = " + mimeType + ")", headers); - - djstest.addTest(function addLinkedEntityTest(headers) { - var request = { - requestUri: categoriesFeed + "(0)/Foods", - method: "POST", - headers: headers, - data: newFood - }; - - verifyRequest(request, function () { - odatajs.oData.read({ requestUri: categoriesFeed + "(0)/Foods(42)", headers: { Accept: mimeType} }, function (actualData, response) { - actualData.FoodID = 94; - var newRequest = { - requestUri: categoriesFeed + "(0)/Foods", - method: "POST", - headers: headers, - data: actualData - }; - verifyRequest(newRequest, function () { djstest.done(); }); - }, request.headers["Content-Type"]); - }); - }, "POST, read, POST an entry " + mimeType + ")", headers); - - - djstest.addTest(function addLinkedEntityTest(headers) { - var request = { - requestUri: categoriesFeed + "(0)/Foods(0)", - method: "PUT", - headers: headers, - data: newFood - }; - - verifyRequest(request, function () { - odatajs.oData.read({ requestUri: categoriesFeed + "(0)/Foods(0)", headers: { Accept: mimeType} }, function (actualData, response) { - var newRequest = { - requestUri: categoriesFeed + "(0)/Foods(0)", - method: "PUT", - headers: headers, - data: { - "__metadata": { type: "DataJS.Tests.Food" }, - Name: "New Food" - } - }; - verifyRequest(newRequest, function () { djstest.done(); }); - }); - }); - }, "PUT, read, PUT a new linked entry " + mimeType + ")", headers); - - djstest.addTest(function addEntityWithInlineFeedTest(headers) { - var request = { - requestUri: categoriesFeed, - method: "POST", - headers: headers, - data: { - CategoryID: 42, - Name: "Olive Products", - Foods: [newFood] - } - }; - - verifyRequest(request, function () { - odatajs.oData.read({ requestUri: foodsFeed + "(" + newFood.FoodID + ")", headers: { Accept: mimeType} }, function (actualData, response) { - var newRequest = { - requestUri: categoriesFeed, - method: "POST", - headers: headers, - data: { - CategoryID: 27, - Name: "Olive Products", - Foods: [actualData] - } - }; - verifyRequest(newRequest, function () { djstest.done(); }); - }); - }); - - }, "POST, read, POST an entity with inline feed " + mimeType + ")", headers); - - djstest.addTest(function addEntityWithInlineEntryTest(headers) { - var request = { - requestUri: foodsFeed, - method: "POST", - headers: headers, - data: $.extend({}, newFood, { - Category: { - "__metadata": { uri: "" }, - CategoryID: 42, - Name: "Olive Products" - } - }) - }; - - verifyRequest(request, function () { - odatajs.oData.read({ requestUri: foodsFeed + "(" + newFood.FoodID + ")", headers: { Accept: mimeType} }, function (actualData, response) { - actualData.FoodID = 76; - var newRequest = { - requestUri: foodsFeed, - method: "POST", - headers: headers, - data: $.extend({}, actualData, { - Category: { - "__metadata": { uri: "" }, - CategoryID: 27, - Name: "Olive Products" - } - }) - }; - verifyRequest(newRequest, function () { djstest.done(); }); - }); - }); - }, "Add new entity with inline entry (mimeType = " + mimeType + ")", headers); - - djstest.addTest(function addEntityTest(headers) { - var request = { - requestUri: categoriesFeed + "(1)", - method: "PUT", - headers: headers, - data: { - CategoryID: 1, - Name: "New Category" - } - }; - - verifyRequest(request, function () { - odatajs.oData.read({ requestUri: categoriesFeed + "(1)", headers: { Accept: mimeType} }, function (actualData, response) { - actualData.CategoryID = 2; - var newRequest = { - requestUri: categoriesFeed + "(2)", - method: "PUT", - headers: headers, - data: actualData - }; - verifyRequest(newRequest, function () { djstest.done(); }); - }, request.headers["Content-Type"]); - }); - - }, "Put, read put data, put read data (mimeType = " + mimeType + ")", headers); - - djstest.addTest(function addEntityTest(headers) { - odatajs.oData.read({ requestUri: foodsFeed + "(0)", headers: { Accept: mimeType} }, - function (actualData, response) { - actualData.CategoryID = 216; - var request = { - requestUri: foodsFeed, - method: "POST", - headers: headers, - data: actualData - }; - verifyRequest(request, - function () { - odatajs.oData.read({ requestUri: foodsFeed + "(216)", headers: { Accept: mimeType} }, - function (data, response) { - ODataReadOracle.readJson(foodsFeed + "(216)", - function (expectedData) { - djstest.assertAreEqualDeep(data, expectedData, "Response data not same as expected"); - djstest.done(); - }); - }); - }); - }); - }, "Read data with dates, post read data with dates to new ID, read new ID data with dates" + mimeType + ")", headers); - - djstest.addTest(function addEntityTest(headers) { - odatajs.oData.read({ requestUri: categoriesFeed + "(0)", headers: { Accept: mimeType} }, - function (actualData, response) { - actualData.CategoryID = 81; - var request = { - requestUri: categoriesFeed, - method: "POST", - headers: headers, - data: actualData - }; - verifyRequest(request, - function () { - odatajs.oData.read({ requestUri: categoriesFeed + "(81)", headers: { Accept: mimeType} }, - function (data, response) { - ODataReadOracle.readJson(categoriesFeed + "(81)", - function (expectedData) { - djstest.assertAreEqualDeep(data, expectedData, "Response data not same as expected"); - djstest.done(); - } - ); - } - ); - } - ); - } - ); - }, "Read existing data, post existing data to new idea, read new ID data" + mimeType + ")", headers); - - - djstest.addTest(function addEntityTest(headers) { - odatajs.oData.read({ requestUri: categoriesFeed + "(0)", headers: { Accept: mimeType} }, - function (actualData, response) { - actualData.CategoryID = 81; - var request = { - requestUri: categoriesFeed, - method: "POST", - headers: headers, - data: actualData - }; - verifyRequest(request, - function () { - odatajs.oData.read({ requestUri: categoriesFeed + "(81)", headers: { Accept: mimeType} }, - function (data, response) { - ODataReadOracle.readJson(categoriesFeed + "(81)", - function (expectedData) { - djstest.assertAreEqualDeep(data, expectedData, "Response data not same as expected"); - djstest.done(); - }); - }); - }); - }); - }, "Read existing data, post existing data to new idea, read new ID data" + mimeType + ")", headers); - }); -})(this); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/4621d41c/JSLib/tests/odata-tests.js ---------------------------------------------------------------------- diff --git a/JSLib/tests/odata-tests.js b/JSLib/tests/odata-tests.js deleted file mode 100644 index 565e139..0000000 --- a/JSLib/tests/odata-tests.js +++ /dev/null @@ -1,306 +0,0 @@ -/// <reference path="../src/odata-net.js" /> -/// <reference path="../src/odata.js" /> -/// <reference path="common/djstest.js" /> -/// <reference path="common/mockHttpClient.js" /> - -// odata-tests.js -(function (window, undefined) { - var northwindService = "http://services.odata.org/Northwind/Northwind.svc/"; - var localFeed = "./endpoints/FoodStoreDataService.svc/Foods"; - var northwindFeed = northwindService + "Suppliers"; - - var countIFrames = function () { - /// <summary>Count the number of IFRAMES in the page</summary> - /// <returns type="Integer">The number of IFRAMES</returns> - return document.getElementsByTagName("IFRAME").length; - } - - module("Unit"); - - var originalEnableJsonpCallback = OData.defaultHttpClient.enableJsonpCallback; - - var restoreJsonpCallback = function () { - /// <summary>Restores OData.defaultHttpClient.enableJsonpCallback to the library default.</summary> - OData.defaultHttpClient.enableJsonpCallback = originalEnableJsonpCallback; - }; - - djstest.addTest(function checkApiTest() { - var internals = window.odatajs.oData.canUseJSONP !== undefined; - if (internals) { - // Don't even bother - there is a very long list for inter-module communication. - // {targetName: "OData", names: "..." } - djstest.pass("Do not test public api's when internals are visible"); - } else { - var apis = [ - { targetName: "datajs", names: "createDataCache,createStore,defaultStoreMechanism" }, - { targetName: "OData", names: "atomHandler,batchHandler,defaultError,defaultHandler,defaultHttpClient,defaultMetadata,defaultSuccess,jsonHandler,metadataHandler,read,request,textHandler,xmlHandler,parseMetadata" } - ]; - - for (var i = 0; i < apis.length; i++) { - var target = window[apis[i].targetName]; - - var actuals = []; - for (var actual in target) { - actuals.push(actual); - } - - actuals.sort(); - - var names = apis[i].names.split(","); - names.sort(); - - djstest.assertAreEqual(actuals.join(), names.join(), "actual names for " + apis[i].targetName); - } - } - - djstest.done(); - }); - - djstest.addTest(function simpleLocalReadTest() { - odatajs.oData.read(localFeed, function (data, request) { - djstest.assert(data !== null, "data !== null"); - djstest.assert(request !== null, "request !== null"); - djstest.done(); - }); - }); - - djstest.addTest(function simpleLocalReadWithRequestTest() { - odatajs.oData.read({ requestUri: localFeed, headers: { Accept: "application/json"} }, function (data, response) { - djstest.assert(data !== null, "data !== null"); - djstest.assert(response !== null, "response !== null"); - djstest.assertAreEqual(data, response.data, "data === response.data"); - - // Typically application/json;charset=utf-8, but browser may change the request charset (and thus response). - var contentType = response.headers["Content-Type"]; - contentType = contentType.split(';')[0]; - djstest.assertAreEqual(contentType, "application/json", 'contentType === "application/json"'); - djstest.done(); - }); - }); - - djstest.addTest(function simpleReadTest() { - var oldEnableJsonpCallback = OData.defaultHttpClient.enableJsonpCallback; - OData.defaultHttpClient.enableJsonpCallback = true; - - var iframesBefore = countIFrames(); - odatajs.oData.read(northwindService + "Regions", function (data, request) { - djstest.assert(data !== null, "data !== null"); - djstest.assert(request !== null, "request !== null"); - - // IFRAME recycling does not work in Opera because as soon as the IFRAME is added to the body, all variables - // go out of scope - if (!window.opera) { - djstest.assertAreEqual(countIFrames() - iframesBefore, 0, "extra IFRAMEs (baseline: " + iframesBefore + ")"); - } - - OData.defaultHttpClient.enableJsonpCallback = oldEnableJsonpCallback; - djstest.done(); - }); - }); - - djstest.addTest(function simpleReadWithParamsTest() { - OData.defaultHttpClient.enableJsonpCallback = true; - odatajs.oData.read(northwindFeed + "?$top=3", function (data, request) { - djstest.assert(data !== null, "data !== null"); - djstest.assert(request !== null, "request !== null"); - restoreJsonpCallback(); - djstest.done(); - }, djstest.failAndDoneCallback("Unable to read from " + northwindFeed, restoreJsonpCallback)); - }); - - djstest.addTest(function simpleReadWithNoParamsTest() { - OData.defaultHttpClient.enableJsonpCallback = true; - odatajs.oData.read(northwindFeed + "?", function (data, request) { - djstest.assert(data !== null, "data !== null"); - djstest.assert(request !== null, "request !== null"); - restoreJsonpCallback(); - djstest.done(); - }, djstest.failAndDoneCallback("Unable to read from " + northwindFeed, restoreJsonpCallback)); - }); - - djstest.addTest(function jsonpTimeoutTest() { - // Verifies that JSONP will timeout, and that the - // enableJsonpCallback flag can be set on the request itself. - var iframesBefore = countIFrames(); - odatajs.oData.request({ - requestUri: northwindFeed + "?$fail=true", - timeoutMS: 100, - enableJsonpCallback: true - }, function (data, request) { - djstest.fail("expected an error callback"); - djstest.done(); - }, function (err) { - djstest.assert(err.message.indexOf("timeout") !== 1, "err.message[" + err.message + "].indexOf('timeout') !== 1"); - djstest.assertAreEqual(countIFrames() - iframesBefore, 0, "extra script tags (baseline: " + iframesBefore + ")"); - djstest.done(); - }); - }); - - djstest.addTest(function requestDefaultsTest() { - // Save current defaults. - var oldError = OData.defaultError; - var oldSuccess = OData.defaultSuccess; - var oldDefaultHandler = OData.defaultHandler; - var oldHttpClient = OData.defaultHttpClient; - - OData.defaultSuccess = function (data, response) { - djstest.assertAreEqual(response.statusCode, 299, "success method reached when expected"); - }; - - OData.defaultError = function (error) { - var response = error.response; - djstest.assertAreEqual(response.statusCode, 500, "error method reached when expected"); - }; - - OData.defaultHandler = { - read: function (response) { - djstest.assertAreEqual(response.statusCode, 299, "default handler read method reached when expected"); - }, - accept: "test accept string" - }; - - OData.defaultHttpClient = MockHttpClient.clear(); - - var testUris = [ - "requestDefaultsTest/request", - "requestDefaultsTest/request1", - "requestDefaultsTest/error" - ]; - - MockHttpClient.addRequestVerifier(testUris[0], function (request) { - djstest.assertAreEqual(request.method, "GET", "request.method is GET"); - djstest.assert(request.headers, "request.headers is defined and not null"); - djstest.assertAreEqual(request.headers.Accept, "test accept string"); - }); - - MockHttpClient.addResponse(testUris[1], { statusCode: 299, body: "test response" }); - MockHttpClient.addResponse(testUris[2], { statusCode: 500, body: "error response" }); - - try { - var i, len; - for (i = 0, len = testUris.length; i < len; i++) { - odatajs.oData.request({ requestUri: testUris[i] }); - } - } - finally { - // Restore defaults. - OData.defaultError = oldError; - OData.defaultSuccess = oldSuccess; - OData.defaultHandler = oldDefaultHandler; - OData.defaultHttpClient = oldHttpClient; - } - - djstest.assertsExpected(6); - djstest.done(); - }); - - djstest.addTest(function requestUpdateTest() { - // Save current defaults. - var testHandler = { - read: function (response) { - response.data = response.body; - }, - write: function (request) { - djstest.assertAreEqual(request.method, "POST", "handler write method, request has the correct method"); - } - }; - - var testSuccess = function (data, response) { - djstest.assertAreEqual(data, "test response", "success callback has the correct data"); - djstest.assertAreEqual(response.status, 200, "success method reached when expected"); - }; - - var testError = function (error) { - var response = error.response; - djstest.assertAreEqual(response.status, 500, "error method reached when expected"); - }; - - MockHttpClient.addResponse("requestUpdateTest", { status: 200, body: "test response" }); - MockHttpClient.addResponse("requestUpdateTest", { status: 500, body: "error response" }); - - odatajs.oData.request({ requestUri: "requestUpdateTest", method: "POST" }, testSuccess, testError, testHandler, MockHttpClient); - - djstest.done(); - }); - - djstest.addTest(function parseMetadataTest() { - var metadata = '<?xml version="1.0" encoding="utf-8"?>' + - '<edmx:Edmx Version="1.0" xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx">' + - '<edmx:DataServices m:DataServiceVersion="4.0" m:MaxDataServiceVersion="4.0" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">' + - '<Schema Namespace="ODataDemo" xmlns="http://schemas.microsoft.com/ado/2009/11/edm">' + - '<EntityType Name="Product">' + - '<Key><PropertyRef Name="ID" /></Key>' + - '<Property Name="ID" Type="Edm.Int32" Nullable="false" />' + - '<Property Name="Name" Type="Edm.String" m:FC_TargetPath="SyndicationTitle" m:FC_ContentKind="text" m:FC_KeepInContent="false" />' + - '<Property Name="Description" Type="Edm.String" m:FC_TargetPath="SyndicationSummary" m:FC_ContentKind="text" m:FC_KeepInContent="false" />' + - '<Property Name="ReleaseDate" Type="Edm.DateTime" Nullable="false" />' + - '<Property Name="DiscontinuedDate" Type="Edm.DateTime" />' + - '<Property Name="Rating" Type="Edm.Int32" Nullable="false" />' + - '<Property Name="Price" Type="Edm.Decimal" Nullable="false" />' + - '<NavigationProperty Name="Category" Relationship="ODataDemo.Product_Category_Category_Products" ToRole="Category_Products" FromRole="Product_Category" />' + - '</EntityType>' + - '<EntityType Name="Category">' + - '<Key>' + - '<PropertyRef Name="ID" />' + - '</Key>' + - '<Property Name="ID" Type="Edm.Int32" Nullable="false" />' + - '<Property Name="Name" Type="Edm.String" m:FC_TargetPath="SyndicationTitle" m:FC_ContentKind="text" m:FC_KeepInContent="true" />' + - '<NavigationProperty Name="Products" Relationship="ODataDemo.Product_Category_Category_Products" ToRole="Product_Category" FromRole="Category_Products" />' + - '</EntityType>' + - '<Association Name="Product_Category_Category_Products"><End Type="ODataDemo.Category" Role="Category_Products" Multiplicity="0..1" />' + - '<End Type="ODataDemo.Product" Role="Product_Category" Multiplicity="*" />' + - '</Association>' + - '<EntityContainer Name="DemoService" m:IsDefaultEntityContainer="true">' + - '<EntitySet Name="Products" EntityType="ODataDemo.Product" />' + - '<EntitySet Name="Categories" EntityType="ODataDemo.Category" />' + - '<FunctionImport Name="Discount" IsBindable="true" m:IsAlwaysBindable="true">' + - '<Parameter Name="product" Type="ODataDemo.Product" />' + - '<Parameter Name="discountPercentage" Type="Edm.Int32" Nullable="false" />' + - '</FunctionImport>' + - '<AssociationSet Name="Products_Category_Categories" Association="ODataDemo.Product_Category_Category_Products">' + - '<End Role="Product_Category" EntitySet="Products" />' + - '<End Role="Category_Products" EntitySet="Categories" />' + - '</AssociationSet>' + - '</EntityContainer>' + - '</Schema></edmx:DataServices></edmx:Edmx>'; - - var parsedMetadata = OData.parseMetadata(metadata); - var expected = - { - "version": "1.0", - "dataServices": - { - "maxDataServiceVersion": "4.0", - "dataServiceVersion": "4.0", - "schema": [ - { - "namespace": "ODataDemo", - "entityType": [ - { - "name": "Product", - "key": { "propertyRef": [{ "name": "ID"}] }, - "property": [ - { "name": "ID", "nullable": "false", "type": "Edm.Int32" }, - { "name": "Name", "type": "Edm.String", "FC_KeepInContent": "false", "FC_ContentKind": "text", "FC_TargetPath": "SyndicationTitle" }, - { "name": "Description", "type": "Edm.String", "FC_KeepInContent": "false", "FC_ContentKind": "text", "FC_TargetPath": "SyndicationSummary" }, - { "name": "ReleaseDate", "nullable": "false", "type": "Edm.DateTime" }, { "name": "DiscontinuedDate", "type": "Edm.DateTime" }, - { "name": "Rating", "nullable": "false", "type": "Edm.Int32" }, { "name": "Price", "nullable": "false", "type": "Edm.Decimal"}], - "navigationProperty": [ - { "name": "Category", "fromRole": "Product_Category", "toRole": "Category_Products", "relationship": "ODataDemo.Product_Category_Category_Products" } - ] - }, { - "name": "Category", - "key": { "propertyRef": [{ "name": "ID"}] }, - "property": [{ "name": "ID", "nullable": "false", "type": "Edm.Int32" }, { "name": "Name", "type": "Edm.String", "FC_KeepInContent": "true", "FC_ContentKind": "text", "FC_TargetPath": "SyndicationTitle"}], - "navigationProperty": [{ "name": "Products", "fromRole": "Category_Products", "toRole": "Product_Category", "relationship": "ODataDemo.Product_Category_Category_Products"}] - }], - "association": [{ "name": "Product_Category_Category_Products", "end": [{ "type": "ODataDemo.Category", "multiplicity": "0..1", "role": "Category_Products" }, { "type": "ODataDemo.Product", "multiplicity": "*", "role": "Product_Category"}]}], - "entityContainer": [{ "name": "DemoService", "isDefaultEntityContainer": "true", "entitySet": [{ "name": "Products", "entityType": "ODataDemo.Product" }, { "name": "Categories", "entityType": "ODataDemo.Category"}], "functionImport": [{ "name": "Discount", "isAlwaysBindable": "true", "isBindable": "true", "parameter": [{ "name": "product", "type": "ODataDemo.Product" }, { "name": "discountPercentage", "nullable": "false", "type": "Edm.Int32"}]}], "associationSet": [{ "name": "Products_Category_Categories", "association": "ODataDemo.Product_Category_Category_Products", "end": [{ "role": "Product_Category", "entitySet": "Products" }, { "role": "Category_Products", "entitySet": "Categories"}]}]}] - }] - } - }; - djstest.assertAreEqualDeep(expected, parsedMetadata, "metadata should be parsed to datajs format"); - djstest.done(); - }); - -})(this);
