Make sure translator test errors appear both in log and in console

This commit is contained in:
Simon Kornblith 2013-04-09 20:36:41 -04:00
parent cc7360dc0c
commit d08ad1143d

View File

@ -51,14 +51,19 @@ Zotero_TranslatorTesters = new function() {
Zotero.Translators.getAllForType(TEST_TYPES[i], new function() { Zotero.Translators.getAllForType(TEST_TYPES[i], new function() {
var type = TEST_TYPES[i]; var type = TEST_TYPES[i];
return function(translators) { return function(translators) {
for(var i=0; i<translators.length; i++) { try {
if(skipTranslators && !skipTranslators[translators[i].translatorID]) { for(var i=0; i<translators.length; i++) {
testers.push(new Zotero_TranslatorTester(translators[i], type)); if(skipTranslators && !skipTranslators[translators[i].translatorID]) {
testers.push(new Zotero_TranslatorTester(translators[i], type));
}
};
if(!(--waitingForTranslators)) {
runTesters(testers, numConcurrentTests, doneCallback);
} }
}; } catch(e) {
Zotero.debug(e);
if(!(--waitingForTranslators)) { Zotero.logError(e);
runTesters(testers, numConcurrentTests, doneCallback);
} }
}; };
}, true); }, true);
@ -70,46 +75,51 @@ Zotero_TranslatorTesters = new function() {
*/ */
function runTesters(testers, numConcurrentTests, doneCallback) { function runTesters(testers, numConcurrentTests, doneCallback) {
var testersRunning = 0; var testersRunning = 0;
var results = []; var results = []
if("getLocaleCollation" in Zotero) { if("getLocaleCollation" in Zotero) {
var collation = Zotero.getLocaleCollation(); var collation = Zotero.getLocaleCollation();
strcmp = function(a, b) { var strcmp = function(a, b) {
return collation.compareString(1, a, b); return collation.compareString(1, a, b);
}; };
} else { } else {
strcmp = function (a, b) { var strcmp = function (a, b) {
return a.toLowerCase().localeCompare(b.toLowerCase()); return a.toLowerCase().localeCompare(b.toLowerCase());
}; };
} }
var testerDoneCallback = function(tester) { var testerDoneCallback = function(tester) {
if(tester.pending.length) return; try {
if(tester.pending.length) return;
Zotero.debug("Done testing "+tester.translator.label);
// Done translating, so serialize test results
testersRunning--;
results.push(tester.serialize());
if(testers.length) {
// Run next tester if one is available
runNextTester();
} else if(testersRunning === 0) {
// Testing is done, so sort results
results = results.sort(function(a, b) {
if(a.type !== b.type) {
return TEST_TYPES.indexOf(a.type) - TEST_TYPES.indexOf(b.type);
}
return strcmp(a.label, b.label);
});
// Call done callback Zotero.debug("Done testing "+tester.translator.label);
doneCallback({
"browser":Zotero.browser, // Done translating, so serialize test results
"version":Zotero.version, testersRunning--;
"results":results results.push(tester.serialize());
});
if(testers.length) {
// Run next tester if one is available
runNextTester();
} else if(testersRunning === 0) {
// Testing is done, so sort results
results = results.sort(function(a, b) {
if(a.type !== b.type) {
return TEST_TYPES.indexOf(a.type) - TEST_TYPES.indexOf(b.type);
}
return strcmp(a.label, b.label);
});
// Call done callback
doneCallback({
"browser":Zotero.browser,
"version":Zotero.version,
"results":results
});
}
} catch(e) {
Zotero.debug(e);
Zotero.logError(e);
} }
}; };