UNPKG

@inst/vscode-bin-darwin

Version:

BINARY ONLY - VSCode binary deployment for macOS

226 lines (224 loc) 9.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var chai_1 = require("chai"); var CompositionHelper_1 = require("./CompositionHelper"); describe('CompositionHelper', function () { var terminal; var compositionHelper; var compositionView; var textarea; var handledText; beforeEach(function () { compositionView = { classList: { add: function () { }, remove: function () { }, }, getBoundingClientRect: function () { return { width: 0 }; }, style: { left: 0, top: 0 }, textContent: '' }; textarea = { value: '', style: { left: 0, top: 0 } }; terminal = { element: { querySelector: function () { return { offsetLeft: 0, offsetTop: 0 }; } }, handler: function (text) { handledText += text; }, buffer: { isCursorInViewport: true }, charMeasure: { height: 10, width: 10 }, options: { lineHeight: 1 } }; handledText = ''; compositionHelper = new CompositionHelper_1.CompositionHelper(textarea, compositionView, terminal); }); describe('Input', function () { it('Should insert simple characters', function (done) { compositionHelper.compositionstart(); compositionHelper.compositionupdate({ data: 'ㅇ' }); textarea.value = 'ㅇ'; setTimeout(function () { compositionHelper.compositionend(); setTimeout(function () { chai_1.assert.equal(handledText, 'ㅇ'); compositionHelper.compositionstart(); compositionHelper.compositionupdate({ data: 'ㅇ' }); textarea.value = 'ㅇㅇ'; setTimeout(function () { compositionHelper.compositionend(); setTimeout(function () { chai_1.assert.equal(handledText, 'ㅇㅇ'); done(); }, 0); }, 0); }, 0); }, 0); }); it('Should insert complex characters', function (done) { compositionHelper.compositionstart(); compositionHelper.compositionupdate({ data: 'ㅇ' }); textarea.value = 'ㅇ'; setTimeout(function () { compositionHelper.compositionupdate({ data: '아' }); textarea.value = '아'; setTimeout(function () { compositionHelper.compositionupdate({ data: '앙' }); textarea.value = '앙'; setTimeout(function () { compositionHelper.compositionend(); setTimeout(function () { chai_1.assert.equal(handledText, '앙'); compositionHelper.compositionstart(); compositionHelper.compositionupdate({ data: 'ㅇ' }); textarea.value = '앙ㅇ'; setTimeout(function () { compositionHelper.compositionupdate({ data: '아' }); textarea.value = '앙아'; setTimeout(function () { compositionHelper.compositionupdate({ data: '앙' }); textarea.value = '앙앙'; setTimeout(function () { compositionHelper.compositionend(); setTimeout(function () { chai_1.assert.equal(handledText, '앙앙'); done(); }, 0); }, 0); }, 0); }, 0); }, 0); }, 0); }, 0); }, 0); }); it('Should insert complex characters that change with following character', function (done) { compositionHelper.compositionstart(); compositionHelper.compositionupdate({ data: 'ㅇ' }); textarea.value = 'ㅇ'; setTimeout(function () { compositionHelper.compositionupdate({ data: '아' }); textarea.value = '아'; setTimeout(function () { compositionHelper.compositionupdate({ data: '앙' }); textarea.value = '앙'; setTimeout(function () { compositionHelper.compositionend(); compositionHelper.compositionstart(); compositionHelper.compositionupdate({ data: '아' }); textarea.value = '아아'; setTimeout(function () { compositionHelper.compositionend(); setTimeout(function () { chai_1.assert.equal(handledText, '아아'); done(); }, 0); }, 0); }, 0); }, 0); }, 0); }); it('Should insert multi-characters compositions', function (done) { compositionHelper.compositionstart(); compositionHelper.compositionupdate({ data: 'd' }); textarea.value = 'd'; setTimeout(function () { compositionHelper.compositionupdate({ data: 'だ' }); textarea.value = 'だ'; setTimeout(function () { compositionHelper.compositionupdate({ data: 'だあ' }); textarea.value = 'だあ'; setTimeout(function () { compositionHelper.compositionend(); setTimeout(function () { chai_1.assert.equal(handledText, 'だあ'); done(); }, 0); }, 0); }, 0); }, 0); }); it('Should insert multi-character compositions that are converted to other characters with the same length', function (done) { compositionHelper.compositionstart(); compositionHelper.compositionupdate({ data: 'd' }); textarea.value = 'd'; setTimeout(function () { compositionHelper.compositionupdate({ data: 'だ' }); textarea.value = 'だ'; setTimeout(function () { compositionHelper.compositionupdate({ data: 'だー' }); textarea.value = 'だー'; setTimeout(function () { compositionHelper.compositionupdate({ data: 'ダー' }); textarea.value = 'ダー'; setTimeout(function () { compositionHelper.compositionend(); setTimeout(function () { chai_1.assert.equal(handledText, 'ダー'); done(); }, 0); }, 0); }, 0); }, 0); }, 0); }); it('Should insert multi-character compositions that are converted to other characters with different lengths', function (done) { compositionHelper.compositionstart(); compositionHelper.compositionupdate({ data: 'い' }); textarea.value = 'い'; setTimeout(function () { compositionHelper.compositionupdate({ data: 'いm' }); textarea.value = 'いm'; setTimeout(function () { compositionHelper.compositionupdate({ data: 'いま' }); textarea.value = 'いま'; setTimeout(function () { compositionHelper.compositionupdate({ data: '今' }); textarea.value = '今'; setTimeout(function () { compositionHelper.compositionend(); setTimeout(function () { chai_1.assert.equal(handledText, '今'); done(); }, 0); }, 0); }, 0); }, 0); }, 0); }); it('Should insert non-composition characters input immediately after composition characters', function (done) { compositionHelper.compositionstart(); compositionHelper.compositionupdate({ data: 'ㅇ' }); textarea.value = 'ㅇ'; setTimeout(function () { compositionHelper.compositionend(); textarea.value = 'ㅇ1'; setTimeout(function () { chai_1.assert.equal(handledText, 'ㅇ1'); done(); }, 0); }, 0); }); }); }); //# sourceMappingURL=CompositionHelper.test.js.map