[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: tests.js
'use strict'; var has = require('has'); var inspect = require('object-inspect'); var forEach = require('foreach'); var availableFlags = require('available-regexp-flags'); var regexProperties = require('available-regexp-flags/properties'); var sortedFlags = availableFlags.slice().sort(function (a, b) { return a.localeCompare(b); }).join(''); var getRegexLiteral = function (stringRegex) { try { // eslint-disable-next-line no-new-func return Function('return ' + stringRegex + ';')(); } catch (e) { /**/ } return null; }; module.exports = function runTests(flags, t) { t.equal(flags(/a/g), 'g', 'flags(/a/g) !== "g"'); t.equal(flags(/a/gmi), 'gim', 'flags(/a/gmi) !== "gim"'); t.equal(flags(new RegExp('a', 'gmi')), 'gim', 'flags(new RegExp("a", "gmi")) !== "gim"'); t.equal(flags(/a/), '', 'flags(/a/) !== ""'); t.equal(flags(new RegExp('a')), '', 'flags(new RegExp("a")) !== ""'); forEach(availableFlags, function (flag) { var property = regexProperties[flag]; t.test(property + ' flag', function (st) { st.equal(flags(getRegexLiteral('/a/' + flag)), flag, 'flags(/a/' + flag + ') !== ' + inspect(flag)); st.equal(flags(new RegExp('a', flag)), flag, 'flags(new RegExp("a", ' + inspect(flag) + ')) !== ' + inspect(flag)); st.end(); }); }); t.test('sorting', function (st) { st.equal(flags(/a/gim), 'gim', 'flags(/a/gim) !== "gim"'); st.equal(flags(/a/mig), 'gim', 'flags(/a/mig) !== "gim"'); st.equal(flags(/a/mgi), 'gim', 'flags(/a/mgi) !== "gim"'); if (has(RegExp.prototype, 'sticky')) { st.equal(flags(getRegexLiteral('/a/gyim')), 'gimy', 'flags(/a/gyim) !== "gimy"'); } if (has(RegExp.prototype, 'unicode')) { st.equal(flags(getRegexLiteral('/a/ugmi')), 'gimu', 'flags(/a/ugmi) !== "gimu"'); } if (has(RegExp.prototype, 'dotAll')) { st.equal(flags(getRegexLiteral('/a/sgmi')), 'gims', 'flags(/a/sgmi) !== "gims"'); } var randomFlags = availableFlags.slice().sort(function () { return Math.random() > 0.5 ? 1 : -1; }).join(''); st.equal( flags(getRegexLiteral('/a/' + randomFlags)), sortedFlags, 'random: flags(/a/' + randomFlags + ') === ' + inspect(sortedFlags) ); st.end(); }); t.test('basic examples', function (st) { st.equal(flags(/a/g), 'g', '(/a/g).flags !== "g"'); st.equal(flags(/a/gmi), 'gim', '(/a/gmi).flags !== "gim"'); st.equal(flags(new RegExp('a', 'gmi')), 'gim', 'new RegExp("a", "gmi").flags !== "gim"'); st.equal(flags(/a/), '', '(/a/).flags !== ""'); st.equal(flags(new RegExp('a')), '', 'new RegExp("a").flags !== ""'); st.end(); }); t.test('generic flags', function (st) { st.equal(flags({}), ''); st.equal(flags({ ignoreCase: true }), 'i'); st.equal(flags({ dotAll: 1, global: 0, sticky: 1, unicode: 1 }), 'suy'); st.equal(flags({ __proto__: { multiline: true } }), 'm'); var obj = {}; forEach(availableFlags, function (flag) { obj[regexProperties[flag]] = true; }); st.equal(flags(obj), sortedFlags, 'an object with every available flag: ' + sortedFlags); st.end(); }); t.test('throws properly', function (st) { var nonObjects = ['', false, true, 42, NaN, null, undefined]; st.plan(nonObjects.length); var throwsOnNonObject = function (nonObject) { st['throws'](flags.bind(null, nonObject), TypeError, inspect(nonObject) + ' is not an Object'); }; nonObjects.forEach(throwsOnNonObject); }); };
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.66 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002