Merge branch 'open-master' into open1388

This commit is contained in:
Victor Woeltjen
2015-06-27 12:17:45 -07:00
20 changed files with 553 additions and 86 deletions

View File

@@ -57,13 +57,17 @@ define(
// mouse may leave this element during the drag.
var body = $document.find('body'),
initialPosition,
$event,
delta;
// Utility function to cause evaluation of mctDrag,
// mctDragUp, etc
function fireListener(name) {
// Evaluate the expression, with current delta
scope.$eval(attrs[name], { delta: delta });
scope.$eval(attrs[name], {
delta: delta,
$event: $event
});
// Trigger prompt digestion
scope.$apply();
@@ -82,6 +86,9 @@ define(
delta = currentPosition.map(function (v, i) {
return v - initialPosition[i];
});
// Also track the plain event for firing listeners
$event = event;
}
// Called during a drag, on mousemove
@@ -106,7 +113,7 @@ define(
fireListener("mctDragUp");
// Clear out start-of-drag position
// Clear out start-of-drag position, target
initialPosition = undefined;
// Don't show selection highlights, etc
@@ -131,6 +138,7 @@ define(
// Don't show selection highlights, etc
event.preventDefault();
return false;
}
@@ -148,4 +156,4 @@ define(
return MCTDrag;
}
);
);

View File

@@ -81,10 +81,11 @@ define(
});
it("invokes mctDragDown when dragging begins", function () {
mockElement.on.mostRecentCall.args[1](testEvent(42, 60));
var event = testEvent(42, 60);
mockElement.on.mostRecentCall.args[1](event);
expect(mockScope.$eval).toHaveBeenCalledWith(
testAttrs.mctDragDown,
{ delta: [0, 0] }
{ delta: [0, 0], $event: event }
);
});
@@ -101,23 +102,27 @@ define(
});
it("invokes mctDrag expression during drag", function () {
var event;
mockElement.on.mostRecentCall.args[1](testEvent(42, 60));
// Find and invoke the mousemove listener
mockBody.on.calls.forEach(function (call) {
if (call.args[0] === 'mousemove') {
call.args[1](testEvent(52, 200));
call.args[1](event = testEvent(52, 200));
}
});
// Should have passed that delta to mct-drag expression
expect(mockScope.$eval).toHaveBeenCalledWith(
testAttrs.mctDrag,
{ delta: [10, 140] }
{ delta: [10, 140], $event: event }
);
});
it("invokes mctDragUp expression after drag", function () {
var event;
mockElement.on.mostRecentCall.args[1](testEvent(42, 60));
// Find and invoke the mousemove listener
@@ -129,7 +134,7 @@ define(
// Find and invoke the mousemove listener
mockBody.on.calls.forEach(function (call) {
if (call.args[0] === 'mouseup') {
call.args[1](testEvent(40, 71));
call.args[1](event = testEvent(40, 71));
}
});
@@ -138,7 +143,7 @@ define(
// initial position
expect(mockScope.$eval).toHaveBeenCalledWith(
testAttrs.mctDragUp,
{ delta: [-2, 11] }
{ delta: [-2, 11], $event: event }
);
// Should also have unregistered listeners
@@ -147,4 +152,4 @@ define(
});
}
);
);