%PDF- %PDF- 403WebShell
403Webshell
Server IP : 37.220.80.31  /  Your IP : 18.188.143.21
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64
User : www-root ( 1010)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/www-root/data/www/dev.artlot24.ru/bitrix/js/main/core/test/old/core/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/js/main/core/test/old/core//core.test.js
import BX from './internal/bootstrap';


describe('old/core.js', () => {
	describe('BX', () => {
		it('Should be a function', () => {
			assert.ok(typeof BX === 'function');
		});

		it('Should return element if passed element', () => {
			const element = document.createElement('div');
			assert.ok(BX(element) === element);
		});

		it('Should return element if passed id', () => {
			const element = document.createElement('div');
			element.id = 'testElement';
			document.body.appendChild(element);

			assert.ok(BX('testElement') === element);
		});

		it('Should return call passed callback function', () => {
			const callbackStub = sinon.spy();

			BX(callbackStub);

			assert.ok(callbackStub.calledOnce);
		});

		it('Should return null if passed empty string', () => {
			assert.ok(BX('') === null);
		});

		it('Should return null if passed null', () => {
			assert.ok(BX(null) === null);
		});

		it('Should return null if passed number', () => {
			assert.ok(BX(2) === null);
		});

		it('Should return null if passed undefined', () => {
			assert.ok(BX() === null);
		});

		it('Should return null if passed object', () => {
			assert.ok(BX({}) === null);
			assert.ok(BX([]) === null);
		});
	});

	describe('#util', () => {
		describe('#array_values', () => {
			it('Should return not nil values from passed array', () => {
				const numbers = [0, '0', 1, '1'];
				const nils = [null, undefined, ,];
				const stringifiedNils = ['null', 'undefined'];
				const functions = [function() {}, () => {}, class Test1 {}];
				const objects = [{}, [], new (class Test1 {})];

				const source = [
					...numbers,
					...nils,
					...stringifiedNils,
					...functions,
					...objects,
				];

				const actual = [
					...numbers,
					...stringifiedNils,
					...functions,
					...objects,
				];

				const result = BX.util.array_values(source);

				assert.deepEqual(actual, result);
			});

			it('Should return not nil values from passed object', () => {
				const numbers = {prop0: 0, prop0s: '0', prop1: 1, prop1s: '1'};
				const nils = {propNull: null, propUndefined: undefined};
				const stringifiedNils = {propNullString: 'null', propUndefinedString: 'undefined'};
				const functions = {propFunction: function() {}, propArrayFunction: () => {}};
				const objects = {propObject: {}, propArray: [], propTypedObject: (new class Test1 {})};

				const source = {
					...numbers,
					...nils,
					...stringifiedNils,
					...functions,
					...objects,
				};

				const actual = [
					...Object.values(numbers),
					...Object.values(stringifiedNils),
					...Object.values(functions),
					...Object.values(objects),
				];

				const result = BX.util.array_values(source);

				assert.deepEqual(actual, result);
			});

			it('Should return not nil values from passed custom object', () => {
				const numbers = {prop0: 0, prop0s: '0', prop1: 1, prop1s: '1'};
				const nils = {propNull: null, propUndefined: undefined};
				const stringifiedNils = {propNullString: 'null', propUndefinedString: 'undefined'};
				const functions = {propFunction: function() {}, propArrayFunction: () => {}};
				const objects = {propObject: {}, propArray: [], propTypedObject: (new class Test1 {})};

				class SourceClass {
					prop0 = numbers.prop0;
					prop0s = numbers.prop0s;
					prop1 = numbers.prop1;
					prop1s = numbers.prop1s;
					propNull = nils.propNull;
					propUndefined = nils.propUndefined;
					propNullString = stringifiedNils.propNullString;
					propUndefinedString = stringifiedNils.propUndefinedString;
					propFunction = functions.propFunction;
					propArrayFunction = functions.propArrayFunction;
					propObject = objects.propObject;
					propArray = objects.propArray;
					propTypedObject = objects.propTypedObject;
				}

				const actual = [
					...Object.values(numbers),
					...Object.values(stringifiedNils),
					...Object.values(functions),
					...Object.values(objects),
				];

				const result = BX.util.array_values(new SourceClass());

				assert.deepEqual(actual, result);
			});

			it('Should return new array', () => {
				const source = [];
				const result = BX.util.array_values(source);

				assert.ok(Array.isArray(result));
				assert.ok(source !== result);
			});

			it('Should does not throws if passed invalid param', () => {
				assert.doesNotThrow(() => {
					BX.util.array_values();
					BX.util.array_values('');
					BX.util.array_values(123123);
					BX.util.array_values(null);
				});
			});

			describe('Return array always', () => {
				it('Should return array if passed string', () => {
					assert.ok(Array.isArray(BX.util.array_values('')));
				});

				it('Should return array if passed null', () => {
					assert.ok(Array.isArray(BX.util.array_values(null)));
				});

				it('Should return array if passed undefined', () => {
					assert.ok(Array.isArray(BX.util.array_values()));
				});

				it('Should return array if passed number', () => {
					assert.ok(Array.isArray(BX.util.array_values(2)));
				});

				it('Should return array if passed boolean', () => {
					assert.ok(Array.isArray(BX.util.array_values(true)));
				});

				it('Should return array if passed function', () => {
					assert.ok(Array.isArray(BX.util.array_values(() => {})));
				});
			});
		});

		describe('#array_keys', () => {
			it('Should return keys for not nil array values', () => {
				const numbers = [0, '0', 1, '1'];
				const nils = [null, undefined, ,];
				const stringifiedNils = ['null', 'undefined'];
				const functions = [function() {}, () => {}, class Test1 {}];
				const objects = [{}, [], new (class Test1 {})];

				const source = [
					...numbers,
					...nils,
					...stringifiedNils,
					...functions,
					...objects,
				];

				const actual = Object.keys([
					...numbers,
					, , ,
					...stringifiedNils,
					...functions,
					...objects,
				]);

				const result = BX.util.array_keys(source);

				assert.deepEqual(actual, result);
			});

			it('Should return keys for not nil object item values', () => {
				const numbers = {prop0: 0, prop0s: '0', prop1: 1, prop1s: '1'};
				const nils = {propNull: null, propUndefined: undefined};
				const stringifiedNils = {propNullString: 'null', propUndefinedString: 'undefined'};
				const functions = {propFunction: function() {}, propArrayFunction: () => {}};
				const objects = {propObject: {}, propArray: [], propTypedObject: (new class Test1 {})};

				const source = {
					...numbers,
					...nils,
					...stringifiedNils,
					...functions,
					...objects,
				};

				const actual = [
					...Object.keys(numbers),
					...Object.keys(stringifiedNils),
					...Object.keys(functions),
					...Object.keys(objects),
				];

				const result = BX.util.array_keys(source);

				assert.deepEqual(actual, result);
			});

			it('Should return keys for not nil custom object values', () => {
				const numbers = {prop0: 0, prop0s: '0', prop1: 1, prop1s: '1'};
				const nils = {propNull: null, propUndefined: undefined};
				const stringifiedNils = {propNullString: 'null', propUndefinedString: 'undefined'};
				const functions = {propFunction: function() {}, propArrayFunction: () => {}};
				const objects = {propObject: {}, propArray: [], propTypedObject: (new class Test1 {})};

				class SourceClass {
					prop0 = numbers.prop0;
					prop0s = numbers.prop0s;
					prop1 = numbers.prop1;
					prop1s = numbers.prop1s;
					propNull = nils.propNull;
					propUndefined = nils.propUndefined;
					propNullString = stringifiedNils.propNullString;
					propUndefinedString = stringifiedNils.propUndefinedString;
					propFunction = functions.propFunction;
					propArrayFunction = functions.propArrayFunction;
					propObject = objects.propObject;
					propArray = objects.propArray;
					propTypedObject = objects.propTypedObject;
				}

				const actual = [
					...Object.keys(numbers),
					...Object.keys(stringifiedNils),
					...Object.keys(functions),
					...Object.keys(objects),
				];

				const result = BX.util.array_keys(new SourceClass());

				assert.deepEqual(actual, result);
			});

			it('Should does not throws if passed invalid param', () => {
				assert.doesNotThrow(() => {
					BX.util.array_keys();
					BX.util.array_keys('');
					BX.util.array_keys(123123);
					BX.util.array_keys(null);
					BX.util.array_keys(null, null);
				});
			});

			describe('Return array always', () => {
				it('Should return array if passed string', () => {
					assert.ok(Array.isArray(BX.util.array_keys('')));
				});

				it('Should return array if passed null', () => {
					assert.ok(Array.isArray(BX.util.array_keys(null)));
				});

				it('Should return array if passed undefined', () => {
					assert.ok(Array.isArray(BX.util.array_keys()));
				});

				it('Should return array if passed number', () => {
					assert.ok(Array.isArray(BX.util.array_keys(2)));
				});

				it('Should return array if passed boolean', () => {
					assert.ok(Array.isArray(BX.util.array_keys(true)));
				});

				it('Should return array if passed function', () => {
					assert.ok(Array.isArray(BX.util.array_keys(() => {})));
				});
			});
		});

		describe('#array_merge', () => {
			it('Should merge two arrays', () => {
				const arr1 = [1, '1', 0, '0'];
				const arr2 = [null, undefined, true, false];

				const actual = [...arr1, ...arr2];
				const result = BX.util.array_merge(arr1, arr2);

				assert.deepEqual(actual, result);
			});

			it('Should modify first array', () => {
				const arr1 = [1, 2];
				const arr2 = [3, 4];

				const result = BX.util.array_merge(arr1, arr2);

				assert.ok(arr1 === result);
			});

			it('Should not modify second array', () => {
				const arr1 = [1, 2];
				const arr2 = [3, 4];

				BX.util.array_merge(arr1, arr2);

				assert.ok(arr2.length === 2);
				assert.ok(arr2[0] === 3);
				assert.ok(arr2[1] === 4);
			});

			it('Should does not throws if passed invalid param', () => {
				assert.doesNotThrow(() => {
					BX.util.array_merge();
					BX.util.array_merge('', '');
					BX.util.array_merge(123123, 213);
					BX.util.array_merge(null);
					BX.util.array_merge(null, null);
				});
			});

			describe('Return array always', () => {
				it('Should return array if passed strings', () => {
					assert.ok(Array.isArray(BX.util.array_merge('', '')));
				});

				it('Should return array if passed null', () => {
					assert.ok(Array.isArray(BX.util.array_merge(null, null)));
				});

				it('Should return array if passed undefined', () => {
					assert.ok(Array.isArray(BX.util.array_merge()));
				});

				it('Should return array if passed number', () => {
					assert.ok(Array.isArray(BX.util.array_merge(2, 3)));
				});

				it('Should return array if passed boolean', () => {
					assert.ok(Array.isArray(BX.util.array_merge(true, false)));
				});

				it('Should return array if passed function', () => {
					assert.ok(Array.isArray(BX.util.array_merge(() => {}, () => {})));
				});
			});
		});

		describe('#array_unique', () => {
			it('Should return unique array from array with not unique items', () => {
				const source = [1, '1', 0, '0', true, 'true', false, 'false'];
				const actual = [1, 0, 'true', 'false'];
				const result = BX.util.array_unique(source);

				assert.deepEqual(actual, result);
			});

			it('Should modify passed array', () => {
				const source = [1, '1', 0, '0', true, 'true', false, 'false'];
				const result = BX.util.array_unique(source);

				assert.ok(result === source);
			});

			it('Should return object if passed object', () => {
				const source = {test1: 1};
				const actual = {test1: 1};
				const result = BX.util.array_unique(source);

				assert.deepEqual(actual, result);
				assert.ok(result === source);
			});

			it('Should return string if passed string with length 0', () => {
				assert.ok(BX.util.array_unique('') === '');
			});

			it('Should return string if passed string a length 1', () => {
				assert.ok(BX.util.array_unique('a') === 'a');
			});

			it('Should throws if passed string with length 2', () => {
				assert.throws(() => {
					BX.util.array_unique('aa');
				});
			});

			it('Should throws if passed string with length more them 2', () => {
				assert.throws(() => {
					BX.util.array_unique('aaaavvvvbbbbb');
				});
			});

			it('Should return number if passed integer', () => {
				assert.ok(BX.util.array_unique(1) === 1);
				assert.ok(BX.util.array_unique(1222) === 1222);
			});

			it('Should return number if passed float', () => {
				assert.ok(BX.util.array_unique(1.1) === 1.1);
				assert.ok(BX.util.array_unique(90.1222) === 90.1222);
			});

			it('Should works with array like objects', () => {
				const source = {'0': 1, 0: 1, 1: 2, length: 3};
				const actual = {'0': 1, 1: 2, length: 3};
				const result = BX.util.array_unique(source);

				assert.deepEqual(actual, result);
			});

			it('Should return true if passed true', () => {
				assert.ok(BX.util.array_unique(true) === true);
			});

			it('Should return false if passed false', () => {
				assert.ok(BX.util.array_unique(false) === false);
			});
		});
		
		describe('#in_array', () => {
			it('Should return true if array includes passed item (strict)', () => {
				assert.ok(BX.util.in_array(2, [1, 2, 3]));
			});

			it('Should return true if array includes passed item (not strict)', () => {
				assert.ok(BX.util.in_array('2', [1, 2, 3]));
				assert.ok(BX.util.in_array(2, ['1', '2', '3']));
			});

			it('Should return false if array not includes passed item', () => {
				assert.ok(BX.util.in_array(7, [1, 2, 3]) === false);
			});

			it('Should return works with own properties only', () => {
				assert.ok(BX.util.in_array('length', [1, 2, 3]) === false);
			});

			it('Should return false always if passed object', () => {
				assert.ok(BX.util.in_array(1, {test: 1, test2: 2}) === false);
				assert.ok(BX.util.in_array(2, {test: 1, test2: 2}) === false);
			});

			it('Should return true if array like object includes passed item (strict)', () => {
				assert.ok(BX.util.in_array(2, {0: 1, 1: 2, 2: 3, length: 3}));
			});

			it('Should return true if string includes passed character', () => {
				assert.ok(BX.util.in_array('t', 'test_test'));
				assert.ok(BX.util.in_array('e', 'test_test'));
			});

			it('Should return false if string not includes passed character', () => {
				assert.ok(BX.util.in_array('Y', 'test_test') === false);
				assert.ok(BX.util.in_array('o', 'test_test') === false);
			});

			it('Should return false if passed boolean', () => {
				assert.ok(BX.util.in_array(true, true) === false);
				assert.ok(BX.util.in_array(false, false) === false);
			});

			it('Should return false if passed function', () => {
				assert.ok(BX.util.in_array(true, () => {}) === false);
				assert.ok(BX.util.in_array(false, () => {}) === false);
			});

			it('Should throws if passed undefined', () => {
				assert.throws(() => {
					BX.util.in_array(true, undefined);
				});
			});

			it('Should throws if passed null', () => {
				assert.throws(() => {
					BX.util.in_array(true, null);
				});
			});

			it('Should return false if passed Set', () => {
				assert.ok(BX.util.in_array(true, new Set([true])) === false);
			});

			it('Should return false if passed Map', () => {
				const map = new Map();
				map.set(true, true);
				assert.ok(BX.util.in_array(true, map) === false);
			});
		});

		describe('#array_search', () => {
			it('Should return index if passed item includes in passed array (strict)', () => {
				assert.equal(1, BX.util.array_search(3, [2, 3, 4]));
			});

			it('Should return index if passed item includes in passed array (not strict)', () => {
				assert.equal(1, BX.util.array_search('3', [2, 3, 4]));
				assert.equal(1, BX.util.array_search(3, [2, '3', 4]));
			});

			it('Should return -1 if passed item not includes in passed array', () => {
				assert.equal(-1, BX.util.array_search(5, [2, 3, 4]));
			});

			it('Should return index if passed charset includes in passed string', () => {
				assert.equal(0, BX.util.array_search('t', 'test_test'));
				assert.equal(4, BX.util.array_search('_', 'test_test'));
			});

			it('Should return index if passed item includes in passed array-like object', () => {
				assert.equal(1, BX.util.array_search(5, {0: 1, 1: 5, length: 2}));
			});

			it('Should return -1 if passed object', () => {
				assert.equal(-1, BX.util.array_search(5, {test: 5}));
				assert.equal(-1, BX.util.array_search(5, {0: 5}));
			});

			it('Should return -1 if passed function', () => {
				assert.equal(-1, BX.util.array_search(5, () => {}));
			});

			it('Should return -1 if passed number', () => {
				assert.equal(-1, BX.util.array_search(5, 5));
			});
		});
	});
});

Youez - 2016 - github.com/yon3zu
LinuXploit