void typeKeys() {
final int keyCount = randInt(1, 100);
TextPanel textPanel = (TextPanel) fTextPanel;
KeyEventForwarder forwarder = new KeyEventForwarder(textPanel);
fListener.refuseAll();
fListener.allowEvent(TextPanelEvent.UNDO_STATE_CHANGED);
if (fTextPanel.getSelectionStart() != fTextPanel.getSelectionEnd()) {
fListener.expectEvent(TextPanelEvent.SELECTION_EMPTY_CHANGED);
}
for (int i=0; i < keyCount; i++) {
char typedChar = TYPED_CHARS[randInt(TYPED_CHARS.length)];
KeyEvent event = new KeyEvent(textPanel,
KeyEvent.KEY_TYPED,
0,
0,
KeyEvent.VK_UNDEFINED,
typedChar);
if (typedChar == 8 || typedChar == 0x7f) {
fListener.allowEvent(TextPanelEvent.TEXT_CHANGED);
fListener.allowEvent(TextPanelEvent.SELECTION_RANGE_CHANGED);
}
else {
fListener.expectEvent(TextPanelEvent.TEXT_CHANGED);
fListener.expectEvent(TextPanelEvent.SELECTION_RANGE_CHANGED);
}
forwarder.handleKeyEvent(event);
//try {
fListener.assertNotExpectingEvents(i, false);
//}
//catch(Error e) {
// logMessage("i="+i+"; typedChar="+Integer.toHexString(typedChar));