testPerformActionInternal() {
    assertFalse('Control must not be checked', control.isChecked());
    assertFalse('Control must not be selected', control.isSelected());
    assertFalse('Control must not be open', control.isOpen());

    control.performActionInternal();

    assertFalse('Control must not be checked', control.isChecked());
    assertFalse('Control must not be selected', control.isSelected());
    assertFalse('Control must not be open', control.isOpen());
    assertEquals(
        'Control must have dispatched an ACTION event', 1,
        getEventCount(control, Component.EventType.ACTION));

    control.setSupportedState(Component.State.CHECKED, true);
    control.setSupportedState(Component.State.SELECTED, true);
    control.setSupportedState(Component.State.OPENED, true);

    control.performActionInternal();

    assertTrue('Control must be checked', control.isChecked());
    assertTrue('Control must be selected', control.isSelected());
    assertTrue('Control must be open', control.isOpen());
    assertEquals(
        'Control must have dispatched a CHECK event', 1,
        getEventCount(control, Component.EventType.CHECK));
    assertEquals(
        'Control must have dispatched a SELECT event', 1,
        getEventCount(control, Component.EventType.SELECT));
    assertEquals(
        'Control must have dispatched a OPEN event', 1,
        getEventCount(control, Component.EventType.OPEN));
    assertEquals(
        'Control must have dispatched another ACTION event', 2,
        getEventCount(control, Component.EventType.ACTION));

    control.performActionInternal();

    assertFalse('Control must not be checked', control.isChecked());
    assertTrue('Control must be selected', control.isSelected());
    assertFalse('Control must not be open', control.isOpen());
    assertEquals(
        'Control must have dispatched an UNCHECK event', 1,
        getEventCount(control, Component.EventType.UNCHECK));
    assertEquals(
        'Control must not have dispatched an UNSELECT event', 0,
        getEventCount(control, Component.EventType.UNSELECT));
    assertEquals(
        'Control must have dispatched a CLOSE event', 1,
        getEventCount(control, Component.EventType.CLOSE));
    assertEquals(
        'Control must have dispatched another ACTION event', 3,
        getEventCount(control, Component.EventType.ACTION));
  }
Tests {@link Control#performActionInternal}.
@suppress {visibility} suppression added to enable type checking