HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux wordpress-ubuntu-s-2vcpu-4gb-fra1-01 5.4.0-169-generic #187-Ubuntu SMP Thu Nov 23 14:52:28 UTC 2023 x86_64
User: root (0)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/tana/frontend/node_modules/stream-throttle/test/throttle_test.js
var async = require('async');
var Throttle = require('../index.js').Throttle;
var ThrottleGroup = require('../index.js').ThrottleGroup;

var sendStr = (function() {
    var s = '0123456789xyzXYZ?!\0åéîõü$£€*<>'; // 30 characters
    for (var i = 0, str = ''; i < 1000; i++)
        str += s;
    return str; // 30K characters
})();

var opts = {rate: 100000}; // 100 KiB/s

var testSendRecv = function(t, cb) {
    var recvStr = '';
    t.on('data', function(chunk) {
        recvStr += chunk;
    });
    t.on('end', function() {
        cb(sendStr == recvStr);
    });
    t.write(sendStr, function() {
        t.end();
    });
};

exports.testThrottle = function(test) {
    var t = new Throttle(opts);

    test.expect(1);
    testSendRecv(t, function(ok) {
        test.ok(ok, "received string should equal sent string");
        test.done();
    });
};

exports.testGroupThrottle = function(test) {
    var tg = new ThrottleGroup(opts);

    test.expect(3);
    async.each([1, 2, 3], function(i, done) {
        testSendRecv(tg.throttle(), function(ok) {
            test.ok(ok, "received string should equal sent string");
            done();
        });
    }, function() {
        test.done();
    });
};