Skip to content

Commit 905956a

Browse files
committed
improve plotly_webglcontextlost tests
- test gl2d 'focus' canvas - test the 3 parcoords canvases!
1 parent 7e282c3 commit 905956a

File tree

2 files changed

+45
-1
lines changed

2 files changed

+45
-1
lines changed

test/jasmine/tests/gl2d_plot_interact_test.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ describe('Test gl plot side effects', function() {
220220

221221
Plotly.plot(gd, _mock).then(function() {
222222
return new Promise(function(resolve, reject) {
223-
gd.on('plotly_webglcontextlost', resolve);
223+
gd.once('plotly_webglcontextlost', resolve);
224224
setTimeout(reject, 10);
225225

226226
var ev = new window.WebGLContextEvent('webglcontextlost');
@@ -232,6 +232,20 @@ describe('Test gl plot side effects', function() {
232232
expect((eventData || {}).event).toBeDefined();
233233
expect((eventData || {}).layer).toBe('contextLayer');
234234
})
235+
.then(function() {
236+
return new Promise(function(resolve, reject) {
237+
gd.once('plotly_webglcontextlost', resolve);
238+
setTimeout(reject, 10);
239+
240+
var ev = new window.WebGLContextEvent('webglcontextlost');
241+
var canvas = gd.querySelector('.gl-canvas-focus');
242+
canvas.dispatchEvent(ev);
243+
});
244+
})
245+
.then(function(eventData) {
246+
expect((eventData || {}).event).toBeDefined();
247+
expect((eventData || {}).layer).toBe('focusLayer');
248+
})
235249
.catch(failTest)
236250
.then(done);
237251
});

test/jasmine/tests/parcoords_test.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1052,6 +1052,36 @@ describe('parcoords basic use', function() {
10521052
.catch(failTest)
10531053
.then(done);
10541054
});
1055+
1056+
it('@gl should fire *plotly_webglcontextlost* when on webgl context lost', function() {
1057+
var eventData;
1058+
var cnt = 0;
1059+
gd.on('plotly_webglcontextlost', function(d) {
1060+
eventData = d;
1061+
cnt++;
1062+
});
1063+
1064+
function trigger(name) {
1065+
var ev = new window.WebGLContextEvent('webglcontextlost');
1066+
var canvas = gd.querySelector('.gl-canvas-' + name);
1067+
canvas.dispatchEvent(ev);
1068+
}
1069+
1070+
function _assert(d, c) {
1071+
expect((eventData || {}).event).toBeDefined();
1072+
expect((eventData || {}).layer).toBe(d);
1073+
expect(cnt).toBe(c);
1074+
}
1075+
1076+
trigger('context');
1077+
_assert('contextLayer', 1);
1078+
1079+
trigger('focus');
1080+
_assert('focusLayer', 2);
1081+
1082+
trigger('pick');
1083+
_assert('pickLayer', 3);
1084+
});
10551085
});
10561086

10571087
describe('@noCI parcoords constraint interactions', function() {

0 commit comments

Comments
 (0)