void () { ClientId aId = registerClient("A.id", myProject, myDisposable); typeWithoutFlush('1', aId); typeWithoutFlush('2', aId); flushCommandMergers(aId); checkEditorText("12test", getFirstEditor()); backspace(getFirstEditor()); checkEditorText("1test", getFirstEditor()); try { undoFirstEditor(aId); fail("Exception expected"); } catch (Exception ignored) { } checkEditorText("1test", getFirstEditor()); undoFirstEditor(); checkEditorText("12test", getFirstEditor()); undoFirstEditor(aId); checkEditorText("test", getFirstEditor()); }