41 lines
1015 B
TypeScript
41 lines
1015 B
TypeScript
/**
|
|
* Copyright (c) 2020 The xterm.js authors. All rights reserved.
|
|
* @license MIT
|
|
*/
|
|
|
|
import { assert } from 'chai';
|
|
import { addDisposableDomListener } from './Lifecycle';
|
|
import jsdom = require('jsdom');
|
|
|
|
describe('addDisposableDomListener', () => {
|
|
const dom = new jsdom.JSDOM();
|
|
const document = dom.window.document;
|
|
|
|
function createEvent(type: string): Event {
|
|
const event = document.createEvent('Event');
|
|
event.initEvent(type);
|
|
return event;
|
|
}
|
|
|
|
it('dispose', () => {
|
|
let calledTimes = 0;
|
|
const div = document.createElement('div');
|
|
const disposable = addDisposableDomListener(div, 'test', () => { calledTimes++; });
|
|
|
|
assert.equal(calledTimes, 0);
|
|
|
|
div.dispatchEvent(createEvent('test'));
|
|
assert.equal(calledTimes, 1);
|
|
|
|
disposable.dispose();
|
|
|
|
div.dispatchEvent(createEvent('test'));
|
|
assert.equal(calledTimes, 1);
|
|
|
|
disposable.dispose(); // double disposing
|
|
|
|
div.dispatchEvent(createEvent('test'));
|
|
assert.equal(calledTimes, 1);
|
|
});
|
|
});
|