protected WordComposer getCurrentComposedWord() {
    return mWord;
  }
@Test
  public void testCorrectlyOutputCharactersWhenExtremelyCongestedCursorUpdates() {
    Assert.assertEquals(0, getCurrentTestInputConnection().getCurrentStartPosition());
    mAnySoftKeyboardUnderTest.simulateKeyPress('g');
    Assert.assertEquals("g", getCurrentTestInputConnection().getCurrentTextInInputConnection());
    Assert.assertEquals(1, getCurrentTestInputConnection().getCurrentStartPosition());
    mAnySoftKeyboardUnderTest.simulateKeyPress('o');
    Assert.assertEquals("go", getCurrentTestInputConnection().getCurrentTextInInputConnection());
    Assert.assertEquals(2, getCurrentTestInputConnection().getCurrentStartPosition());

    getCurrentTestInputConnection().setUpdateSelectionDelay(1000L);
    mAnySoftKeyboardUnderTest.simulateKeyPress('i');
    Assert.assertEquals("goi", getCurrentTestInputConnection().getCurrentTextInInputConnection());
    Assert.assertEquals(3, getCurrentTestInputConnection().getCurrentStartPosition());
    mAnySoftKeyboardUnderTest.simulateKeyPress('n');
    Assert.assertEquals("goin", getCurrentTestInputConnection().getCurrentTextInInputConnection());
    Assert.assertEquals(4, getCurrentTestInputConnection().getCurrentStartPosition());
    Assert.assertEquals("goin", mAnySoftKeyboardUnderTest.getCurrentComposedWord().getTypedWord());
    Assert.assertEquals(4, mAnySoftKeyboardUnderTest.getCurrentComposedWord().cursorPosition());

    getCurrentTestInputConnection().executeOnSelectionUpdateEvent();
    Assert.assertEquals("goin", getCurrentTestInputConnection().getCurrentTextInInputConnection());
    Assert.assertEquals(4, getCurrentTestInputConnection().getCurrentStartPosition());
    Assert.assertEquals("goin", mAnySoftKeyboardUnderTest.getCurrentComposedWord().getTypedWord());
    Assert.assertEquals(4, mAnySoftKeyboardUnderTest.getCurrentComposedWord().cursorPosition());
    mAnySoftKeyboardUnderTest.simulateKeyPress('g');
    getCurrentTestInputConnection().setUpdateSelectionDelay(1L);
    TestRxSchedulers.foregroundFlushAllJobs();
    Assert.assertEquals("going", getCurrentTestInputConnection().getCurrentTextInInputConnection());
    Assert.assertEquals(5, getCurrentTestInputConnection().getCurrentStartPosition());
    Assert.assertEquals("going", mAnySoftKeyboardUnderTest.getCurrentComposedWord().getTypedWord());
    Assert.assertEquals(5, mAnySoftKeyboardUnderTest.getCurrentComposedWord().cursorPosition());
  }