- From: Dominique Hazael-Massieux via cvs-syncmail <cvsmail@w3.org>
- Date: Mon, 23 May 2011 15:08:25 +0000
- To: public-dap-commits@w3.org
Update of /sources/public/2009/dap/contacts/tests/test-cases In directory hutz:/tmp/cvs-serv11570 Modified Files: common.js Log Message: more thorough comparison of contacts Index: common.js =================================================================== RCS file: /sources/public/2009/dap/contacts/tests/test-cases/common.js,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- common.js 23 May 2011 14:02:13 -0000 1.1 +++ common.js 23 May 2011 15:08:23 -0000 1.2 @@ -1,4 +1,41 @@ -var _contact_properties = {"id": "string", "displayName": "string", "name": "contactname", "nickname": "string", "phoneNumbers": "contactfields", "emails": "contactfields", "addresses": "contactaddresses", "ims": "contactfields", "organizations": "contactorganizations", "revision": "date", "birthday": "date", "gender": "string", "note": "string", "photos": "contactfields", "categories": "strings", "urls": "contactfields", "timezone": "string"}; +var _contact_fields = [{"type": "string", + "value": "string", + "pref": "boolean" + } + ]; +var _contact_properties = {"id": "opaquestring", + "displayName": "string", + "name": {"formatted": "string", + "familyName": "string", + "givenName": "string", + "middleName": "string", + "honorificPrefix": "string", + "honorificSuffix": "string"}, + "nickname": "string", + "phoneNumbers": _contact_fields, + "emails": _contact_fields, + "addresses": [{ + "formatted": "string", + "streetAddress": "string", + "locality": "string", + "postalCode": "string", + "region": "string", + "streetAddress": "string" + }], + "ims": _contact_fields, + "organizations": [{ + "name": "string", + "department": "string", + "title": "string" + }], + "revision": "date", + "birthday": "date", + "gender": "string", + "note": "string", + "photos": _contact_fields, + "categories": ["string"], + "urls": _contact_fields, + "timezone": "string"}; function assert_is_contact(contact) { for (i in _contact_properties) { @@ -8,10 +45,30 @@ function assert_contact_same_as(contact, refContact) { for (field in _contact_properties) { - if (_contact_properties[field] == "string") { - assert_equals(contact[field], refContact[field]); - } else { - // @@@ deal with composed properties + _compare_field(contact[field], refContact[field], field, _contact_properties[field]); + } +} + +function _compare_field(actual, expected, fieldname, datatype) { + if (expected == null) { + assert_equals(actual, expected, "Comparing values of " + fieldname); + } else if (datatype == "string" || datatype == "date" || datatype=="opaquestring") { + if (expected == null || datatype != "opaquestring") { + assert_equals(actual, expected, "Comparing values of " + fieldname); + } + } else if (datatype instanceof Array) { + for (i in expected) { + _compare_field(actual[i], expected[i], fieldname, datatype[0]); } + } else if (typeof(datatype)=='object') { + for (var i in actual) { + assert_own_property(expected, i, "Unexpected property " + i + " in " + fieldname); + _compare_field(actual[i], expected[i], fieldname + "." + i, "string"); + } + for (var i in expected) { + assert_own_property(actual, i, "Missing property " + i + " in " + fieldname); + } + } else { + assert_unreached( "Unknown datatype to compare:" + datatype); } -} \ No newline at end of file +}
Received on Monday, 23 May 2011 15:08:27 UTC