This test verifies that home button triggers selection between first symbol of the line and first non-blank symbol of the line.

function foo()
{
    return 42;
}

Running: testFirstNonBlankCharacter
function foo()
{
    retu|rn 42;
}
function foo()
{
    |return 42;
}

Running: testFirstNonBlankCharacterFromWhitespace
function foo()
{
  |  return 42;
}
function foo()
{
    |return 42;
}

Running: testHomeButtonToggling
function foo()
{
  |  return 42;
}
function foo()
{
    |return 42;
}
function foo()
{
|    return 42;
}
function foo()
{
    |return 42;
}

Running: testHomeButtonDoesNotChangeCursor
fu|nction foo()
{
    return 42;
}
|function foo()
{
    return 42;
}
|function foo()
{
    return 42;
}

Running: testHomeButtonWithShift
>function foo()
{
    retu<rn 42;
}
>function foo()
{
    <return 42;
}
>function foo()
{
<    return 42;
}
>function foo()
{
    <return 42;
}

Running: testHomeButtonWithShiftInversed
function foo()
{
    retu>rn 42;
}<
function foo()
{
    >return 42;
}<
function foo()
{
>    return 42;
}<
function foo()
{
    >return 42;
}<

