Skip to content

Commit 16461df

Browse files
committed
test eventdata for selections edits on various dragmodes
1 parent 09f43a9 commit 16461df

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

test/jasmine/tests/draw_newselection_test.js

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -651,3 +651,80 @@ describe('Activate and edit selections', function() {
651651
.then(done, done.fail);
652652
});
653653
});
654+
655+
656+
describe('emit plotly_selected event on editing selections in various dragmodes', function() {
657+
var gd;
658+
659+
beforeEach(function() {
660+
gd = createGraphDiv();
661+
});
662+
663+
afterEach(destroyGraphDiv);
664+
665+
['zoom', 'pan', 'drawrect', 'drawclosedpath', 'drawcircle'].forEach(function(dragmode) {
666+
it('get eventData for editing selections using ' + dragmode + ' dragmode', function(done) {
667+
var fig = {
668+
data: [
669+
{
670+
x: [0, 1, 2],
671+
y: [1, 2, 3]
672+
}
673+
],
674+
layout: {
675+
width: 800,
676+
height: 600,
677+
margin: {
678+
t: 100,
679+
b: 50,
680+
l: 100,
681+
r: 50
682+
},
683+
selections: [{ x0: 0.5, x1: 1.5, y0: 1.5, y1: 2.5}],
684+
dragmode: dragmode
685+
}
686+
};
687+
688+
var range;
689+
var points;
690+
var lassoPoints;
691+
var selections;
692+
693+
Plotly.newPlot(gd, fig)
694+
695+
.then(function() {
696+
gd.on('plotly_selected', function(d) {
697+
lassoPoints = d.lassoPoints;
698+
range = d.range;
699+
points = d.points;
700+
selections = d.selections;
701+
});
702+
})
703+
704+
.then(function() { click(400, 300); }) // activate selection
705+
.then(function() { drag([[400, 300], [600, 100]]); }) // move selection
706+
.then(function() {
707+
expect(range).not.toBeUndefined();
708+
expect(range.x).toBeCloseToArray([1.1926580086580088, 2.1926580086580088], 3);
709+
expect(range.y).toBeCloseToArray([2.5062641509433967, 3.5062641509433967], 3);
710+
711+
expect(lassoPoints).toBeUndefined();
712+
713+
expect(points).not.toBeUndefined();
714+
expect(points.length).toEqual(1);
715+
expect(points[0].fullData).not.toBeUndefined();
716+
expect(points[0].data).not.toBeUndefined();
717+
expect(points[0].data.selectedpoints).toEqual([2]);
718+
719+
expect(selections).not.toBeUndefined();
720+
expect(selections.length).toEqual(1);
721+
expect(selections[0]).not.toBeUndefined();
722+
expect(selections[0].x0).toBeCloseTo(1.1926580086580088, 3);
723+
expect(selections[0].x1).toBeCloseTo(2.1926580086580088, 3);
724+
expect(selections[0].y0).toBeCloseTo(2.5062641509433967, 3);
725+
expect(selections[0].y1).toBeCloseTo(3.5062641509433967, 3);
726+
})
727+
.then(done, done.fail);
728+
});
729+
});
730+
});

0 commit comments

Comments
 (0)