61 lines
1.5 KiB
JavaScript
61 lines
1.5 KiB
JavaScript
var $compile,
|
|
$rootScope;
|
|
|
|
beforeEach(module('dndLists'));
|
|
|
|
beforeEach(inject(function(_$compile_, _$rootScope_){
|
|
$compile = _$compile_;
|
|
$rootScope = _$rootScope_;
|
|
}));
|
|
|
|
function compileAndLink(html) {
|
|
var scope = $rootScope.$new();
|
|
var element = $compile(html)(scope);
|
|
scope.$digest();
|
|
return element;
|
|
}
|
|
|
|
function createEvent(type, dataTransfer) {
|
|
var dataTransfer = dataTransfer || {};
|
|
var event = {
|
|
originalEvent: {
|
|
dataTransfer: dataTransfer,
|
|
preventDefault: function() {
|
|
event._defaultPrevented = true;
|
|
},
|
|
stopPropagation: function() {
|
|
event._propagationStopped = true;
|
|
},
|
|
type: type,
|
|
},
|
|
_data: {},
|
|
_defaultPrevented: false,
|
|
_dt: dataTransfer,
|
|
_propagationStopped: false,
|
|
_triggerOn: function(element) {
|
|
// Retrieve event handlers from jQuery and invoke.
|
|
return $._data($(element).get(0), "events")[type][0].handler(event);
|
|
},
|
|
};
|
|
|
|
switch (type) {
|
|
case 'dragstart':
|
|
dataTransfer.setData = function(type, value) {
|
|
event._data[type] = value;
|
|
};
|
|
break;
|
|
case 'drop':
|
|
dataTransfer.getData = function(type) { return event._data[type]; };
|
|
// continue
|
|
case 'dragover':
|
|
event._data['image/jpeg'] = '???';
|
|
event._data['text/plain'] = '{"example":"data"}';
|
|
dataTransfer.types = ["image/jpeg", "text/plain"];
|
|
dataTransfer.effectAllowed = 'move';
|
|
dataTransfer.dropEffect = 'move';
|
|
break;
|
|
}
|
|
|
|
return event;
|
|
}
|