@Test
  public void testEnterSaveKeyHandler() {
    configHolder.setEnterSavesApproved(true);
    keyShortcuts.registerEditorActionKeys(targetContentsPresenter);
    verify(keyShortcutPresenter, atLeastOnce()).register(keyShortcutCaptor.capture());
    KeyShortcut keys = keyShortcutCaptor.getAllValues().get(2);

    keys.getHandler().onKeyShortcut(null);

    verify(targetContentsPresenter).checkConfirmationBeforeSave();
  }
  @Test
  public void testOnUserConfigChangedToEnterSaves() throws Exception {
    // Given: change user config enter save approved
    when(messages.saveAsTranslated()).thenReturn("enter save as approved");
    keyShortcuts.registerKeys(targetContentsPresenter);
    configHolder.setEnterSavesApproved(true);

    // When:
    keyShortcuts.onUserConfigChanged(UserConfigChangeEvent.EDITOR_CONFIG_CHANGE_EVENT);

    // Then:
    verify(keyShortcutPresenter, atLeastOnce()).register(keyShortcutCaptor.capture());
    List<KeyShortcut> allKeys = keyShortcutCaptor.getAllValues();
    KeyShortcut shortcut = allKeys.get(allKeys.size() - 1); // last key

    assertKeys(
        shortcut,
        "enter save as approved",
        true,
        true,
        new Keys(Keys.NO_MODIFIER, KeyCodes.KEY_ENTER));
  }
  @Test
  public void registerEditorActionKeysAfterChangeUserConfig() {
    // enter and esc now active
    when(messages.saveAsFuzzy()).thenReturn("save fuzzy");
    when(messages.saveAsTranslated()).thenReturn("save approved");
    when(messages.copyFromSource()).thenReturn("copy from source");
    when(messages.switchBetweenEditor()).thenReturn("switch editor");

    configHolder.setEnterSavesApproved(true);

    keyShortcuts.registerEditorActionKeys(targetContentsPresenter);

    verify(keyShortcutPresenter, times(5)).register(keyShortcutCaptor.capture());
    List<KeyShortcut> keys = keyShortcutCaptor.getAllValues();
    assertKeys(keys.get(0), "save fuzzy", true, true, new Keys(Keys.CTRL_KEY, 'S'));
    assertKeys(
        keys.get(1), "save approved", true, true, new Keys(Keys.CTRL_KEY, KeyCodes.KEY_ENTER));
    assertKeys(
        keys.get(2), "save approved", true, true, new Keys(Keys.NO_MODIFIER, KeyCodes.KEY_ENTER));
    assertKeys(keys.get(3), "copy from source", true, true, new Keys(Keys.ALT_KEY, 'G'));
    assertAttentionKeys(keys.get(3), new Keys('G'));
    assertKeys(keys.get(4), "switch editor", true, true, new Keys(Keys.CTRL_ALT_KEYS, 'H'));
  }