Skip to content
Snippets Groups Projects
Commit fa927315 authored by Thanh Dodeur's avatar Thanh Dodeur
Browse files

[IMP] web: adds multi file drag and drop support


This commit adds a function to mock multi-file drops.

Task: #2002553

closes odoo/odoo#35435

Signed-off-by: default avatarMartin Geubelle (mge) <mge@openerp.com>
parent 83844eb7
No related branches found
No related tags found
No related merge requests found
......@@ -179,6 +179,7 @@ return Promise.all([
createFile: testUtilsFile.createFile,
dragoverFile: testUtilsFile.dragoverFile,
dropFile: testUtilsFile.dropFile,
dropFiles: testUtilsFile.dropFiles,
},
createActionManager: testUtilsCreate.createActionManager,
......
......@@ -17,17 +17,17 @@ odoo.define('web.test_utils_file', function () {
//------------------------------------------------------------------------------
/**
* Create a fake object 'dataTransfer', linked to a file, which is passed to
* Create a fake object 'dataTransfer', linked to some files, which is passed to
* drag and drop events.
*
* @param {Object} file
* @param {Object[]} files
* @returns {Object}
*/
function _createFakeDataTransfer(file) {
function _createFakeDataTransfer(files) {
return {
dropEffect: 'all',
effectAllowed: 'all',
files: [file],
files,
getData: function () {
return file;
},
......@@ -96,7 +96,21 @@ function dragoverFile($el, file) {
function dropFile($el, file) {
var ev = new Event('drop', { bubbles: true, });
Object.defineProperty(ev, 'dataTransfer', {
value: _createFakeDataTransfer(file),
value: _createFakeDataTransfer([file]),
});
$el[0].dispatchEvent(ev);
}
/**
* Drop some files on a DOM element.
*
* @param {$.Element} $el
* @param {Object[]} files must have been created beforehand (@see createFile)
*/
function dropFiles($el, files) {
var ev = new Event('drop', { bubbles: true, });
Object.defineProperty(ev, 'dataTransfer', {
value: _createFakeDataTransfer(files),
});
$el[0].dispatchEvent(ev);
}
......@@ -109,6 +123,7 @@ return {
createFile: createFile,
dragoverFile: dragoverFile,
dropFile: dropFile,
dropFiles,
};
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment