diff options
Diffstat (limited to 'javascript/videojs/test/unit/error-display.test.js')
| -rw-r--r-- | javascript/videojs/test/unit/error-display.test.js | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/javascript/videojs/test/unit/error-display.test.js b/javascript/videojs/test/unit/error-display.test.js new file mode 100644 index 0000000..802483c --- /dev/null +++ b/javascript/videojs/test/unit/error-display.test.js @@ -0,0 +1,63 @@ +/* eslint-env qunit */ +import TestHelpers from './test-helpers.js'; + +QUnit.module('ErrorDisplay'); + +QUnit.test('should update errorDisplay when several errors occur in succession', function(assert) { + const player = TestHelpers.makePlayer({ techOrder: ['html5'] }); + const events = { + beforemodalopen: 0, + beforemodalclose: 0, + modalopen: 0, + modalclose: 0 + }; + + player.errorDisplay.on( + ['beforemodalopen', 'beforemodalclose', 'modalopen', 'modalclose'], + ({ type }) => { + events[type] += 1; + } + ); + + // Dummy case for initial state + assert.strictEqual(player.error(), null, 'error is null'); + assert.strictEqual( + player.errorDisplay.contentEl().textContent, + '', + 'error display contentEl textContent is empty' + ); + assert.strictEqual(events.beforemodalopen, 0, 'beforemodalopen was not called'); + assert.strictEqual(events.modalopen, 0, 'modalopen was not called'); + assert.strictEqual(events.beforemodalclose, 0, 'beforemodalclose was not called'); + assert.strictEqual(events.modalclose, 0, 'modalclose was not called'); + + // Case for first error + player.error('Error 1'); + + assert.strictEqual(player.error().message, 'Error 1', 'error has message'); + assert.strictEqual( + player.errorDisplay.contentEl().textContent, + 'Error 1', + 'error display contentEl textContent has content' + ); + assert.strictEqual(events.beforemodalopen, 1, 'beforemodalopen was called once'); + assert.strictEqual(events.modalopen, 1, 'modalopen was called once'); + assert.strictEqual(events.beforemodalclose, 0, 'beforemodalclose was not called'); + assert.strictEqual(events.modalclose, 0, 'modalclose was not called'); + + // Case for second error + player.error('Error 2'); + + assert.strictEqual(player.error().message, 'Error 2', 'error has new message'); + assert.strictEqual( + player.errorDisplay.contentEl().textContent, + 'Error 2', + 'error display contentEl textContent has been updated with the new error message' + ); + assert.strictEqual(events.beforemodalopen, 1, 'beforemodalopen was called once'); + assert.strictEqual(events.modalopen, 1, 'modalopen has been called once'); + assert.strictEqual(events.beforemodalclose, 0, 'beforemodalclose was not called'); + assert.strictEqual(events.modalclose, 0, 'modalclose was not called'); + + player.dispose(); +}); |
