Don't try to validate fields whose values are false

This commit is contained in:
Simon Kornblith 2012-04-17 13:57:34 -04:00
parent ef71d544c1
commit e009f56109

View File

@ -189,7 +189,7 @@ Zotero_TranslatorTester = function(translator, type, debugCallback) {
* Removes document objects, which contain cyclic references, and other fields to be ignored from items * Removes document objects, which contain cyclic references, and other fields to be ignored from items
* @param {Object} Item, in the format returned by Zotero.Item.serialize() * @param {Object} Item, in the format returned by Zotero.Item.serialize()
*/ */
Zotero_TranslatorTester._sanitizeItem = function(item, forSave) { Zotero_TranslatorTester._sanitizeItem = function(item, testItem) {
// remove cyclic references // remove cyclic references
if(item.attachments && item.attachments.length) { if(item.attachments && item.attachments.length) {
// don't actually test URI equality // don't actually test URI equality
@ -225,7 +225,8 @@ Zotero_TranslatorTester._sanitizeItem = function(item, forSave) {
continue; continue;
} }
if(!item[field] || !(fieldID = Zotero.ItemFields.getID(field))) { if((!item[field] && (!testItem || item[field] !== false)
|| !(fieldID = Zotero.ItemFields.getID(field))) {
delete item[field]; delete item[field];
continue; continue;
} }
@ -501,14 +502,14 @@ Zotero_TranslatorTester.prototype._checkResult = function(test, translate, retur
} }
for(var i=0, n=test.items.length; i<n; i++) { for(var i=0, n=test.items.length; i<n; i++) {
var testItem = Zotero_TranslatorTester._sanitizeItem(test.items[i]); var testItem = Zotero_TranslatorTester._sanitizeItem(test.items[i], true);
var translatedItem = Zotero_TranslatorTester._sanitizeItem(translate.newItems[i]); var translatedItem = Zotero_TranslatorTester._sanitizeItem(translate.newItems[i]);
if(!this._compare(testItem, translatedItem)) { if(!this._compare(testItem, translatedItem)) {
var m = translate.newItems.length; var m = translate.newItems.length;
test.itemsReturned = new Array(m); test.itemsReturned = new Array(m);
for(var j=0; j<m; j++) { for(var j=0; j<m; j++) {
test.itemsReturned[j] = Zotero_TranslatorTester._sanitizeItem(translate.newItems[i], true); test.itemsReturned[j] = Zotero_TranslatorTester._sanitizeItem(translate.newItems[i]);
} }
testDoneCallback(this, test, "unknown", "Item "+i+" does not match"); testDoneCallback(this, test, "unknown", "Item "+i+" does not match");
@ -570,7 +571,7 @@ Zotero_TranslatorTester.prototype._createTest = function(translate, multipleMode
var items = "multiple"; var items = "multiple";
} else { } else {
for(var i=0, n=translate.newItems.length; i<n; i++) { for(var i=0, n=translate.newItems.length; i<n; i++) {
Zotero_TranslatorTester._sanitizeItem(translate.newItems[i], true); Zotero_TranslatorTester._sanitizeItem(translate.newItems[i]);
} }
var items = translate.newItems; var items = translate.newItems;
} }