From 3638ef808be050aa1ae3e3d5ef1fd6617952f3df Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Tue, 22 Nov 2016 11:50:08 -0800 Subject: [PATCH] tsify CompositionHelper test --- src/CompositionHelper.test.ts | 113 +++++++++++++--------------------- 1 file changed, 43 insertions(+), 70 deletions(-) diff --git a/src/CompositionHelper.test.ts b/src/CompositionHelper.test.ts index 192df05d..f0acd40e 100644 --- a/src/CompositionHelper.test.ts +++ b/src/CompositionHelper.test.ts @@ -1,20 +1,20 @@ -var assert = require('chai').assert; -var Terminal = require('../xterm'); +import { assert } from 'chai'; +import { CompositionHelper } from './CompositionHelper'; -describe('CompositionHelper', function () { +describe('CompositionHelper', () => { var terminal; var compositionHelper; var compositionView; var textarea; var handledText; - beforeEach(function () { + beforeEach(() => { compositionView = { classList: { - add: function () {}, - remove: function () {}, + add: () => {}, + remove: () => {}, }, - getBoundingClientRect: function () { + getBoundingClientRect: () => { return { width: 0 }; }, style: { @@ -32,7 +32,7 @@ describe('CompositionHelper', function () { }; terminal = { element: { - querySelector: function () { + querySelector: () => { return { offsetLeft: 0, offsetTop: 0 }; } }, @@ -41,53 +41,26 @@ describe('CompositionHelper', function () { } }; handledText = ''; - compositionHelper = new Terminal.CompositionHelper(textarea, compositionView, terminal); + compositionHelper = new CompositionHelper(textarea, compositionView, terminal); }); - describe('Public API', function () { - it('should define CompositionHelper.prototype.compositionstart', function () { - assert.isDefined(Terminal.CompositionHelper.prototype.compositionstart); - }); - it('should define CompositionHelper.prototype.compositionupdate', function () { - assert.isDefined(Terminal.CompositionHelper.prototype.compositionupdate); - }); - it('should define CompositionHelper.prototype.compositionend', function () { - assert.isDefined(Terminal.CompositionHelper.prototype.compositionend); - }); - it('should define CompositionHelper.prototype.finalizeComposition', function () { - assert.isDefined(Terminal.CompositionHelper.prototype.finalizeComposition); - }); - it('should define CompositionHelper.prototype.handleAnyTextareaChanges', function () { - assert.isDefined(Terminal.CompositionHelper.prototype.handleAnyTextareaChanges); - }); - it('should define CompositionHelper.prototype.updateCompositionElements', function () { - assert.isDefined(Terminal.CompositionHelper.prototype.updateCompositionElements); - }); - it('should define CompositionHelper.isComposing', function () { - assert.isDefined(compositionHelper.isComposing); - }); - it('should define CompositionHelper.isSendingComposition', function () { - assert.isDefined(compositionHelper.isSendingComposition); - }); - }); - - describe('Input', function () { + describe('Input', () => { it('Should insert simple characters', function (done) { // First character 'ㅇ' compositionHelper.compositionstart(); compositionHelper.compositionupdate({ data: 'ㅇ' }); textarea.value = 'ㅇ'; - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates compositionHelper.compositionend(); - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates assert.equal(handledText, 'ㅇ'); // Second character 'ㅇ' compositionHelper.compositionstart(); compositionHelper.compositionupdate({ data: 'ㅇ' }); textarea.value = 'ㅇㅇ'; - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates compositionHelper.compositionend(); - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates assert.equal(handledText, 'ㅇㅇ'); done(); }, 0); @@ -101,29 +74,29 @@ describe('CompositionHelper', function () { compositionHelper.compositionstart(); compositionHelper.compositionupdate({ data: 'ㅇ' }); textarea.value = 'ㅇ'; - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates compositionHelper.compositionupdate({ data: '아' }); textarea.value = '아'; - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates compositionHelper.compositionupdate({ data: '앙' }); textarea.value = '앙'; - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates compositionHelper.compositionend(); - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates assert.equal(handledText, '앙'); // Second character '앙' compositionHelper.compositionstart(); compositionHelper.compositionupdate({ data: 'ㅇ' }); textarea.value = '앙ㅇ'; - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates compositionHelper.compositionupdate({ data: '아' }); textarea.value = '앙아'; - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates compositionHelper.compositionupdate({ data: '앙' }); textarea.value = '앙앙'; - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates compositionHelper.compositionend(); - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates assert.equal(handledText, '앙앙'); done(); }, 0); @@ -141,21 +114,21 @@ describe('CompositionHelper', function () { compositionHelper.compositionstart(); compositionHelper.compositionupdate({ data: 'ㅇ' }); textarea.value = 'ㅇ'; - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates compositionHelper.compositionupdate({ data: '아' }); textarea.value = '아'; - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates // Start second character '아' in first character compositionHelper.compositionupdate({ data: '앙' }); textarea.value = '앙'; - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates compositionHelper.compositionend(); compositionHelper.compositionstart(); compositionHelper.compositionupdate({ data: '아' }); textarea.value = '아아' - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates compositionHelper.compositionend(); - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates assert.equal(handledText, '아아'); done(); }, 0); @@ -170,16 +143,16 @@ describe('CompositionHelper', function () { compositionHelper.compositionstart(); compositionHelper.compositionupdate({ data: 'd' }); textarea.value = 'd'; - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates compositionHelper.compositionupdate({ data: 'だ' }); textarea.value = 'だ'; - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates // Second character 'あ' compositionHelper.compositionupdate({ data: 'だあ' }); textarea.value = 'だあ'; - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates compositionHelper.compositionend(); - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates assert.equal(handledText, 'だあ'); done(); }, 0); @@ -193,20 +166,20 @@ describe('CompositionHelper', function () { compositionHelper.compositionstart(); compositionHelper.compositionupdate({ data: 'd' }); textarea.value = 'd'; - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates compositionHelper.compositionupdate({ data: 'だ' }); textarea.value = 'だ'; - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates // Second character 'ー' compositionHelper.compositionupdate({ data: 'だー' }); textarea.value = 'だー'; - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates // Convert to katakana 'ダー' compositionHelper.compositionupdate({ data: 'ダー' }); textarea.value = 'ダー'; - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates compositionHelper.compositionend(); - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates assert.equal(handledText, 'ダー'); done(); }, 0); @@ -221,20 +194,20 @@ describe('CompositionHelper', function () { compositionHelper.compositionstart(); compositionHelper.compositionupdate({ data: 'い' }); textarea.value = 'い'; - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates // Second character 'ま' compositionHelper.compositionupdate({ data: 'いm' }); textarea.value = 'いm'; - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates compositionHelper.compositionupdate({ data: 'いま' }); textarea.value = 'いま'; - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates // Convert to kanji '今' compositionHelper.compositionupdate({ data: '今' }); textarea.value = '今'; - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates compositionHelper.compositionend(); - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates assert.equal(handledText, '今'); done(); }, 0); @@ -249,11 +222,11 @@ describe('CompositionHelper', function () { compositionHelper.compositionstart(); compositionHelper.compositionupdate({ data: 'ㅇ' }); textarea.value = 'ㅇ'; - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates compositionHelper.compositionend(); // Second character '1' (a non-composition character) textarea.value = 'ㅇ1'; - setTimeout(function() { // wait for any textarea updates + setTimeout(() => { // wait for any textarea updates assert.equal(handledText, 'ㅇ1'); done(); }, 0);