{ "id": "78189", "key": "TIMOB-4769", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "11362", "description": "Mobile 1.8.0 M09", "name": "Sprint 2011-30", "archived": true, "released": true, "releaseDate": "2011-08-01" } ], "resolution": { "id": "3", "description": "The problem is a duplicate of an existing issue.", "name": "Duplicate" }, "resolutiondate": "2011-07-27T08:12:35.000+0000", "created": "2011-07-25T15:05:34.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "drillbit", "xml" ], "versions": [ { "id": "11367", "description": "", "name": "Release 1.7.1", "archived": true, "released": true, "releaseDate": "2011-06-21" } ], "issuelinks": [ { "id": "11776", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "outwardIssue": { "id": "77903", "key": "TIMOB-4703", "fields": { "summary": "Android: Comparison of proxies for nodes that should be the same sometimes do not work.", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Low", "id": "4" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "dthorp", "key": "dthorp", "displayName": "Don Thorp", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2014-06-19T12:46:42.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10202", "name": "Android", "description": "Android Platform" } ], "description": "XML.Node drill tests:\r\napiXmlNodeAppendChild\r\napiXmlNodeInsertBefore\r\napiXmlNodeRemoveChild\r\napiXmlNodeReplaceChild\r\n\r\nfails when comparing Ti.Element to Ti.Element. Objects in question should not have been copied so should be equal to one another from memory address standpoint.", "attachment": [], "flagged": false, "summary": "Android: XML.Node drillbit tests fails when comparing Ti.Element to Ti.Element", "creator": { "name": "opiecyrus", "key": "opiecyrus", "displayName": "Opie Cyrus", "active": true, "timeZone": "America/Chicago" }, "subtasks": [], "reporter": { "name": "opiecyrus", "key": "opiecyrus", "displayName": "Opie Cyrus", "active": true, "timeZone": "America/Chicago" }, "environment": null, "comment": { "comments": [ { "id": "160591", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "This ticket was made during the XML Node drillbit test work and specifically because {{shouldBeExactly}} was failing. In a [pull request|https://github.com/appcelerator/titanium_mobile/pull/221] comment I mention that I don't think {{shouldBeExactly}} can work, so this ticket is probably invalid. If meant to refer to {{shouldBe}} (as opposed to {{shouldBeExactly}}), it's a duplicate of TIMOB-4703.\r\n\r\nI pasted my reasoning from the pull request comment here as well:\r\n\r\nIt's my opinion that we can't ever use {{shouldBeExactly}} with node proxies (nodes, elements, attributes, etc.). {{shouldBeExactly}} uses {{===}}, which in the case of non-String, non-Number and non-Boolean objects \"return(s) true if x and y refer to the same object\". (From [ECMAScript|http://www.ecmascript.org/docs.php] spec.) They'll never refer to the same object in our case, because we take what the underlying XML DOM library gives us and wrap it in a proxy on every function/property call. So although we may be wrapping the same underlying object in the proxies, the proxies themselves are different objects. {{==}} (and thus {{shouldBe}}) will work if the pull request for TIMOB-4703 gets put in, but {{===}} and {{shouldBeExactly}} will never work.\r\n\r\nTo put it another way, we don't keep our own tree of proxies that mirrors the underlying document tree. This is unlike our {{Titanium.UI}} view hierarchy implementation, in which we really do keep {{children}} collections containing proxies that mirror the underlying children collection of a native Android View.", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2011-07-26T09:40:40.000+0000", "updated": "2011-07-26T09:46:14.000+0000" } ], "maxResults": 1, "total": 1, "startAt": 0 } } }