Skip to content

Commit 4d7c1b4

Browse files
committed
added jasmine tests to lock issue 3596
1 parent 58e47c4 commit 4d7c1b4

File tree

1 file changed

+97
-0
lines changed

1 file changed

+97
-0
lines changed

test/jasmine/tests/gl3d_plot_interact_test.js

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1489,6 +1489,103 @@ describe('Test gl3d relayout calls', function() {
14891489
.catch(failTest)
14901490
.then(done);
14911491
});
1492+
1493+
it('@gl should maintain projection type when resetCamera buttons clicked after switching projection type from perspective to orthographic', function(done) {
1494+
Plotly.plot(gd, {
1495+
data: [{
1496+
type: 'surface',
1497+
x: [0, 1],
1498+
y: [0, 1],
1499+
z: [[0, 1], [1, 0]]
1500+
}],
1501+
layout: {
1502+
width: 300,
1503+
height: 200,
1504+
scene: {
1505+
camera: {
1506+
eye: {
1507+
x: 2,
1508+
y: 1,
1509+
z: 0.5
1510+
}
1511+
}
1512+
}
1513+
}
1514+
})
1515+
.then(function() {
1516+
expect(gd._fullLayout.scene._scene.camera._ortho).toEqual(false, 'perspective');
1517+
})
1518+
.then(function() {
1519+
return Plotly.relayout(gd, 'scene.camera.projection.type', 'orthographic');
1520+
})
1521+
.then(function() {
1522+
expect(gd._fullLayout.scene._scene.camera._ortho).toEqual(true, 'orthographic');
1523+
})
1524+
.then(function() {
1525+
return selectButton(gd._fullLayout._modeBar, 'resetCameraLastSave3d').click();
1526+
})
1527+
.then(function() {
1528+
expect(gd._fullLayout.scene._scene.camera._ortho).toEqual(true, 'orthographic');
1529+
})
1530+
.then(function() {
1531+
return selectButton(gd._fullLayout._modeBar, 'resetCameraDefault3d').click();
1532+
})
1533+
.then(function() {
1534+
expect(gd._fullLayout.scene._scene.camera._ortho).toEqual(true, 'orthographic');
1535+
})
1536+
.catch(failTest)
1537+
.then(done);
1538+
});
1539+
1540+
it('@gl should maintain projection type when resetCamera buttons clicked after switching projection type from orthographic to perspective', function(done) {
1541+
Plotly.plot(gd, {
1542+
data: [{
1543+
type: 'surface',
1544+
x: [0, 1],
1545+
y: [0, 1],
1546+
z: [[0, 1], [1, 0]]
1547+
}],
1548+
layout: {
1549+
width: 300,
1550+
height: 200,
1551+
scene: {
1552+
camera: {
1553+
eye: {
1554+
x: 2,
1555+
y: 1,
1556+
z: 0.5
1557+
},
1558+
projection: {
1559+
type: 'orthographic'
1560+
}
1561+
}
1562+
}
1563+
}
1564+
})
1565+
.then(function() {
1566+
expect(gd._fullLayout.scene._scene.camera._ortho).toEqual(true, 'orthographic');
1567+
})
1568+
.then(function() {
1569+
return Plotly.relayout(gd, 'scene.camera.projection.type', 'perspective');
1570+
})
1571+
.then(function() {
1572+
expect(gd._fullLayout.scene._scene.camera._ortho).toEqual(false, 'perspective');
1573+
})
1574+
.then(function() {
1575+
return selectButton(gd._fullLayout._modeBar, 'resetCameraLastSave3d').click();
1576+
})
1577+
.then(function() {
1578+
expect(gd._fullLayout.scene._scene.camera._ortho).toEqual(false, 'perspective');
1579+
})
1580+
.then(function() {
1581+
return selectButton(gd._fullLayout._modeBar, 'resetCameraDefault3d').click();
1582+
})
1583+
.then(function() {
1584+
expect(gd._fullLayout.scene._scene.camera._ortho).toEqual(false, 'perspective');
1585+
})
1586+
.catch(failTest)
1587+
.then(done);
1588+
});
14921589
});
14931590

14941591
describe('Test gl3d annotations', function() {

0 commit comments

Comments
 (0)