From 13d657986111a45fa3fd401b5d5947c4b7bf3982 Mon Sep 17 00:00:00 2001 From: yflory Date: Thu, 22 Nov 2018 14:45:12 +0100 Subject: [PATCH] Add typing test in the code app --- www/code/inner.js | 8 ++++++++ www/common/TypingTests.js | 25 +++++++++++++++++++++++-- www/pad/inner.js | 3 ++- 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/www/code/inner.js b/www/code/inner.js index a6114c1dc..1601bae58 100644 --- a/www/code/inner.js +++ b/www/code/inner.js @@ -9,6 +9,7 @@ define([ '/common/common-hash.js', '/common/modes.js', '/common/visible.js', + '/common/TypingTests.js', '/customize/messages.js', 'cm/lib/codemirror', @@ -51,6 +52,7 @@ define([ Hash, Modes, Visible, + TypingTest, Messages, CMeditor) { @@ -345,6 +347,12 @@ define([ editor.on('change', framework.localChange); framework.start(); + + + window.easyTest = function () { + var test = TypingTest.testCode(editor); + return test; + }; }; var getThumbnailContainer = function () { diff --git a/www/common/TypingTests.js b/www/common/TypingTests.js index f35018881..cf97b6974 100644 --- a/www/common/TypingTests.js +++ b/www/common/TypingTests.js @@ -56,7 +56,7 @@ define(function () { }; }; - var testInput2 = function (editor) { + var testPad = function (editor, onLocal) { var i = 0, input = " The quick red fox jumps over the lazy brown dog.", l = input.length, @@ -67,6 +67,26 @@ define(function () { interval = setRandomizedInterval(function () { editor.insertText(input.charAt(i)); + onLocal(); + i = (i + 1) % l; + }, 200, 50); + + return { + cancel: cancel + }; + }; + + var testCode = function (editor) { + var i = 0, + input = " The quick red fox jumps over the lazy brown dog.", + l = input.length, + interval; + var cancel = function () { + if (interval) { interval.cancel(); } + }; + + interval = setRandomizedInterval(function () { + editor.replaceSelection(input.charAt(i)); i = (i + 1) % l; }, 200, 50); @@ -77,7 +97,8 @@ define(function () { return { testInput: testInput, - testInput2: testInput2, + testPad: testPad, + testCode: testCode, setRandomizedInterval: setRandomizedInterval }; }); diff --git a/www/pad/inner.js b/www/pad/inner.js index c1f3db7cd..37038f7db 100644 --- a/www/pad/inner.js +++ b/www/pad/inner.js @@ -685,6 +685,7 @@ define([ ]; }); + /* hitting enter makes a new line, but places the cursor inside of the
instead of the

. This makes it such that you cannot type until you click, which is rather unnacceptable. @@ -715,7 +716,7 @@ define([ cursor.update(); //var start = cursor.Range.start; //var test = TypingTest.testInput(inner, start.el, start.offset, framework.localChange); - var test = TypingTest.testInput2(editor); + var test = TypingTest.testPad(editor, framework.localChange); framework.localChange(); return test; };