From 3ca5526f2950342794a2f27bbc97da7284cf6bc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adomas=20Ven=C4=8Dkauskas?= Date: Tue, 20 Sep 2016 16:13:55 +0300 Subject: [PATCH] Fix translator tester on xul extension --- .../tools/testTranslators/testTranslators.js | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/chrome/content/zotero/tools/testTranslators/testTranslators.js b/chrome/content/zotero/tools/testTranslators/testTranslators.js index f91b8de6f..c4c1f2814 100644 --- a/chrome/content/zotero/tools/testTranslators/testTranslators.js +++ b/chrome/content/zotero/tools/testTranslators/testTranslators.js @@ -550,18 +550,27 @@ function haveTranslators(translators, type) { return a.label.localeCompare(b.label); }); + var promises = []; for(var i in translators) { - var translatorTestView = new TranslatorTestView(); - translatorTestView.initWithTranslatorAndType(translators[i], type); - if(translatorTestView.canRun) { - translatorTestViewsToRun[type].push(translatorTestView); - } + promises.push(translators[i].getCode()); } - translatorTestStats[type].update(); - var ev = document.createEvent('HTMLEvents'); - ev.initEvent('ZoteroHaveTranslators-'+type, true, true); - document.dispatchEvent(ev); + return Promise.all(promises).then(function(codes) { + for(var i in translators) { + // Make sure translator code is cached on the object + translators[i].code = codes[i]; + var translatorTestView = new TranslatorTestView(); + translatorTestView.initWithTranslatorAndType(translators[i], type); + if(translatorTestView.canRun) { + translatorTestViewsToRun[type].push(translatorTestView); + } + } + + translatorTestStats[type].update(); + var ev = document.createEvent('HTMLEvents'); + ev.initEvent('ZoteroHaveTranslators-'+type, true, true); + document.dispatchEvent(ev); + }); } /**