403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/main/core/core_uploader/test/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/main/core/core_uploader/test/uploader.test.js
import BX from '../../../core/test/old/core/internal/bootstrap';
import {Tag, Event} from 'main.core';
import {Uploader} from '../src/index';
import { BaseEvent, EventEmitter } from 'main.core.events';
import {UploaderQueue, UploaderUtils} from '../src/bootstrap';

const dataURLToBlob = function(dataURL) {
	var marker = ';base64,', parts, contentType, raw, rawLength;
	if(dataURL.indexOf(marker) === -1) {
		parts = dataURL.split(',');
		contentType = parts[0].split(':')[1];
		raw = parts[1];
		return new Blob([raw], {type: contentType});
	}

	parts = dataURL.split(marker);
	contentType = parts[0].split(':')[1];
	raw = window.atob(parts[1]);
	rawLength = raw.length;

	var uInt8Array = new Uint8Array(rawLength);

	for(var i = 0; i < rawLength; ++i) {
		uInt8Array[i] = raw.charCodeAt(i);
	}

	return new Blob([uInt8Array], {type: contentType});
};

describe('BX.Uploader', () => {
	const uploaderId = 'testUploader';
	const filesSource = [
		new File(
			[new Blob(["<html>bad because of type</html>"], {type: 'text/html'})],
			'bad.html'
		),
		new File(
			[new Blob(["hello, world"], {type: 'text/plain'})],
			'good.txt'
		),
		new File(
			[dataURLToBlob('data:image/png;base64,R0lGODlhDAAMAKIFAF5LAP/zxAAAANyuAP/gaP///wAAAAAAACH5BAEAAAUALAAAAAAMAAwAAAMlWLPcGjDKFYi9lxKBOaGcF35DhWHamZUW0K4mAbiwWtuf0uxFAgA7')],
			'good.png'
		),
		new File(
			[dataURLToBlob('data:image/gif;base64,R0lGODlhFAAUAKUgAEyV9Zq98S+I7Hl7gWen9TZKiigxb4+PknuHlHd4fUSs9mad83Sr9XV5qkNZmU+N1S49dKKduuHh4cng9HBwbd7j9Dt5s3yZ1fz4/H+h1So9gH59fVtjk3+Bg1p+s7W2xv///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEAABkALAAAAAAUABQAAAarwIxwSCwaj8ikEklpOp+RjTRSREyu2Gukg+l2qMPDZLFgLAgMRgLT2XA7RDGZzCAQDGzJOz4B+AEXAQoQGBAbFGx8An4KDhwPGhh4hHBhEwICCpAGBR4WBxgHX0QdEwELFw4aDgUGrhwGlUMbEx8YDZwFGrqgomBCpREfuKuwkoWJQwkTFbquEK2FTclCtFlYBhUUE3vKCd/g34hS3UsHG11sv0tRU0vv8EZBADs=')],
			'bad.gif'
		),
	];
	let goodFilesCounter = 0;
	filesSource.forEach((file) => {
		if (file.name.indexOf('good') === 0)
		{
			goodFilesCounter++;
		}
	});
	console.log('goodFilesCounter: ', goodFilesCounter);
	let testFiles = null;
	const events = {
		onUploaderIsInited: ({compatData: [uploaderId, uploader]}) => {
			if (uploaderId === 'testUploader' && uploader instanceof Uploader)
			{
				delete events['onUploaderIsInited'];
			}
		},
		onAttachFiles: ({compatData: [files, nodes]}) => {
			testFiles = files;
			if (testFiles === filesSource)
			{
				console.log('Ura!')
			}
			delete events['onAttachFiles'];
		},
		onItemIsAdded: ({compatData: [file, node]}) => {
			if (file.name.indexOf('good') === 0)
			{
				goodFilesCounter--;
			}
			else
			{
				console.error('File should not be submited: ', file);
			}
			if (goodFilesCounter <= 0)
			{
				delete events['onItemIsAdded'];
			}
		}
	}
/*

	BX.onCustomEvent(this, "onItemIsAdded", [file, (nodes[index] || null), this]);
	BX.onCustomEvent(this, 'onStart', [null, {filesCount : 0}, this]);
	BX.onCustomEvent(this, 'onDone', [null, null, {filesCount : 0}]);
	BX.onCustomEvent(this, 'onFinish', [null, null, {filesCount : 0}]);


	BX.onCustomEvent(this, 'onPackageIsInitialized', [buffer1, this.queue.itForUpload]);
	BX.onCustomEvent(this, 'onFileIsUploaded', [itemId, item, response]);
	BX.onCustomEvent(item, 'onUploadDone', [item, response]);

	BX.onCustomEvent(this, 'onFileIsUploadedWithError', [itemId, item, response, packItem, packItem.getId()]);
	BX.onCustomEvent(item, 'onUploadError', [item, response, packItem, packItem.getId()]);

	BX.onCustomEvent(item, 'onUploadProgress', [item, percent, packItem, packItem.getId()]);
	BX.onCustomEvent(item, 'onUploadStart', [item, 0, packItem, packItem.getId()]);

*/	const input = Tag.render`<input type="file" name="" accept="image/png">`;
	const form = Tag.render`<form action="">${input}</form>`;
	const agent = new Uploader({
		id: uploaderId,
		input: input,
		uploadFileUrl: 'someString',
		dropZone: null,
		placeHolder: null,
		events: undefined,

		uploadMaxFilesize: 1024,
		uploadFileWidth: 10,
		uploadFileHeight: 10,
		allowUpload: 'I',
		allowUploadExt: '.jpg png txt',
		allowUploadAccept: '',
	});
	it('Should apply limits', () => {
		assert.equal(
			agent.uploadLimits['allowUploadAccept'],
			'image/png, image/*, .jpg, .png, .txt');
	});
	const files = [
		new File(
			new Blob(["<html>bad because of type</html>"], {type: 'text/html'}),
			'bad.html'
		),
		new File(
			new Blob(["hello, world"], {type: 'text/plain'}),
			'good.txt'
		),
		new File(
			dataURLToBlob('data:image/png;base64,R0lGODlhDAAMAKIFAF5LAP/zxAAAANyuAP/gaP///wAAAAAAACH5BAEAAAUALAAAAAAMAAwAAAMlWLPcGjDKFYi9lxKBOaGcF35DhWHamZUW0K4mAbiwWtuf0uxFAgA7'),
			'good.png'
		),
		new File(
			dataURLToBlob('data:image/gif;base64,R0lGODlhFAAUAKUgAEyV9Zq98S+I7Hl7gWen9TZKiigxb4+PknuHlHd4fUSs9mad83Sr9XV5qkNZmU+N1S49dKKduuHh4cng9HBwbd7j9Dt5s3yZ1fz4/H+h1So9gH59fVtjk3+Bg1p+s7W2xv///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEAABkALAAAAAAUABQAAAarwIxwSCwaj8ikEklpOp+RjTRSREyu2Gukg+l2qMPDZLFgLAgMRgLT2XA7RDGZzCAQDGzJOz4B+AEXAQoQGBAbFGx8An4KDhwPGhh4hHBhEwICCpAGBR4WBxgHX0QdEwELFw4aDgUGrhwGlUMbEx8YDZwFGrqgomBCpREfuKuwkoWJQwkTFbquEK2FTclCtFlYBhUUE3vKCd/g34hS3UsHG11sv0tRU0vv8EZBADs='),
			'bad.gif'
		),
	];
	agent.onAttach(files);

	// check 504 Error
	// check differed uploading
});

Youez - 2016 - github.com/yon3zu
LinuXploit