Skip to content

Commit 68f8044

Browse files
committed
test(render): add loseAndRestoreContext operation to render tests
1 parent edb19ed commit 68f8044

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

test/integration/render/run_render_tests.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -677,6 +677,26 @@ async function getImageFromStyle(styleForTest: StyleWithTestData, page: Page): P
677677
case 'pauseSource':
678678
map.style.sourceCaches[operation[1]].pause();
679679
break;
680+
case 'loseAndRestoreContext': {
681+
const canvas = map.getCanvas();
682+
const gl = canvas.getContext('webgl2') || canvas.getContext('webgl');
683+
const ext = gl && gl.getExtension('WEBGL_lose_context');
684+
ext?.loseContext();
685+
await new Promise<void>((resolve) => {
686+
setTimeout(() => {
687+
resolve();
688+
}, 50);
689+
});
690+
ext?.restoreContext();
691+
await new Promise<void>(resolve => {
692+
const onRestored = () => {
693+
canvas.removeEventListener('webglcontextrestored', onRestored);
694+
resolve();
695+
};
696+
canvas.addEventListener('webglcontextrestored', onRestored);
697+
});
698+
break;
699+
}
680700
default:
681701
if (typeof map[operation[0]] === 'function') {
682702
map[operation[0]](...operation.slice(1));

0 commit comments

Comments
 (0)