This test checks how text editor handles different ctrl-based movements, i.e. ctrl-left, ctrl-right, ctrl-shift-left, ctrl-backspace.

function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true : false;
}

Running: testCtrlRightArrow
|function testFunction(foo, bar)
function| testFunction(foo, bar)
function testFunction|(foo, bar)
function testFunction(|foo, bar)
function testFunction(foo|, bar)
function testFunction(foo,| bar)
function testFunction(foo, bar|)
function testFunction(foo, bar)|
|{
{|
|    someFunctionCall(bar);
    someFunctionCall|(bar);
    someFunctionCall(|bar);
    someFunctionCall(bar|);
    someFunctionCall(bar);|
|    var b = 42;
    var| b = 42;
    var b| = 42;
    var b =| 42;
    var b = 42|;
    var b = 42;|
|    return a === 1 ? true : false;
    return| a === 1 ? true : false;
    return a| === 1 ? true : false;
    return a ===| 1 ? true : false;
    return a === 1| ? true : false;
    return a === 1 ?| true : false;
    return a === 1 ? true| : false;
    return a === 1 ? true :| false;
    return a === 1 ? true : false|;
    return a === 1 ? true : false;|
|}
}|
}|

Running: testCtrlLeftArrow
}|
|}
    return a === 1 ? true : false;|
    return a === 1 ? true : false|;
    return a === 1 ? true : |false;
    return a === 1 ? true |: false;
    return a === 1 ? |true : false;
    return a === 1 |? true : false;
    return a === |1 ? true : false;
    return a |=== 1 ? true : false;
    return |a === 1 ? true : false;
    |return a === 1 ? true : false;
|    return a === 1 ? true : false;
    var b = 42;|
    var b = 42|;
    var b = |42;
    var b |= 42;
    var |b = 42;
    |var b = 42;
|    var b = 42;
    someFunctionCall(bar);|
    someFunctionCall(bar|);
    someFunctionCall(|bar);
    someFunctionCall|(bar);
    |someFunctionCall(bar);
|    someFunctionCall(bar);
{|
|{
function testFunction(foo, bar)|
function testFunction(foo, bar|)
function testFunction(foo, |bar)
function testFunction(foo|, bar)
function testFunction(|foo, bar)
function testFunction|(foo, bar)
function |testFunction(foo, bar)
|function testFunction(foo, bar)
|function testFunction(foo, bar)

Running: testCtrlShiftRightArrow
|function testFunction(foo, bar)
>>function<<
>>function testFunction<<
>>function testFunction(<<
>>function testFunction(foo<<
>>function testFunction(foo,<<
>>function testFunction(foo, bar<<
>>function testFunction(foo, bar)<<
>>function testFunction(foo, bar)
<<
>>function testFunction(foo, bar)
{<<
>>function testFunction(foo, bar)
{
<<
>>function testFunction(foo, bar)
{
    someFunctionCall<<
>>function testFunction(foo, bar)
{
    someFunctionCall(<<
>>function testFunction(foo, bar)
{
    someFunctionCall(bar<<
>>function testFunction(foo, bar)
{
    someFunctionCall(bar);<<
>>function testFunction(foo, bar)
{
    someFunctionCall(bar);
<<
>>function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var<<
>>function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b<<
>>function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b =<<
>>function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42<<
>>function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;<<
>>function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
<<
>>function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return<<
>>function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a<<
>>function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a ===<<
>>function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1<<
>>function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ?<<
>>function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true<<
>>function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true :<<
>>function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true : false<<
>>function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true : false;<<
>>function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true : false;
<<
>>function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true : false;
}<<
>>function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true : false;
}<<

Running: testCtrlShiftLeftArrow
}|
>>}<<
>>
}<<
>>;
}<<
>>false;
}<<
>>: false;
}<<
>>true : false;
}<<
>>? true : false;
}<<
>>1 ? true : false;
}<<
>>=== 1 ? true : false;
}<<
>>a === 1 ? true : false;
}<<
>>return a === 1 ? true : false;
}<<
>>    return a === 1 ? true : false;
}<<
>>
    return a === 1 ? true : false;
}<<
>>;
    return a === 1 ? true : false;
}<<
>>42;
    return a === 1 ? true : false;
}<<
>>= 42;
    return a === 1 ? true : false;
}<<
>>b = 42;
    return a === 1 ? true : false;
}<<
>>var b = 42;
    return a === 1 ? true : false;
}<<
>>    var b = 42;
    return a === 1 ? true : false;
}<<
>>
    var b = 42;
    return a === 1 ? true : false;
}<<
>>);
    var b = 42;
    return a === 1 ? true : false;
}<<
>>bar);
    var b = 42;
    return a === 1 ? true : false;
}<<
>>(bar);
    var b = 42;
    return a === 1 ? true : false;
}<<
>>someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true : false;
}<<
>>    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true : false;
}<<
>>
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true : false;
}<<
>>{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true : false;
}<<
>>
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true : false;
}<<
>>)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true : false;
}<<
>>bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true : false;
}<<
>>, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true : false;
}<<
>>foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true : false;
}<<
>>(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true : false;
}<<
>>testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true : false;
}<<
>>function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true : false;
}<<
>>function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true : false;
}<<

Running: testCtrlBackspace
===============
function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true : false;
}
===============
function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true : false;
<<
===============
function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true : false;<<
===============
function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true : false<<
===============
function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true : <<
===============
function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? true <<
===============
function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 ? <<
===============
function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === 1 <<
===============
function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a === <<
===============
function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return a <<
===============
function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    return <<
===============
function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
    <<
===============
function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;
<<
===============
function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42;<<
===============
function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = 42<<
===============
function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b = <<
===============
function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var b <<
===============
function testFunction(foo, bar)
{
    someFunctionCall(bar);
    var <<
===============
function testFunction(foo, bar)
{
    someFunctionCall(bar);
    <<
===============
function testFunction(foo, bar)
{
    someFunctionCall(bar);
<<
===============
function testFunction(foo, bar)
{
    someFunctionCall(bar);<<
===============
function testFunction(foo, bar)
{
    someFunctionCall(bar<<
===============
function testFunction(foo, bar)
{
    someFunctionCall(<<
===============
function testFunction(foo, bar)
{
    someFunctionCall<<
===============
function testFunction(foo, bar)
{
    <<
===============
function testFunction(foo, bar)
{
<<
===============
function testFunction(foo, bar)
{<<
===============
function testFunction(foo, bar)
<<
===============
function testFunction(foo, bar)<<
===============
function testFunction(foo, bar<<
===============
function testFunction(foo, <<
===============
function testFunction(foo<<
===============
function testFunction(<<
===============
function testFunction<<
===============
function <<
===============
<<

