Fix "Function complete defined in y, not in x, or definitions differ"

This commit is contained in:
Simon Kornblith 2012-02-21 18:12:19 -05:00
parent 4cf4e13a7b
commit e45c48a66f

View file

@ -85,21 +85,24 @@ Zotero_TranslatorTester._sanitizeItem = function(item, forSave) {
if(item.attachments && item.attachments.length) {
// don't actually test URI equality
for (var i=0; i<item.attachments.length; i++) {
if(item.attachments[i].document) {
item.attachments[i].document = false;
} else if(item.attachments[i].url) {
item.attachments[i].url = false;
var attachment = item.attachments[i];
if(attachment.document) {
delete attachment.document;
}
if(attachment.url) {
delete attachment.url;
}
if(attachment.complete) {
delete attachment.complete;
}
}
}
// remove fields to be ignored
for(var j=0, n=Zotero_TranslatorTester_IGNORE_FIELDS.length; j<n; j++) {
if(forSave) {
delete item[Zotero_TranslatorTester_IGNORE_FIELDS[j]]
} else {
item[Zotero_TranslatorTester_IGNORE_FIELDS[j]] = false;
}
delete item[Zotero_TranslatorTester_IGNORE_FIELDS[j]];
}
return item;
@ -444,17 +447,10 @@ Zotero_TranslatorTester.prototype._objectCompare = function(x, y) {
if(y[p] || y[p] === 0) {
switch(typeof(y[p])) {
case 'object':
if (!this._objectCompare(y[p],x[p])) {
if (!this._objectCompare(x[p],y[p])) {
return false;
};
break;
case 'function':
if (typeof(x[p])=='undefined'
|| (y[p].toString() != x[p].toString())) {
this._debug(this, "TranslatorTester: Function "+p+" defined in y, not in x, or definitions differ");
return false;
}
break;
default:
if (y[p] != x[p] && x[p] !== false) { // special exemption: x (test item)
// can have a property set to false