Add typing test in the code app

This commit is contained in:
yflory 2018-11-22 14:45:12 +01:00
parent 015449832c
commit 13d6579861
3 changed files with 33 additions and 3 deletions

View File

@ -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 () {

View File

@ -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
};
});

View File

@ -685,6 +685,7 @@ define([
];
});
/* hitting enter makes a new line, but places the cursor inside
of the <br> instead of the <p>. 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;
};