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/zaklada/html/node_modules/is-url/test/index.js
try {
  var url = require('is-url');
} catch (e) {
  var url = require('..');
}

var assert = require('assert');

describe('is-url', function () {
  describe('valid', function () {
    it('http://google.com', function () {
      assert(url('http://google.com'));
    });

    it('https://google.com', function () {
      assert(url('https://google.com'));
    });

    it('ftp://google.com', function () {
      assert(url('ftp://google.com'));
    });

    it('http://www.google.com', function () {
      assert(url('http://www.google.com'));
    });

    it('http://google.com/something', function () {
      assert(url('http://google.com/something'));
    });

    it('http://google.com?q=query', function () {
      assert(url('http://google.com?q=query'));
    });

    it('http://google.com#hash', function () {
      assert(url('http://google.com#hash'));
    });

    it('http://google.com/something?q=query#hash', function () {
      assert(url('http://google.com/something?q=query#hash'));
    });

    it('http://google.co.uk', function () {
      assert(url('http://google.co.uk'));
    });

    it('http://www.google.co.uk', function () {
      assert(url('http://www.google.co.uk'));
    });

    it('http://google.cat', function () {
      assert(url('http://google.cat'));
    });

    it('https://d1f4470da51b49289906b3d6cbd65074@app.getsentry.com/13176', function () {
      assert(url('https://d1f4470da51b49289906b3d6cbd65074@app.getsentry.com/13176'));
    });

    it('http://0.0.0.0', function () {
      assert(url('http://0.0.0.0'));
    });

    it('http://localhost', function () {
      assert(url('http://localhost'));
    });

    it('postgres://u:p@example.com:5702/db', function () {
      assert(url('postgres://u:p@example.com:5702/db'));
    });

    it('redis://:123@174.129.42.52:13271', function () {
      assert(url('redis://:123@174.129.42.52:13271'));
    });

    it('mongodb://u:p@example.com:10064/db', function () {
      assert(url('mongodb://u:p@example.com:10064/db'));
    });

    it('ws://chat.example.com/games', function () {
      assert(url('ws://chat.example.com/games'));
    });

    it('wss://secure.example.com/biz', function () {
      assert(url('wss://secure.example.com/biz'));
    });

    it('http://localhost:4000', function () {
      assert(url('http://localhost:4000'));
    });

    it('http://localhost:342/a/path', function () {
      assert(url('http://localhost:342/a/path'));
    });

    it('//google.com', function () {
      assert(url('//google.com'));
    });
  });

  describe('invalid', function () {
    it('http://', function () {
      assert(!url('http://'));
    });

    it('http://google', function () {
      assert(!url('http://google'));
    });

    it('http://google.', function () {
      assert(!url('http://google.'));
    });

    it('google', function () {
      assert(!url('google'));
    });

    it('google.com', function () {
      assert(!url('google.com'));
    });

    it('empty', function () {
      assert(!url(''));
    });

    it('undef', function () {
      assert(!url(undefined));
    });

    it('object', function () {
      assert(!url({}));
    });

    it('re', function () {
      assert(!url(/abc/));
    });
  });

  describe('redos', function () {
    it('redos exploit', function () {
      // Invalid. This should be discovered in under 1 second.
      var attackString = 'a://localhost' + '9'.repeat(100000) + '\t';
      var before = process.hrtime();
      assert(!url(attackString), 'attackString was valid');
      var elapsed = process.hrtime(before);
      assert(elapsed[0] < 1, 'attackString took ' + elapsed[0] + ' > 1 seconds');
    });
  });
});