!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/sync/node_modules/lru-memoizer/test/   drwxr-xr-x
Free 13.27 GB of 57.97 GB (22.89%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     lru-memoizer.itemmaxage.test.js (5.92 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
var memoizer = require('./..');
var assert = require('chai').assert;

describe('lru-memoizer (itemMaxAge)', function () {
  var loadTimes = 0, memoized;

  beforeEach(function () {
    loadTimes = 0;
  });

  it('should use default behavior if not configured', function (done) {
    memoized = memoizer({
      load: function (a, b, callback) {
        loadTimes++;
        setTimeout(function () {
          callback(null, a + b);
        }, 100);
      },
      hash: function (a, b) {
        return a + '-' + b;
      },
      max: 10,
      maxAge: 500
    });

    memoized(1,2, function (err, result) {
      assert.isNull(err);
      assert.strictEqual(result, 3);
      assert.strictEqual(loadTimes, 1);

      // Not expired yet.
      setTimeout(function() {
        memoized(1,2, function (err, result) {
          assert.isNull(err);
          assert.strictEqual(result, 3);
          assert.strictEqual(loadTimes, 1);

          // Expired, load times will increase.
          setTimeout(function() {
            memoized(1,2, function (err, result) {
              assert.isNull(err);
              assert.strictEqual(result, 3);
              assert.strictEqual(loadTimes, 2);
              done();
            });
          }, 200);
        });
      }, 400);
    });
  });

  it('should return all args and the result in the itemMaxAge function', function (done) {
    var args;
    memoized = memoizer({
      load: function (a, b, callback) {
        loadTimes++;
        setTimeout(function () {
          callback(null, a + b);
        }, 100);
      },
      itemMaxAge: function (a, b, result) {
        args = arguments;
        return 1000;
      },
      hash: function (a, b) {
        return a + '-' + b;
      },
      max: 10,
      maxAge: 600
    });

    memoized(1,2, function (err, result) {
      assert.isNull(err);
      assert.strictEqual(args[0], 1);
      assert.strictEqual(args[1], 2);
      assert.strictEqual(args[2], 3);
      done();
    });
  });

  it('should overwrite the default behavior if configured', function (done) {
    var maxAge = 0;
    var lastKey = null;
    memoized = memoizer({
      load: function (a, b, callback) {
        loadTimes++;
        setTimeout(function () {
          callback(null, a + b);
        }, 100);
      },
      itemMaxAge: function (a, b, result) {
        lastKey = a + '-' + b;
        // In this test, we set the maxAge of the current item to (result*100).
        // If the result is 3, the max age of this item will be 300.
        maxAge = result * 100;
        return maxAge;
      },
      hash: function (a, b) {
        return a + '-' + b;
      },
      max: 10,
      maxAge: 600
    });

    memoized(1,2, function (err, result) {
      assert.isNull(err);
      assert.strictEqual(maxAge, 300);
      assert.strictEqual(lastKey, '1-2');
      assert.strictEqual(result, 3);
      assert.strictEqual(loadTimes, 1);

      // Not expired yet after 200 ms, because the expiration is 300
      setTimeout(function() {
        memoized(1,2, function (err, result) {
          assert.isNull(err);
          assert.strictEqual(maxAge, 300);
          assert.strictEqual(lastKey, '1-2');
          assert.strictEqual(result, 3);
          assert.strictEqual(loadTimes, 1);

          // Expired because now we are at 350 ms (even though gloabl expiration has been set to 600)
          setTimeout(function() {
            memoized(1,2, function (err, result) {
              assert.isNull(err);
              assert.strictEqual(maxAge, 300);
              assert.strictEqual(lastKey, '1-2');
              assert.strictEqual(result, 3);
              assert.strictEqual(loadTimes, 2);

              // Expired again, because 350ms have passed again.
              setTimeout(function() {
                memoized(1,2, function (err, result) {
                  assert.isNull(err);
                  assert.strictEqual(maxAge, 300);
                  assert.strictEqual(lastKey, '1-2');
                  assert.strictEqual(result, 3);
                  assert.strictEqual(loadTimes, 3);
                  done();
                });
              }, 350);
            });
          }, 150);
        });
      }, 200);
    });
  });

  it('should overwrite the default behavior if configured (sync)', function (done) {
    var maxAge = 0;
    var lastKey = null;
    memoized = memoizer.sync({
      load: function (a, b) {
        loadTimes++;
        return a + b;
      },
      itemMaxAge: function (a, b, result) {
        lastKey = a + '-' + b;
        // In this test, we set the maxAge of the current item to (result*100).
        // If the result is 3, the max age of this item will be 300.
        maxAge = result * 100;
        return maxAge;
      },
      hash: function (a, b) {
        return a + '-' + b;
      },
      max: 10,
      maxAge: 600
    });

    var result = memoized(1, 2);
    assert.strictEqual(maxAge, 300);
    assert.strictEqual(lastKey, '1-2');
    assert.strictEqual(result, 3);
    assert.strictEqual(loadTimes, 1);

    // Not expired yet after 200 ms, because the expiration is 300
    setTimeout(function() {
      result = memoized(1, 2);
      assert.strictEqual(maxAge, 300);
      assert.strictEqual(lastKey, '1-2');
      assert.strictEqual(result, 3);
      assert.strictEqual(loadTimes, 1);

      // Expired because now we are at 350 ms (even though gloabl expiration has been set to 600)
      setTimeout(function() {
        result = memoized(1,2);
        assert.strictEqual(maxAge, 300);
        assert.strictEqual(lastKey, '1-2');
        assert.strictEqual(result, 3);
        assert.strictEqual(loadTimes, 2);

          // Expired again, because 350ms have passed again.
          setTimeout(function() {
            result = memoized(1,2);
            assert.strictEqual(maxAge, 300);
            assert.strictEqual(lastKey, '1-2');
            assert.strictEqual(result, 3);
            assert.strictEqual(loadTimes, 3);
            done();
          }, 350);
      }, 150);
    }, 200);
  });
});

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0505 ]--