mirror of
https://github.com/wekan/wekan.git
synced 2025-12-20 01:10:12 +01:00
Fixed Non-ASCII attachment filename will crash when downloading.
Thanks to xet7 ! Fixes #2759
This commit is contained in:
parent
843ff8eaaa
commit
c2da477735
277 changed files with 30568 additions and 52 deletions
198
packages/wekan-cfs-power-queue/tests.js
Normal file
198
packages/wekan-cfs-power-queue/tests.js
Normal file
|
|
@ -0,0 +1,198 @@
|
|||
"use strict";
|
||||
|
||||
function equals(a, b) {
|
||||
return !!(JSON.stringify(a) === JSON.stringify(b));
|
||||
}
|
||||
|
||||
Tinytest.add('PowerQueue - scope', function(test) {
|
||||
|
||||
test.isTrue(typeof PowerQueue !== 'undefined', 'The PowerQueue scope is missing, please add the power-queue package');
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
// We run 5 tasks in serial mode
|
||||
Tinytest.addAsync('PowerQueue - test serial run', function (test, onComplete) {
|
||||
var queue = new PowerQueue({
|
||||
name: 'test queue 1',
|
||||
autostart: false,
|
||||
maxProcessing: 1,
|
||||
debug: true,
|
||||
// When this task is released we do our tests
|
||||
onEnded: function() {
|
||||
console.log('It ended');
|
||||
// Check that we ran the expected number of tasks
|
||||
test.equal(counter, 5, 'counter did not match number of tasks');
|
||||
// Check that the result was correct
|
||||
test.equal(result, expectedResult, 'result was unexpected');
|
||||
// We are done testing
|
||||
onComplete();
|
||||
}
|
||||
});
|
||||
|
||||
var result = '';
|
||||
var expectedResult = '12345';
|
||||
var counter = 0;
|
||||
|
||||
var checkCounter = function(id, next) {
|
||||
console.log('test queue 1 - Run task: ' + id);
|
||||
// Keep a counter
|
||||
counter++;
|
||||
// push id to result
|
||||
result += id;
|
||||
// call next task
|
||||
next();
|
||||
};
|
||||
|
||||
|
||||
// Add the tasks to the queue
|
||||
queue.add(function(next) { checkCounter('1', next); });
|
||||
queue.add(function(next) { checkCounter('2', next); });
|
||||
queue.add(function(next) { checkCounter('3', next); });
|
||||
queue.add(function(next) { checkCounter('4', next); });
|
||||
queue.add(function(next) { checkCounter('5', next); });
|
||||
|
||||
// Run the queue
|
||||
queue.run();
|
||||
});
|
||||
|
||||
// We run 5 tasks in serial mode but pause the queue on 3
|
||||
Tinytest.addAsync('PowerQueue - test serial pause', function (test, onComplete) {
|
||||
var queue = new PowerQueue({
|
||||
name: 'test queue 2',
|
||||
autostart: false,
|
||||
maxProcessing: 1,
|
||||
debug: true,
|
||||
// When this task is released we do our tests
|
||||
onPaused: function() {
|
||||
console.log('Its paused');
|
||||
// Check that we ran the expected number of tasks
|
||||
test.equal(counter, 3, 'counter did not match number of tasks');
|
||||
// Check that the result was correct
|
||||
test.equal(result, expectedResult, 'result was unexpected');
|
||||
// We are done testing
|
||||
onComplete();
|
||||
}
|
||||
});
|
||||
|
||||
var result = '';
|
||||
var expectedResult = '123';
|
||||
var counter = 0;
|
||||
|
||||
var checkCounter = function(id, next) {
|
||||
console.log('test queue 2 - Run task: ' + id);
|
||||
// Keep a counter
|
||||
counter++;
|
||||
// push id to result
|
||||
result += id;
|
||||
// call next task
|
||||
if (id === '3')
|
||||
next('pause')
|
||||
else
|
||||
next();
|
||||
};
|
||||
|
||||
|
||||
// Add the tasks to the queue
|
||||
queue.add(function(next) { checkCounter('1', next); });
|
||||
queue.add(function(next) { checkCounter('2', next); });
|
||||
queue.add(function(next) { checkCounter('3', next); });
|
||||
queue.add(function(next) { checkCounter('4', next); });
|
||||
queue.add(function(next) { checkCounter('5', next); });
|
||||
|
||||
// Run the queue
|
||||
queue.run();
|
||||
});
|
||||
|
||||
// We run 5 tasks in serial mode but pause the queue on 3
|
||||
Tinytest.addAsync('PowerQueue - test 2 task in parallel', function (test, onComplete) {
|
||||
var queue = new PowerQueue({
|
||||
name: 'test queue 3',
|
||||
autostart: false,
|
||||
maxProcessing: 2,
|
||||
debug: true,
|
||||
// When this task is released we do our tests
|
||||
onEnded: function() {
|
||||
console.log('Its paused');
|
||||
// Check that we ran the expected number of tasks
|
||||
test.equal(counter, 10, 'counter did not match number of tasks');
|
||||
// Check that the result was correct
|
||||
test.equal(result, expectedResult, 'result was unexpected');
|
||||
// We are done testing
|
||||
onComplete();
|
||||
}
|
||||
});
|
||||
|
||||
// start 1-----3-------4-------6------------------------9-----------------------X
|
||||
// 2-----------------5---------------7--------8-----------10------X
|
||||
// ms 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100
|
||||
// result 1 2 3 4 5 6 7 8 9 10
|
||||
// result 1 3 2 4 5 7 6 8 10 9
|
||||
|
||||
var wait = {
|
||||
'1': 10,
|
||||
'2': 25,
|
||||
'3': 10,
|
||||
'4': 10,
|
||||
'5': 20,
|
||||
'6': 30,
|
||||
'7': 10,
|
||||
'8': 15,
|
||||
'9': 30,
|
||||
'10': 10,
|
||||
};
|
||||
|
||||
// 1324
|
||||
|
||||
var result = '';
|
||||
var expectedResult = '13245768109';
|
||||
var counter = 0;
|
||||
|
||||
var checkCounter = function(id, next) {
|
||||
console.log('test queue 3 - Run task: ' + id);
|
||||
// Keep a counter
|
||||
counter++;
|
||||
// push id to result
|
||||
Meteor.setTimeout(function() {
|
||||
result += id;
|
||||
// call next task
|
||||
next();
|
||||
}, wait[id] * 5); // give it a factor 2 to make sure we get the correct result
|
||||
};
|
||||
|
||||
|
||||
// Add the tasks to the queue
|
||||
queue.add(function(next) { checkCounter('1', next); });
|
||||
queue.add(function(next) { checkCounter('2', next); });
|
||||
queue.add(function(next) { checkCounter('3', next); });
|
||||
queue.add(function(next) { checkCounter('4', next); });
|
||||
queue.add(function(next) { checkCounter('5', next); });
|
||||
queue.add(function(next) { checkCounter('6', next); });
|
||||
queue.add(function(next) { checkCounter('7', next); });
|
||||
queue.add(function(next) { checkCounter('8', next); });
|
||||
queue.add(function(next) { checkCounter('9', next); });
|
||||
queue.add(function(next) { checkCounter('10', next); });
|
||||
|
||||
// Run the queue
|
||||
queue.run();
|
||||
});
|
||||
//Test API:
|
||||
//test.isFalse(v, msg)
|
||||
//test.isTrue(v, msg)
|
||||
//test.equal(actual, expected, message, not)
|
||||
//test.length(obj, len)
|
||||
//test.include(s, v)
|
||||
//test.isNaN(v, msg)
|
||||
//test.isUndefined(v, msg)
|
||||
//test.isNotNull
|
||||
//test.isNull
|
||||
//test.throws(func)
|
||||
//test.instanceOf(obj, klass)
|
||||
//test.notEqual(actual, expected, message)
|
||||
//test.runId()
|
||||
//test.exception(exception)
|
||||
//test.expect_fail()
|
||||
//test.ok(doc)
|
||||
//test.fail(doc)
|
||||
//test.equal(a, b, msg)
|
||||
Loading…
Add table
Add a link
Reference in a new issue