private void ValidateFocusBoxState(int indexWordExpected, InterlinDocChild idc, StTxtPara.TwficInfo twficBeforeEdit1_0, IStText stTextBeforeEdit) { IStText stTextAfterEdit = idc.RawStText; Assert.AreEqual(stTextBeforeEdit, stTextAfterEdit, "We expect to be in the same text."); int hvoAnnAfterEdit = idc.HvoAnnotation; ICmBaseAnnotation cbaAfterEdit = new CmBaseAnnotation(Cache, hvoAnnAfterEdit); Assert.IsFalse(twficBeforeEdit1_0.IsCapturedObjectInfoValid()); Assert.AreEqual(twficBeforeEdit1_0.BeginOffset, cbaAfterEdit.BeginOffset, "FocusBox should be at the same location."); Assert.AreNotEqual(twficBeforeEdit1_0.EndOffset, cbaAfterEdit.EndOffset, "FocusBox should now be on phrase annotation."); // FocusBox should be on phrase, not somewhere else. Assert.IsNotNull(idc.IsFocusBoxInstalled, "Focus Box should still be installed."); Assert.AreEqual(idc.ExistingFocusBox.InterlinWordControl.HvoAnnotation, hvoAnnAfterEdit, "FocusBox should be on current annotation."); // Make sure we haven't changed word in the wordform record list. int indexWordAfterEdit = m_wordList.CurrentIndex; int hvoWordAfterEdit = m_wordList.CurrentObject.Hvo; Assert.AreEqual(indexWordExpected, indexWordAfterEdit, "Word index mismatch"); }