New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

drag-mock

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

drag-mock - npm Package Compare versions

Comparing version 1.0.0 to 1.1.0

test/browser/helpers/eventHelper.js

113

dist/drag-mock.js

@@ -72,13 +72,2 @@ (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){

function mergeInto(destObj, srcObj) {
for (var key in srcObj) {
if (!srcObj.hasOwnProperty(key)) { continue; } // ignore inherited properties
destObj[key] = srcObj[key];
}
return destObj;
}
function parseParams(targetElement, eventProperties, configCallback) {

@@ -102,8 +91,3 @@ if (typeof eventProperties === 'function') {

function customizeEvent(event, eventProperties, configCallback, isPrimaryEvent) {
// copy eventProperties into event
if (eventProperties) {
mergeInto(event, eventProperties);
}
function customizeEvent(event, configCallback, isPrimaryEvent) {
if (configCallback) {

@@ -124,6 +108,6 @@ // call configCallback only for the primary event if the callback takes less than two arguments

eventNames.forEach(function(eventName) {
var event = eventFactory.createEvent(eventName, dataTransfer);
var event = eventFactory.createEvent(eventName, eventProperties, dataTransfer);
var isPrimaryEvent = eventName === primaryEventName;
customizeEvent(event, eventProperties, configCallback, isPrimaryEvent);
customizeEvent(event, configCallback, isPrimaryEvent);

@@ -155,11 +139,22 @@ targetElement.dispatchEvent(event);

DragDropAction.prototype.dragOver = function(overElement, eventProperties, configCallback) {
var params = parseParams(overElement, eventProperties, configCallback)
, events = ['mousemove', 'mouseover', 'dragover'];
createAndDispatchEvents(params.targetElement, events, 'drag', this.lastDataTransfer, params.eventProperties, params.configCallback);
return this;
};
DragDropAction.prototype.drop = function(targetElement, eventProperties, configCallback) {
var params = parseParams(targetElement, eventProperties, configCallback);
var events = ['mouseup', 'drop'];
var eventsOnDropTarget = ['mousemove', 'mouseup', 'drop'];
var eventsOnDragSource = ['dragend'];
createAndDispatchEvents(params.targetElement, events, 'drop', this.lastDataTransfer, params.eventProperties, params.configCallback);
createAndDispatchEvents(params.targetElement, eventsOnDropTarget, 'drop', this.lastDataTransfer, params.eventProperties, params.configCallback);
if (this.lastDragSource) {
// trigger dragend event on last drag source element
createAndDispatchEvents(this.lastDragSource, ['dragend'], 'drop', this.lastDataTransfer, params.eventProperties, params.configCallback);
createAndDispatchEvents(this.lastDragSource, eventsOnDragSource, 'drop', this.lastDataTransfer, params.eventProperties, params.configCallback);
}

@@ -176,11 +171,74 @@

var dataTransferEvents = ['drag', 'dragstart', 'dragend', 'drop'];
var dataTransferEvents = ['drag', 'dragstart', 'dragover', 'dragend', 'drop'];
function mergeInto(destObj, srcObj) {
for (var key in srcObj) {
if (!srcObj.hasOwnProperty(key)) { continue; } // ignore inherited properties
destObj[key] = srcObj[key];
}
return destObj;
}
function createModernEvent(eventName, eventType, eventProperties) {
if (eventType === 'DragEvent') { eventType = 'CustomEvent'; } // Firefox fix (since FF does not allow us to override dataTransfer)
var constructor = window[eventType];
var options = { view: window, bubbles: true, cancelable: true };
mergeInto(options, eventProperties);
var event = new constructor(eventName, options);
mergeInto(event, eventProperties);
return event;
}
function createLegacyEvent(eventName, eventType, eventProperties) {
var event;
switch (eventType) {
case 'MouseEvent':
event = document.createEvent('MouseEvent');
event.initEvent(eventName, true, true);
break;
default:
event = document.createEvent('CustomEvent');
event.initCustomEvent(eventName, true, true, 0);
}
// copy eventProperties into event
if (eventProperties) {
mergeInto(event, eventProperties);
}
return event;
}
function createEvent(eventName, eventType, eventProperties) {
try {
return createModernEvent(eventName, eventType, eventProperties);
} catch (error) {
return createLegacyEvent(eventName, eventType, eventProperties);
}
}
var EventFactory = {
createEvent: function(eventName, dataTransfer) {
var event = document.createEvent('CustomEvent');
createEvent: function(eventName, eventProperties, dataTransfer) {
var eventType = 'CustomEvent';
event.initCustomEvent(eventName, true, true, 0);
if (eventName.match(/^mouse/)) {
eventType = 'MouseEvent';
}
var event = createEvent(eventName, eventType, eventProperties);
if (dataTransferEvents.indexOf(eventName) > -1) {

@@ -210,2 +268,5 @@ event.dataTransfer = dataTransfer || new DataTransfer();

},
dragOver: function(targetElement, eventProperties, configCallback) {
return call(new DragDropAction(), 'dragOver', arguments);
},
drop: function(targetElement, eventProperties, configCallback) {

@@ -212,0 +273,0 @@ return call(new DragDropAction(), 'drop', arguments);

@@ -1,1 +0,1 @@

!function t(r,e,n){function a(i,s){if(!e[i]){if(!r[i]){var f="function"==typeof require&&require;if(!s&&f)return f(i,!0);if(o)return o(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var u=e[i]={exports:{}};r[i][0].call(u.exports,function(t){var e=r[i][1][t];return a(e?e:t)},u,u.exports,t,r,e,n)}return e[i].exports}for(var o="function"==typeof require&&require,i=0;i<n.length;i++)a(n[i]);return a}({1:[function(t){var r=t("./src/index.js");"function"==typeof define&&define("dragMock",function(){return r}),window.dragMock=r},{"./src/index.js":5}],2:[function(t,r){function e(t,r){var e=t.indexOf(r);e>=0&&t.splice(e,1)}var n=function(){this.dataByFormat={},this.dropEffect="none",this.effectAllowed="all",this.files=[],this.types=[]};n.prototype.clearData=function(t){t?(delete this.dataByFormat[t],e(this.types,t)):(this.dataByFormat={},this.types=[])},n.prototype.getData=function(t){return this.dataByFormat[t]},n.prototype.setData=function(t,r){return this.dataByFormat[t]=r,this.types.indexOf(t)<0&&this.types.push(t),!0},n.prototype.setDragImage=function(){},r.exports=n},{}],3:[function(t,r){function e(){}function n(t,r){for(var e in r)r.hasOwnProperty(e)&&(t[e]=r[e]);return t}function a(t,r,n){if("function"==typeof r&&(n=r,r=null),!t||"object"!=typeof t)throw new Error("Expected first parameter to be a targetElement. Instead got: "+t);return{targetElement:t,eventProperties:r||{},configCallback:n||e}}function o(t,r,e,a){r&&n(t,r),e&&(e.length<2?a&&e(t):e(t,t.type))}function i(t,r,e,n,a,i){r.forEach(function(r){var f=s.createEvent(r,n),c=r===e;o(f,a,i,c),t.dispatchEvent(f)})}var s=t("./eventFactory"),f=t("./DataTransfer"),c=function(){this.lastDragSource=null,this.lastDataTransfer=null};c.prototype.dragStart=function(t,r,e){var n=a(t,r,e),o=["mousedown","dragstart","drag"],s=new f;return i(n.targetElement,o,"drag",s,n.eventProperties,n.configCallback),this.lastDragSource=t,this.lastDataTransfer=s,this},c.prototype.drop=function(t,r,e){var n=a(t,r,e),o=["mouseup","drop"];return i(n.targetElement,o,"drop",this.lastDataTransfer,n.eventProperties,n.configCallback),this.lastDragSource&&i(this.lastDragSource,["dragend"],"drop",this.lastDataTransfer,n.eventProperties,n.configCallback),this},r.exports=c},{"./DataTransfer":2,"./eventFactory":4}],4:[function(t,r){var e=t("./DataTransfer"),n=["drag","dragstart","dragend","drop"],a={createEvent:function(t,r){var a=document.createEvent("CustomEvent");return a.initCustomEvent(t,!0,!0,0),n.indexOf(t)>-1&&(a.dataTransfer=r||new e),a}};r.exports=a},{"./DataTransfer":2}],5:[function(t,r){function e(t,r,e){return t[r].apply(t,e)}var n=t("./DragDropAction"),a={dragStart:function(){return e(new n,"dragStart",arguments)},drop:function(){return e(new n,"drop",arguments)},DataTransfer:t("./DataTransfer"),DragDropAction:t("./DragDropAction"),eventFactory:t("./eventFactory")};r.exports=a},{"./DataTransfer":2,"./DragDropAction":3,"./eventFactory":4}]},{},[1]);
!function t(r,e,n){function a(i,s){if(!e[i]){if(!r[i]){var u="function"==typeof require&&require;if(!s&&u)return u(i,!0);if(o)return o(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var f=e[i]={exports:{}};r[i][0].call(f.exports,function(t){var e=r[i][1][t];return a(e?e:t)},f,f.exports,t,r,e,n)}return e[i].exports}for(var o="function"==typeof require&&require,i=0;i<n.length;i++)a(n[i]);return a}({1:[function(t){var r=t("./src/index.js");"function"==typeof define&&define("dragMock",function(){return r}),window.dragMock=r},{"./src/index.js":5}],2:[function(t,r){function e(t,r){var e=t.indexOf(r);e>=0&&t.splice(e,1)}var n=function(){this.dataByFormat={},this.dropEffect="none",this.effectAllowed="all",this.files=[],this.types=[]};n.prototype.clearData=function(t){t?(delete this.dataByFormat[t],e(this.types,t)):(this.dataByFormat={},this.types=[])},n.prototype.getData=function(t){return this.dataByFormat[t]},n.prototype.setData=function(t,r){return this.dataByFormat[t]=r,this.types.indexOf(t)<0&&this.types.push(t),!0},n.prototype.setDragImage=function(){},r.exports=n},{}],3:[function(t,r){function e(){}function n(t,r,n){if("function"==typeof r&&(n=r,r=null),!t||"object"!=typeof t)throw new Error("Expected first parameter to be a targetElement. Instead got: "+t);return{targetElement:t,eventProperties:r||{},configCallback:n||e}}function a(t,r,e){r&&(r.length<2?e&&r(t):r(t,t.type))}function o(t,r,e,n,o,s){r.forEach(function(r){var u=i.createEvent(r,o,n),c=r===e;a(u,s,c),t.dispatchEvent(u)})}var i=t("./eventFactory"),s=t("./DataTransfer"),u=function(){this.lastDragSource=null,this.lastDataTransfer=null};u.prototype.dragStart=function(t,r,e){var a=n(t,r,e),i=["mousedown","dragstart","drag"],u=new s;return o(a.targetElement,i,"drag",u,a.eventProperties,a.configCallback),this.lastDragSource=t,this.lastDataTransfer=u,this},u.prototype.dragOver=function(t,r,e){var a=n(t,r,e),i=["mousemove","mouseover","dragover"];return o(a.targetElement,i,"drag",this.lastDataTransfer,a.eventProperties,a.configCallback),this},u.prototype.drop=function(t,r,e){var a=n(t,r,e),i=["mousemove","mouseup","drop"],s=["dragend"];return o(a.targetElement,i,"drop",this.lastDataTransfer,a.eventProperties,a.configCallback),this.lastDragSource&&o(this.lastDragSource,s,"drop",this.lastDataTransfer,a.eventProperties,a.configCallback),this},r.exports=u},{"./DataTransfer":2,"./eventFactory":4}],4:[function(t,r){function e(t,r){for(var e in r)r.hasOwnProperty(e)&&(t[e]=r[e]);return t}function n(t,r,n){"DragEvent"===r&&(r="CustomEvent");var a=window[r],o={view:window,bubbles:!0,cancelable:!0};e(o,n);var i=new a(t,o);return e(i,n),i}function a(t,r,n){var a;switch(r){case"MouseEvent":a=document.createEvent("MouseEvent"),a.initEvent(t,!0,!0);break;default:a=document.createEvent("CustomEvent"),a.initCustomEvent(t,!0,!0,0)}return n&&e(a,n),a}function o(t,r,e){try{return n(t,r,e)}catch(o){return a(t,r,e)}}var i=t("./DataTransfer"),s=["drag","dragstart","dragover","dragend","drop"],u={createEvent:function(t,r,e){var n="CustomEvent";t.match(/^mouse/)&&(n="MouseEvent");var a=o(t,n,r);return s.indexOf(t)>-1&&(a.dataTransfer=e||new i),a}};r.exports=u},{"./DataTransfer":2}],5:[function(t,r){function e(t,r,e){return t[r].apply(t,e)}var n=t("./DragDropAction"),a={dragStart:function(){return e(new n,"dragStart",arguments)},dragOver:function(){return e(new n,"dragOver",arguments)},drop:function(){return e(new n,"drop",arguments)},DataTransfer:t("./DataTransfer"),DragDropAction:t("./DragDropAction"),eventFactory:t("./eventFactory")};r.exports=a},{"./DataTransfer":2,"./DragDropAction":3,"./eventFactory":4}]},{},[1]);

@@ -12,3 +12,3 @@

['dragStart', 'drop'].forEach(function(methodName) {
['dragStart', 'dragOver', 'drop'].forEach(function(methodName) {
DragMockClientActionBridge.prototype[methodName] = function() {

@@ -58,17 +58,15 @@ var self = this;

function extendWebdriverPrototype(webdriverPrototype) {
webdriverPrototype.dragStart = function() {
var clientAction = new DragMockClientActionBridge(this, nextClientActionId++);
function createActionAndCallMethod(methodName) {
return function() {
var clientAction = new DragMockClientActionBridge(this, nextClientActionId++);
clientAction.dragStart.apply(clientAction, arguments);
clientAction[methodName].apply(clientAction, arguments);
return clientAction;
};
return clientAction;
};
}
webdriverPrototype.drop = function() {
var clientAction = new DragMockClientActionBridge(this, nextClientActionId++);
clientAction.drop.apply(clientAction, arguments);
return clientAction;
};
webdriverPrototype.dragStart = createActionAndCallMethod('dragStart');
webdriverPrototype.dragOver = createActionAndCallMethod('dragOver');
webdriverPrototype.drop = createActionAndCallMethod('drop');
}

@@ -75,0 +73,0 @@

{
"name": "drag-mock",
"version": "1.0.0",
"version": "1.1.0",
"description": "Trigger HTML5 drag & drop events for testing",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -60,7 +60,9 @@ # drag-mock

```javascript
var dragSource = document.querySelector('.draggable');
var dropTarget = document.querySelector('.drop-target');
var dragSource = document.querySelector('.draggable');
var dropTarget = document.querySelector('.drop-target');
var hoverRegion = document.querySelector('.hover-region');
dragMock
.dragStart(dragSource)
.dragOver(hoverRegion)
.drop(dropTarget);

@@ -99,2 +101,3 @@ ```

## Testing

@@ -124,7 +127,63 @@

The following events are provided with a fake (but fully functional) dataTransfer object:
`drag`, `dragstart`, `dragend`, `drop`
`drag`, `dragstart`, `dragover`, `dragend`, `drop`
## webdriver.io integration
If you are running Selenium tests using webdriver.io and you need drag &amp; drop functionality beyond Selenium's dragAndDrop()
you can easily integrate drag-mock into webdriver:
```javascript
var dragMock = require('drag-mock');
var webdriverio = require('webdriverio');
var webdriver = webdriverio.remote({ desiredCapabilities: { browserName: 'chrome' } }).init();
// set up webdriver.dragStart(), webdriver.dragOver() and webdriver.drop()
dragMock.extendWebdriver(webdriver);
// load the drag-mock library into the browser context
dragMock.loadLibrary(webdriver);
// drag and drop
webdriver
.dragStart('#my-drag-source', { clientX: 200, clientY: 300 })
.drop('#drop-zone', function(error) {
if (error) {
console.error(error);
}
});
```
## webdriver.io integration
If you are running Selenium tests using webdriver.io and you need drag &amp; drop functionality beyond Selenium's dragAndDrop()
you can easily integrate drag-mock into webdriver:
```javascript
var dragMock = require('drag-mock');
var webdriverio = require('webdriverio');
var webdriver = webdriverio.remote({ desiredCapabilities: { browserName: 'chrome' } }).init();
// set up webdriver.dragStart() and webdriver.drop()
dragMock.extendWebdriver(webdriver);
// load the drag-mock library into the browser context
dragMock.loadLibrary(webdriver);
// drag and drop
webdriver
.dragStart('#my-drag-source', { clientX: 200, clientY: 300 })
.drop('#drop-zone', function(error) {
if (error) {
console.error(error);
}
});
```
## License
This software is licensed under the terms of the MIT license. See LICENSE for details.

@@ -9,13 +9,2 @@

function mergeInto(destObj, srcObj) {
for (var key in srcObj) {
if (!srcObj.hasOwnProperty(key)) { continue; } // ignore inherited properties
destObj[key] = srcObj[key];
}
return destObj;
}
function parseParams(targetElement, eventProperties, configCallback) {

@@ -39,8 +28,3 @@ if (typeof eventProperties === 'function') {

function customizeEvent(event, eventProperties, configCallback, isPrimaryEvent) {
// copy eventProperties into event
if (eventProperties) {
mergeInto(event, eventProperties);
}
function customizeEvent(event, configCallback, isPrimaryEvent) {
if (configCallback) {

@@ -61,6 +45,6 @@ // call configCallback only for the primary event if the callback takes less than two arguments

eventNames.forEach(function(eventName) {
var event = eventFactory.createEvent(eventName, dataTransfer);
var event = eventFactory.createEvent(eventName, eventProperties, dataTransfer);
var isPrimaryEvent = eventName === primaryEventName;
customizeEvent(event, eventProperties, configCallback, isPrimaryEvent);
customizeEvent(event, configCallback, isPrimaryEvent);

@@ -92,11 +76,22 @@ targetElement.dispatchEvent(event);

DragDropAction.prototype.dragOver = function(overElement, eventProperties, configCallback) {
var params = parseParams(overElement, eventProperties, configCallback)
, events = ['mousemove', 'mouseover', 'dragover'];
createAndDispatchEvents(params.targetElement, events, 'drag', this.lastDataTransfer, params.eventProperties, params.configCallback);
return this;
};
DragDropAction.prototype.drop = function(targetElement, eventProperties, configCallback) {
var params = parseParams(targetElement, eventProperties, configCallback);
var events = ['mouseup', 'drop'];
var eventsOnDropTarget = ['mousemove', 'mouseup', 'drop'];
var eventsOnDragSource = ['dragend'];
createAndDispatchEvents(params.targetElement, events, 'drop', this.lastDataTransfer, params.eventProperties, params.configCallback);
createAndDispatchEvents(params.targetElement, eventsOnDropTarget, 'drop', this.lastDataTransfer, params.eventProperties, params.configCallback);
if (this.lastDragSource) {
// trigger dragend event on last drag source element
createAndDispatchEvents(this.lastDragSource, ['dragend'], 'drop', this.lastDataTransfer, params.eventProperties, params.configCallback);
createAndDispatchEvents(this.lastDragSource, eventsOnDragSource, 'drop', this.lastDataTransfer, params.eventProperties, params.configCallback);
}

@@ -103,0 +98,0 @@

var DataTransfer = require('./DataTransfer');
var dataTransferEvents = ['drag', 'dragstart', 'dragend', 'drop'];
var dataTransferEvents = ['drag', 'dragstart', 'dragover', 'dragend', 'drop'];
function mergeInto(destObj, srcObj) {
for (var key in srcObj) {
if (!srcObj.hasOwnProperty(key)) { continue; } // ignore inherited properties
destObj[key] = srcObj[key];
}
return destObj;
}
function createModernEvent(eventName, eventType, eventProperties) {
if (eventType === 'DragEvent') { eventType = 'CustomEvent'; } // Firefox fix (since FF does not allow us to override dataTransfer)
var constructor = window[eventType];
var options = { view: window, bubbles: true, cancelable: true };
mergeInto(options, eventProperties);
var event = new constructor(eventName, options);
mergeInto(event, eventProperties);
return event;
}
function createLegacyEvent(eventName, eventType, eventProperties) {
var event;
switch (eventType) {
case 'MouseEvent':
event = document.createEvent('MouseEvent');
event.initEvent(eventName, true, true);
break;
default:
event = document.createEvent('CustomEvent');
event.initCustomEvent(eventName, true, true, 0);
}
// copy eventProperties into event
if (eventProperties) {
mergeInto(event, eventProperties);
}
return event;
}
function createEvent(eventName, eventType, eventProperties) {
try {
return createModernEvent(eventName, eventType, eventProperties);
} catch (error) {
return createLegacyEvent(eventName, eventType, eventProperties);
}
}
var EventFactory = {
createEvent: function(eventName, dataTransfer) {
var event = document.createEvent('CustomEvent');
createEvent: function(eventName, eventProperties, dataTransfer) {
var eventType = 'CustomEvent';
event.initCustomEvent(eventName, true, true, 0);
if (eventName.match(/^mouse/)) {
eventType = 'MouseEvent';
}
var event = createEvent(eventName, eventType, eventProperties);
if (dataTransferEvents.indexOf(eventName) > -1) {

@@ -14,0 +77,0 @@ event.dataTransfer = dataTransfer || new DataTransfer();

@@ -14,2 +14,5 @@

},
dragOver: function(targetElement, eventProperties, configCallback) {
return call(new DragDropAction(), 'dragOver', arguments);
},
drop: function(targetElement, eventProperties, configCallback) {

@@ -16,0 +19,0 @@ return call(new DragDropAction(), 'drop', arguments);

@@ -1,4 +0,4 @@

'use strict';
(function() {
'use strict';
(function() {
var DataTransfer = dragMock.DataTransfer;

@@ -5,0 +5,0 @@

@@ -1,4 +0,4 @@

'use strict';
(function() {
'use strict';
(function() {
var DragDropAction = dragMock.DragDropAction;

@@ -10,56 +10,4 @@

function expectEvents(domElement, eventNames, done, onEachEvent) {
var eventTriggered = {}
, eventListeners = {}
, doneCalled = false;
describe('DragDropAction', function() {
function allEventsTriggered() {
var allTriggered = true;
eventNames.forEach(function(eventName) {
if (!eventTriggered[eventName]) { allTriggered = false; }
});
return allTriggered;
}
function cleanUp() {
eventNames.forEach(function(eventName) {
domElement.removeEventListener(eventName, eventListeners[eventName]);
});
}
var timeOut = setTimeout(function() {
if (!doneCalled) {
var untriggeredEvents = [];
eventNames.forEach(function(eventName) {
if (!eventTriggered[eventName]) { untriggeredEvents.push(eventName); }
});
cleanUp();
expect().fail('The following events have not been triggered: ' + untriggeredEvents.join(', '));
}
}, 1500);
eventNames.forEach(function(eventName) {
eventTriggered[eventName] = false;
domElement.addEventListener(eventName, eventListeners[eventName] = function(event) {
eventTriggered[eventName] = true;
if (onEachEvent) { onEachEvent(event, domElement); }
if (allEventsTriggered() && !doneCalled) {
doneCalled = true;
clearTimeout(timeOut);
cleanUp();
done();
}
});
});
}
describe('DragDropAction', function() {
var action;

@@ -77,2 +25,3 @@

describe('dragStart method', function() {

@@ -85,3 +34,3 @@

it('creates expected events', function(done) {
expectEvents(elementA, ['mousedown', 'dragstart', 'drag'], done);
EventHelper.expectEvents(elementA, ['mousedown', 'dragstart', 'drag'], done);

@@ -92,3 +41,3 @@ action.dragStart(elementA);

it('creates events with given properties', function(done) {
expectEvents(elementA, ['mousedown', 'dragstart', 'drag'], done, function(event) {
EventHelper.expectEvents(elementA, ['mousedown', 'dragstart', 'drag'], done, function(event) {
expect(event.hello).to.equal('world');

@@ -102,3 +51,3 @@ expect(event.foo).to.equal('bar');

it('customizes events using a custom callback', function(done) {
expectEvents(elementA, ['mousedown', 'dragstart', 'drag'], done, function(event) {
EventHelper.expectEvents(elementA, ['mousedown', 'dragstart', 'drag'], done, function(event) {
expect(event.hello).to.equal('world');

@@ -139,3 +88,3 @@ expect(event.foo).to.equal('bar');

it('customizes events with given properties and using a custom callback', function(done) {
expectEvents(elementA, ['mousedown', 'dragstart', 'drag'], done, function(event) {
EventHelper.expectEvents(elementA, ['mousedown', 'dragstart', 'drag'], done, function(event) {
expect(event.hello).to.equal('world');

@@ -152,6 +101,18 @@ expect(event.foo).to.equal('bar');

describe('dragOver method', function() {
it('creates expected events (without prior call to dragStart())', function(done) {
EventHelper.expectEvents(elementA, ['mousemove', 'mouseover', 'dragover'], done);
action.dragOver(elementA);
});
});
describe('drop method', function() {
it('creates expected events (without prior call to dragStart())', function(done) {
expectEvents(elementA, ['mouseup', 'drop'], done);
EventHelper.expectEvents(elementA, ['mousemove', 'mouseup', 'drop'], done);

@@ -162,3 +123,3 @@ action.drop(elementA);

it('triggers a dragEnd event on the drag source', function(done) {
expectEvents(elementA, ['dragend'], done);
EventHelper.expectEvents(elementA, ['dragend'], done);

@@ -165,0 +126,0 @@ action.dragStart(elementA).drop(elementB);

@@ -1,4 +0,4 @@

'use strict';
(function() {
'use strict';
(function() {
describe('drag-mock', function() {

@@ -5,0 +5,0 @@

@@ -1,4 +0,4 @@

'use strict';
(function() {
'use strict';
(function() {
var eventFactory = dragMock.eventFactory

@@ -27,3 +27,3 @@ , DataTransfer = dragMock.DataTransfer;

it('createEvent method produces events with dataTransfer objects', function() {
['drag', 'dragstart', 'dragend', 'drop'].forEach(function(eventName) {
['drag', 'dragstart', 'dragover', 'dragend', 'drop'].forEach(function(eventName) {
var event = eventFactory.createEvent(eventName);

@@ -36,3 +36,3 @@ expect(event.dataTransfer).to.be.a(DataTransfer);

var dragEvent = eventFactory.createEvent('drag');
var dropEvent = eventFactory.createEvent('drop', dragEvent.dataTransfer);
var dropEvent = eventFactory.createEvent('drop', {}, dragEvent.dataTransfer);

@@ -39,0 +39,0 @@ expect(dropEvent.dataTransfer).to.equal(dragEvent.dataTransfer);

@@ -73,2 +73,3 @@ 'use strict';

expect(webdriver.dragStart).to.be.a('function');
expect(webdriver.dragOver).to.be.a('function');
expect(webdriver.drop).to.be.a('function');

@@ -75,0 +76,0 @@ });

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc