Skip to content

Commit 7e282c3

Browse files
committed
add gl2d and gl3d plotly_webglcontextlost evt handler tests
1 parent 4265bab commit 7e282c3

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

test/jasmine/tests/gl2d_plot_interact_test.js

+21
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,27 @@ describe('Test gl plot side effects', function() {
214214
.catch(failTest)
215215
.then(done);
216216
});
217+
218+
it('@gl should fire *plotly_webglcontextlost* when on webgl context lost', function(done) {
219+
var _mock = Lib.extendDeep({}, require('@mocks/gl2d_12.json'));
220+
221+
Plotly.plot(gd, _mock).then(function() {
222+
return new Promise(function(resolve, reject) {
223+
gd.on('plotly_webglcontextlost', resolve);
224+
setTimeout(reject, 10);
225+
226+
var ev = new window.WebGLContextEvent('webglcontextlost');
227+
var canvas = gd.querySelector('.gl-canvas-context');
228+
canvas.dispatchEvent(ev);
229+
});
230+
})
231+
.then(function(eventData) {
232+
expect((eventData || {}).event).toBeDefined();
233+
expect((eventData || {}).layer).toBe('contextLayer');
234+
})
235+
.catch(failTest)
236+
.then(done);
237+
});
217238
});
218239

219240
describe('Test gl2d plots', function() {

test/jasmine/tests/gl3d_plot_interact_test.js

+21
Original file line numberDiff line numberDiff line change
@@ -1425,4 +1425,25 @@ describe('Test removal of gl contexts', function() {
14251425
})
14261426
.then(done);
14271427
});
1428+
1429+
it('@gl should fire *plotly_webglcontextlost* when on webgl context lost', function(done) {
1430+
var _mock = Lib.extendDeep({}, require('@mocks/gl3d_marker-arrays.json'));
1431+
1432+
Plotly.plot(gd, _mock).then(function() {
1433+
return new Promise(function(resolve, reject) {
1434+
gd.on('plotly_webglcontextlost', resolve);
1435+
setTimeout(reject, 10);
1436+
1437+
var ev = new window.WebGLContextEvent('webglcontextlost');
1438+
var canvas = gd.querySelector('div#scene > canvas');
1439+
canvas.dispatchEvent(ev);
1440+
});
1441+
})
1442+
.then(function(eventData) {
1443+
expect((eventData || {}).event).toBeDefined();
1444+
expect((eventData || {}).layer).toBe('scene');
1445+
})
1446+
.catch(failTest)
1447+
.then(done);
1448+
});
14281449
});

0 commit comments

Comments
 (0)