Skip to content

Commit 118d3fe

Browse files
Tests for dragend
1 parent dcf510e commit 118d3fe

File tree

1 file changed

+63
-1
lines changed

1 file changed

+63
-1
lines changed

test/dndDraggingSpec.js

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ describe('dndDragging', function() {
2222
});
2323
});
2424

25-
describe('dragstart', function() {
25+
describe('dragstart handler', function() {
2626
var element, event;
2727

2828
beforeEach(function() {
@@ -79,4 +79,66 @@ describe('dndDragging', function() {
7979
expect(dndDragTypeWorkaround.dragType).toEqual(4);
8080
}));
8181
});
82+
83+
describe('dragend handler', function() {
84+
var element, event;
85+
86+
beforeEach(function() {
87+
element = compileAndLink(SIMPLE_HTML);
88+
event = createEvent('dragend');
89+
});
90+
91+
it('stops propagation', function() {
92+
event._triggerOn(element);
93+
expect(event._propagationStopped).toBe(true);
94+
});
95+
96+
it('removes CSS classes from element', inject(function($timeout) {
97+
element.addClass('dndDragging');
98+
element.addClass('dndDraggingSource');
99+
event._triggerOn(element);
100+
101+
expect(element.hasClass('dndDragging')).toBe(false);
102+
expect(element.hasClass('dndDraggingSource')).toBe(true);
103+
104+
$timeout.flush(0);
105+
expect(element.hasClass('dndDraggingSource')).toBe(false);
106+
}));
107+
108+
it('resets workarounds', inject(function(dndDragTypeWorkaround) {
109+
event._triggerOn(element);
110+
expect(dndDragTypeWorkaround.isDragging).toBe(false);
111+
}));
112+
113+
var dropEffects = {move: 'moved', copy: 'copied', none: 'canceled'};
114+
angular.forEach(dropEffects, function(callback, dropEffect) {
115+
it('calls callbacks for dropEffect ' + dropEffect, inject(function(dndDropEffectWorkaround) {
116+
var html = '<div dnd-draggable dnd-dragend="de = dropEffect" '
117+
+ 'dnd-' + callback + '="ev = event"></div>';
118+
element = compileAndLink(html);
119+
dndDropEffectWorkaround.dropEffect = dropEffect;
120+
121+
event._triggerOn(element);
122+
expect(element.scope().ev).toBe(event.originalEvent);
123+
expect(element.scope().de).toBe(dropEffect);
124+
}));
125+
});
126+
});
127+
128+
describe('click handler', function() {
129+
it('does nothing if dnd-selected is not set', function() {
130+
var element = compileAndLink(SIMPLE_HTML);
131+
var event = createEvent('click');
132+
event._triggerOn(element);
133+
expect(event._propagationStopped).toBeFalsy();
134+
});
135+
136+
it('invokes dnd-selected callback and stops propagation', function() {
137+
var element = compileAndLink('<div dnd-draggable dnd-selected="selected = true"></div>');
138+
var event = createEvent('click');
139+
event._triggerOn(element);
140+
expect(event._propagationStopped).toBe(true);
141+
expect(element.scope().selected).toBe(true);
142+
});
143+
});
82144
});

0 commit comments

Comments
 (0)