Collect incremental results for a run within Zotero_TranslatorTesters
This requires provo and translation-server updates.
This commit is contained in:
parent
7f5e57f606
commit
43bd1b7082
|
@ -38,11 +38,14 @@ try {
|
||||||
|
|
||||||
Zotero_TranslatorTesters = new function() {
|
Zotero_TranslatorTesters = new function() {
|
||||||
const TEST_TYPES = ["web", "import", "export", "search"];
|
const TEST_TYPES = ["web", "import", "export", "search"];
|
||||||
|
var collectedResults = {};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Runs all tests
|
* Runs all tests
|
||||||
*/
|
*/
|
||||||
this.runAllTests = function (numConcurrentTests, skipTranslators, resultsCallback) {
|
this.runAllTests = function (numConcurrentTests, skipTranslators, writeDataCallback) {
|
||||||
|
var id = Math.random() * (100000000 - 1) + 1;
|
||||||
|
|
||||||
waitForDialog();
|
waitForDialog();
|
||||||
|
|
||||||
if(!Zotero) {
|
if(!Zotero) {
|
||||||
|
@ -65,7 +68,7 @@ Zotero_TranslatorTesters = new function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
if(!(--waitingForTranslators)) {
|
if(!(--waitingForTranslators)) {
|
||||||
runTesters(testers, numConcurrentTests, resultsCallback);
|
runTesters(testers, numConcurrentTests, id, writeDataCallback);
|
||||||
}
|
}
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
Zotero.debug(e);
|
Zotero.debug(e);
|
||||||
|
@ -79,7 +82,7 @@ Zotero_TranslatorTesters = new function() {
|
||||||
/**
|
/**
|
||||||
* Runs a specific set of tests
|
* Runs a specific set of tests
|
||||||
*/
|
*/
|
||||||
function runTesters(testers, numConcurrentTests, resultsCallback) {
|
function runTesters(testers, numConcurrentTests, id, writeDataCallback) {
|
||||||
var testersRunning = 0;
|
var testersRunning = 0;
|
||||||
var results = []
|
var results = []
|
||||||
|
|
||||||
|
@ -93,7 +96,7 @@ Zotero_TranslatorTesters = new function() {
|
||||||
testersRunning--;
|
testersRunning--;
|
||||||
let results = tester.serialize();
|
let results = tester.serialize();
|
||||||
let last = !testers.length && !testersRunning;
|
let last = !testers.length && !testersRunning;
|
||||||
resultsCallback(results, last);
|
collectData(id, results, last, writeDataCallback);
|
||||||
|
|
||||||
if(testers.length) {
|
if(testers.length) {
|
||||||
// Run next tester if one is available
|
// Run next tester if one is available
|
||||||
|
@ -139,6 +142,37 @@ Zotero_TranslatorTesters = new function() {
|
||||||
};
|
};
|
||||||
Services.ww.registerNotification(winobserver);
|
Services.ww.registerNotification(winobserver);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function collectData(id, results, last, writeDataCallback) {
|
||||||
|
if (!collectedResults[id]) {
|
||||||
|
collectedResults[id] = [];
|
||||||
|
}
|
||||||
|
collectedResults[id].push(results);
|
||||||
|
|
||||||
|
//
|
||||||
|
// TODO: Only do the below every x collections, or if last == true
|
||||||
|
//
|
||||||
|
// Sort results
|
||||||
|
if ("getLocaleCollation" in Zotero) {
|
||||||
|
let collation = Zotero.getLocaleCollation();
|
||||||
|
var strcmp = function (a, b) {
|
||||||
|
return collation.compareString(1, a, b);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var strcmp = function (a, b) {
|
||||||
|
return a.toLowerCase().localeCompare(b.toLowerCase());
|
||||||
|
};
|
||||||
|
}
|
||||||
|
collectedResults[id].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);
|
||||||
|
});
|
||||||
|
|
||||||
|
writeDataCallback(collectedResults[id], last);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue
Block a user