@@ -0,0 +1,2535 @@
+package com.codeaffine.extras.platform.internal.launch;%0A%0Aimport static org.assertj.core.api.Assertions.assertThat;%0A%0Aimport org.junit.Test;%0A%0Aimport com.codeaffine.eclipse.core.runtime.Extension;%0Aimport com.codeaffine.eclipse.core.runtime.Predicate;%0Aimport com.codeaffine.eclipse.core.runtime.RegistryAdapter;%0A%0A%0Apublic class LaunchKeyBindingPDETest %7B%0A%0A  private static final String BINDINGS_EP = %22org.eclipse.ui.bindings%22;%0A  private static final String SCHEME_ID = %22schemeId%22;%0A  private static final String COMMAND_ID = %22commandId%22;%0A  private static final String CONTEXT_ID = %22contextId%22;%0A  private static final String DEFAULT_SCHEME_ID = %22org.eclipse.ui.defaultAcceleratorConfiguration%22;%0A%0A  private static final String PLATFORM = %22platform%22;%0A  private static final String SEQUENCE = %22sequence%22;%0A  private static final String KEY_SEQUENCE = %22M3+F11%22;%0A  private static final String CARBON = %22carbon%22;%0A%0A  @Test%0A  public void testGeneralKeyBinding() %7B%0A    Extension extension = readKeyBindingExtension( new GeneralKeyBindingPredicate() );%0A%0A    assertThat( extension.getAttribute( SCHEME_ID ) ).isEqualTo( DEFAULT_SCHEME_ID );%0A    assertThat( extension.getAttribute( COMMAND_ID ) ).isEqualTo( LaunchHandler.COMMAND_ID );%0A    assertThat( extension.getAttribute( CONTEXT_ID ) ).isNull();%0A    assertThat( extension.getAttribute( PLATFORM ) ).isNull();%0A  %7D%0A%0A  @Test%0A  public void testCarbonKeyBinding() %7B%0A    Extension extension = readKeyBindingExtension( new CarbonKeyBindingPredicate() );%0A%0A    assertThat( extension.getAttribute( SCHEME_ID ) ).isEqualTo( DEFAULT_SCHEME_ID );%0A    assertThat( extension.getAttribute( COMMAND_ID ) ).isNull();%0A    assertThat( extension.getAttribute( CONTEXT_ID ) ).isNull();%0A  %7D%0A%0A  private static Extension readKeyBindingExtension( Predicate predicate ) %7B%0A    return new RegistryAdapter().readExtension( BINDINGS_EP ).thatMatches( predicate ).process();%0A  %7D%0A%0A  private static class GeneralKeyBindingPredicate implements Predicate %7B%0A    @Override%0A    public boolean apply( Extension input ) %7B%0A      String sequence = input.getAttribute( SEQUENCE );%0A      String platform = input.getAttribute( PLATFORM );%0A      return KEY_SEQUENCE.equals( sequence ) && platform == null;%0A    %7D%0A  %7D%0A%0A  private static class CarbonKeyBindingPredicate implements Predicate %7B%0A    @Override%0A    public boolean apply( Extension input ) %7B%0A      String sequence = input.getAttribute( SEQUENCE );%0A      String platform = input.getAttribute( PLATFORM );%0A      return KEY_SEQUENCE.equals( sequence ) && CARBON.equals( platform );%0A    %7D%0A  %7D%0A%7D%0A

Add test for Alt+F11 (launch dialog) key binding