Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'tests/org.eclipse.e4.ui.keybinding.tests/src/org/eclipse/e4/ui/keybinding/tests/BindingManagerTest.java')
-rwxr-xr-xtests/org.eclipse.e4.ui.keybinding.tests/src/org/eclipse/e4/ui/keybinding/tests/BindingManagerTest.java957
1 files changed, 0 insertions, 957 deletions
diff --git a/tests/org.eclipse.e4.ui.keybinding.tests/src/org/eclipse/e4/ui/keybinding/tests/BindingManagerTest.java b/tests/org.eclipse.e4.ui.keybinding.tests/src/org/eclipse/e4/ui/keybinding/tests/BindingManagerTest.java
deleted file mode 100755
index 2084a00763a..00000000000
--- a/tests/org.eclipse.e4.ui.keybinding.tests/src/org/eclipse/e4/ui/keybinding/tests/BindingManagerTest.java
+++ /dev/null
@@ -1,957 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2011 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.e4.ui.keybinding.tests;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.commands.Category;
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.CommandManager;
-import org.eclipse.core.commands.IParameter;
-import org.eclipse.core.commands.IParameterValues;
-import org.eclipse.core.commands.ParameterValuesException;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.commands.contexts.Context;
-import org.eclipse.core.commands.contexts.ContextManager;
-import org.eclipse.jface.bindings.Binding;
-import org.eclipse.jface.bindings.BindingManager;
-import org.eclipse.jface.bindings.Scheme;
-import org.eclipse.jface.bindings.TriggerSequence;
-import org.eclipse.jface.bindings.keys.KeyBinding;
-import org.eclipse.jface.bindings.keys.KeySequence;
-import org.eclipse.jface.bindings.keys.ParseException;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * <p>
- * This test case covers the general functionality of the binding manager's API
- * methods. This is not intended to test the interactions between bindings
- * themselves (e.g., solving a binding set). For tests dealing with
- * interactions, please look at <code>BindingInteractionsTest</code>.
- * </p>
- * <p>
- * The listener code is tested throughout the various tests. There is no
- * individual test method for the listener code.
- * </p>
- *
- * @see org.eclipse.ui.tests.keys.BindingInteractionsTest
- * @since 3.1
- */
-public final class BindingManagerTest extends UITestCase {
-
- /**
- * The binding manager to use in each test case. A new binding manager is
- * created for each test case, and it is disposed when the test is over.
- */
- private BindingManager bindingManager = null;
-
- /**
- * The command manager for the currently running test. <code>null</code>
- * if no test is running.
- */
- private CommandManager commandManager = null;
-
- /**
- * The context manager to use in each test case. A new context manager is
- * created for each test case, and it is disposed when the test is over.
- */
- private ContextManager contextManager = null;
-
- /**
- * Constructor for <code>BindingInteractionsTest</code>.
- *
- * @param name
- * The name of the test
- */
- public BindingManagerTest(final String name) {
- super(name);
- }
-
- /**
- * Creates a new context manager and a binding manager for use in the test
- * cases.
- */
- protected final void doSetUp() {
- commandManager = new CommandManager();
- contextManager = new ContextManager();
- bindingManager = new BindingManager(contextManager, commandManager);
- }
-
- /**
- * Releases the context manager and binding manager for garbage collection.
- */
- protected final void doTearDown() {
- bindingManager = null;
- contextManager = null;
- commandManager = null;
- }
-
- /**
- * Tests that the constructor disallows a null context manager.
- */
- public final void testConstructor() {
- try {
- new BindingManager(null, null);
- fail("A binding manager cannot be constructed with a null context manager");
- } catch (final NullPointerException e) {
- // Success
- }
- }
-
- /**
- * Tests that it is not possible to add a null binding. Tests that adding a
- * binding forces a recomputation.
- *
- * @throws NotDefinedException
- * If the scheme we try to activate is not defined.
- */
- public final void testAddBinding() throws NotDefinedException {
- // Set up a state in which a binding may become active.
- final Context context = contextManager.getContext("na");
- context.define("name", "description", null);
- final Scheme scheme = bindingManager.getScheme("na");
- scheme.define("name", "description", null);
- bindingManager.setActiveScheme(scheme);
- final Set activeContextIds = new HashSet();
- activeContextIds.add("na");
- contextManager.setActiveContextIds(activeContextIds);
-
- // Try to add a null binding.
- try {
- bindingManager.addBinding(null);
- fail("It should not be possible to add a null binding");
- } catch (final NullPointerException e) {
- // Success.
- }
-
- // Try to add a binding that should become active.
- final Binding binding = new TestBinding("conflict1", "na", "na", null,
- null, Binding.SYSTEM, null);
- bindingManager.addBinding(binding);
- assertSame("The binding should be active", binding, bindingManager
- .getPerfectMatch(TestBinding.TRIGGER_SEQUENCE));
- }
-
- /**
- * Tests that <code>getActiveBindingsDisregardingContext()</code> never
- * returns <code>null</code>. The rest of the functionality is tested in
- * <code>BindingInteractionsTest</code>.
- *
- * @see BindingInteractionsTest
- */
- public final void testGetActiveBindingsDisregardingContext() {
- final Map activeBindings = bindingManager
- .getActiveBindingsDisregardingContext();
- assertNotNull("The active bindings should never be null",
- activeBindings);
- assertTrue("The active bindings should start empty", activeBindings
- .isEmpty());
- }
-
- /**
- * Tests that <code>getActiveBindingsDisregardingContextFlat()</code>
- * never returns <code>null</code>. The rest of the functionality is
- * tested in <code>BindingInteractionsTest</code>.
- *
- * @see BindingInteractionsTest
- */
- public final void testGetActiveBindingsDisregardingContextFlat() {
- final Collection activeBindings = bindingManager
- .getActiveBindingsDisregardingContextFlat();
- assertNotNull("The active bindings should never be null",
- activeBindings);
- assertTrue("The active bindings should start empty", activeBindings
- .isEmpty());
- }
-
- /**
- * Tests whether the method works with a null argument. Tests that it works
- * in a simple case.
- *
- * @throws NotDefinedException
- * If the scheme we try to activate is not defined.
- */
- public final void testGetActiveBindingsFor() throws NotDefinedException {
- // Test with a null argument.
- final TriggerSequence[] activeBindingsForNull = bindingManager
- .getActiveBindingsFor((ParameterizedCommand) null);
- assertNotNull("The active bindings for a command should never be null",
- activeBindingsForNull);
- assertTrue(
- "The active binding for a null command should always be empty",
- activeBindingsForNull.length == 0);
-
- // Test a simple case.
- final Context context = contextManager.getContext("na");
- context.define("name", "description", null);
-
- final Scheme scheme = bindingManager.getScheme("na");
- scheme.define("name", "description", null);
-
- bindingManager.setActiveScheme(scheme);
- final Set activeContextIds = new HashSet();
- activeContextIds.add("na");
- contextManager.setActiveContextIds(activeContextIds);
-
- final String commandId = "commandId";
- final Binding binding = new TestBinding(commandId, "na", "na", null,
- null, Binding.SYSTEM, null);
- bindingManager.addBinding(binding);
-
- final TriggerSequence[] bindings = bindingManager
- .getActiveBindingsFor(binding.getParameterizedCommand());
- assertEquals("There should be one binding", 1, bindings.length);
- assertSame("The binding should match", TestBinding.TRIGGER_SEQUENCE,
- bindings[0]);
- }
-
- /**
- * Tests that the active scheme starts off <code>null</code>. The rest of
- * the active scheme testing happens in <code>testSetActiveScheme()</code>.
- *
- * @see BindingManagerTest#testSetActiveScheme()
- */
- public final void testGetActiveScheme() {
- assertNull("The active scheme should start null", bindingManager
- .getActiveScheme());
- }
-
- /**
- * Tests that <code>getBindings</code> first returns <code>null</code>.
- * It then verifies that an added binding is return from this method.
- */
- public final void testGetBindings() {
- // Check the starting condition.
- assertNull("The bindings should start off null", bindingManager
- .getBindings());
-
- // Check that an added binding is included.
- final Binding binding = new TestBinding(null, "schemeId", "contextId",
- null, null, Binding.SYSTEM, null);
- bindingManager.addBinding(binding);
- final Binding[] bindings = bindingManager.getBindings();
- assertEquals("There should be one binding", 1, bindings.length);
- assertSame("The binding should be the same", binding, bindings[0]);
-
- /*
- * Check that modifying this set does not modify the internal data
- * structures.
- */
- bindings[0] = null;
- assertNotNull("There should be no change",
- bindingManager.getBindings()[0]);
- }
-
- /**
- * Tests that the list of defined schemes stays up-to-date
- */
- public final void testGetDefinedSchemeIds() {
- // Starting condition.
- assertTrue("The set of defined schemes should start empty",
- bindingManager.getDefinedSchemes().length == 0);
-
- // Retrieving a scheme shouldn't change anything.
- final Scheme scheme = bindingManager.getScheme("schemeId");
- assertTrue(
- "The set of defined schemes should still be empty after a get",
- bindingManager.getDefinedSchemes().length == 0);
-
- // Defining the scheme should change things.
- scheme.define("name", "description", null);
- Scheme[] definedSchemes = bindingManager.getDefinedSchemes();
- assertEquals("There should be one defined scheme id", 1,
- definedSchemes.length);
- assertSame("The defined scheme id should match", scheme,
- definedSchemes[0]);
-
- definedSchemes[0] = null;
- definedSchemes = bindingManager.getDefinedSchemes();
- assertSame("The API should not expose internal collections", scheme,
- definedSchemes[0]);
-
- // Undefining the scheme should also change things.
- scheme.undefine();
- assertTrue(
- "The set of defined schemes should be empty after an undefine",
- bindingManager.getDefinedSchemes().length == 0);
- }
-
- /**
- * Tests that the active locale is never <code>null</code>.
- */
- public final void testGetLocale() {
- assertNotNull("The locale should never be null", bindingManager
- .getLocale());
- }
-
- /**
- * Tests that this method returns the expected list of sequences for a
- * couple of scenarios. In the first scenario, there is one perfect match
- * bindings and a partial match binding. In the second scenario, there are
- * two partial match bindings. In the third scenario, we are checking that
- * all bindings match an empty trigger sequence.
- *
- * @throws NotDefinedException
- * If the scheme we try to activate is not defined.
- * @throws ParseException
- * If the hard-coded strings aren't constructed properly.
- */
- public final void testGetPartialMatches() throws NotDefinedException,
- ParseException {
- // GENERAL SET-UP
- final Context context = contextManager.getContext("na");
- context.define("name", "description", null);
- final Scheme scheme = bindingManager.getScheme("na");
- scheme.define("name", "description", null);
- bindingManager.setActiveScheme(scheme);
- final Set activeContextIds = new HashSet();
- activeContextIds.add("na");
- contextManager.setActiveContextIds(activeContextIds);
-
- // SCENARIO 1
- final KeySequence perfectMatch = KeySequence.getInstance("CTRL+F");
- final Command perfectCommand = commandManager.getCommand("perfect");
- final ParameterizedCommand perfectParameterizedCommand = new ParameterizedCommand(
- perfectCommand, null);
- final Binding perfectMatchBinding = new KeyBinding(perfectMatch,
- perfectParameterizedCommand, "na", "na", null, null, null,
- Binding.SYSTEM);
- final KeySequence partialMatch1 = KeySequence
- .getInstance("CTRL+F CTRL+F");
- final Command partialCommand1 = commandManager.getCommand("partial1");
- final ParameterizedCommand partialParameterizedCommand1 = new ParameterizedCommand(
- partialCommand1, null);
- final Binding partialMatchBinding1 = new KeyBinding(partialMatch1,
- partialParameterizedCommand1, "na", "na", null, null, null,
- Binding.SYSTEM);
- final Binding[] bindings = new Binding[2];
- bindings[0] = perfectMatchBinding;
- bindings[1] = partialMatchBinding1;
- bindingManager.setBindings(bindings);
- Map partialMatches = bindingManager.getPartialMatches(perfectMatch);
- assertTrue("A partial match should override a perfect match",
- !partialMatches.isEmpty());
- assertTrue("A partial match should override a perfect match",
- partialMatches.containsKey(partialMatch1));
-
- // SCENARIO 2
- final KeySequence partialMatch2 = KeySequence
- .getInstance("CTRL+F CTRL+F CTRL+F");
- final Command partialCommand2 = commandManager.getCommand("partial2");
- final ParameterizedCommand partialParameterizedCommand2 = new ParameterizedCommand(
- partialCommand2, null);
- final Binding partialMatchBinding2 = new KeyBinding(partialMatch2,
- partialParameterizedCommand2, "na", "na", null, null, null,
- Binding.SYSTEM);
- bindings[0] = partialMatchBinding1;
- bindings[1] = partialMatchBinding2;
- bindingManager.setBindings(bindings);
- partialMatches = bindingManager.getPartialMatches(perfectMatch);
- assertEquals("There should be two partial matches", 2, partialMatches
- .size());
- assertSame("The partial match should be the one defined",
- partialMatchBinding1, partialMatches.get(partialMatch1));
- assertSame("The partial match should be the one defined",
- partialMatchBinding2, partialMatches.get(partialMatch2));
-
- // SCENARIO 3
- bindingManager.addBinding(perfectMatchBinding);
- partialMatches = bindingManager.getPartialMatches(KeySequence
- .getInstance());
- assertEquals("There should be three partial matches", 3, partialMatches
- .size());
- assertSame("The partial match should be the one defined",
- perfectMatchBinding, partialMatches.get(perfectMatch));
- assertSame("The partial match should be the one defined",
- partialMatchBinding1, partialMatches.get(partialMatch1));
- assertSame("The partial match should be the one defined",
- partialMatchBinding2, partialMatches.get(partialMatch2));
- }
-
- /**
- * Tests that this method returns the expected command identifier. In the
- * first scenario, there is one perfect match bindings and a partial match
- * binding. In the second scenario, there are two partial match bindings. In
- * the third scenario, we are checking that nothing matches an empty
- * sequence.
- *
- * @throws NotDefinedException
- * If the scheme we try to activate is not defined.
- * @throws ParseException
- * If the hard-coded strings aren't constructed properly.
- */
- public final void testGetPerfectMatch() throws NotDefinedException,
- ParseException {
- // GENERAL SET-UP
- final Context context = contextManager.getContext("na");
- context.define("name", "description", null);
- final Scheme scheme = bindingManager.getScheme("na");
- scheme.define("name", "description", null);
- bindingManager.setActiveScheme(scheme);
- final Set activeContextIds = new HashSet();
- activeContextIds.add("na");
- contextManager.setActiveContextIds(activeContextIds);
-
- // SCENARIO 1
- final KeySequence perfectMatch = KeySequence.getInstance("CTRL+F");
- final Command perfectCommand = commandManager.getCommand("perfect");
- final ParameterizedCommand perfectParameterizedCommand = new ParameterizedCommand(
- perfectCommand, null);
- final Binding perfectMatchBinding = new KeyBinding(perfectMatch,
- perfectParameterizedCommand, "na", "na", null, null, null,
- Binding.SYSTEM);
- final KeySequence partialMatch1 = KeySequence
- .getInstance("CTRL+F CTRL+F");
- final Command partialCommand1 = commandManager.getCommand("partial1");
- final ParameterizedCommand partialParameterizedCommand1 = new ParameterizedCommand(
- partialCommand1, null);
- final Binding partialMatchBinding1 = new KeyBinding(partialMatch1,
- partialParameterizedCommand1, "na", "na", null, null, null,
- Binding.SYSTEM);
- final Binding[] bindings = new Binding[2];
- bindings[0] = perfectMatchBinding;
- bindings[1] = partialMatchBinding1;
- bindingManager.setBindings(bindings);
- Binding actualBinding = bindingManager.getPerfectMatch(perfectMatch);
- assertSame("This should be a perfect match", perfectMatchBinding,
- actualBinding);
-
- // SCENARIO 2
- final KeySequence partialMatch2 = KeySequence
- .getInstance("CTRL+F CTRL+F CTRL+F");
- final Command partialCommand2 = commandManager.getCommand("partial2");
- final ParameterizedCommand partialParameterizedCommand2 = new ParameterizedCommand(
- partialCommand2, null);
- final Binding partialMatchBinding2 = new KeyBinding(partialMatch2,
- partialParameterizedCommand2, "na", "na", null, null, null,
- Binding.SYSTEM);
- bindings[0] = partialMatchBinding1;
- bindings[1] = partialMatchBinding2;
- bindingManager.setBindings(bindings);
- actualBinding = bindingManager.getPerfectMatch(perfectMatch);
- assertNull("There should be no perfect matches", actualBinding);
-
- // SCENARIO 3
- bindingManager.addBinding(perfectMatchBinding);
- actualBinding = bindingManager.getPerfectMatch(KeySequence
- .getInstance());
- assertNull("This should be no perfect matches for an empty sequence",
- actualBinding);
- }
-
- /**
- * Tests that the platform is never <code>null</code>.
- */
- public final void testGetPlatform() {
- assertNotNull("The platform can never be null", bindingManager
- .getPlatform());
- }
-
- /**
- * Tests that when a scheme is first retrieved, it is undefined. Tests that
- * a second access to a scheme returns the same scheme.
- */
- public final void testGetScheme() {
- final String schemeId = "schemeId";
- final Scheme firstScheme = bindingManager.getScheme(schemeId);
- assertTrue("A scheme should start undefined", !firstScheme.isDefined());
- final Scheme secondScheme = bindingManager.getScheme(schemeId);
- assertSame("The two scheme should be the same", firstScheme,
- secondScheme);
- }
-
- /**
- * Tests that this method returns <code>true</code> when expected. In the
- * first scenario, there is one perfect match bindings and a partial match
- * binding. In the second scenario, there are two partial match bindings. In
- * the third scenario, we are checking that all bindings match an empty
- * trigger sequence.
- *
- * @throws NotDefinedException
- * If the scheme we try to activate is not defined.
- * @throws ParseException
- * If the hard-coded strings aren't constructed properly.
- */
- public final void testIsPartialMatch() throws NotDefinedException,
- ParseException {
- // GENERAL SET-UP
- final Context context = contextManager.getContext("na");
- context.define("name", "description", null);
- final Scheme scheme = bindingManager.getScheme("na");
- scheme.define("name", "description", null);
- bindingManager.setActiveScheme(scheme);
- final Set activeContextIds = new HashSet();
- activeContextIds.add("na");
- contextManager.setActiveContextIds(activeContextIds);
-
- // SCENARIO 1
- final KeySequence perfectMatch = KeySequence.getInstance("CTRL+F");
- final Command perfectCommand = commandManager.getCommand("perfect");
- final ParameterizedCommand perfectParameterizedCommand = new ParameterizedCommand(
- perfectCommand, null);
- final Binding perfectMatchBinding = new KeyBinding(perfectMatch,
- perfectParameterizedCommand, "na", "na", null, null, null,
- Binding.SYSTEM);
- final KeySequence partialMatch1 = KeySequence
- .getInstance("CTRL+F CTRL+F");
- final Command partialCommand1 = commandManager.getCommand("partial1");
- final ParameterizedCommand partialParameterizedCommand1 = new ParameterizedCommand(
- partialCommand1, null);
- final Binding partialMatchBinding1 = new KeyBinding(partialMatch1,
- partialParameterizedCommand1, "na", "na", null, null, null,
- Binding.SYSTEM);
- final Binding[] bindings = new Binding[2];
- bindings[0] = perfectMatchBinding;
- bindings[1] = partialMatchBinding1;
- bindingManager.setBindings(bindings);
- assertTrue("A perfect match should be overridden by a partial",
- bindingManager.isPartialMatch(perfectMatch));
-
- // SCENARIO 2
- final KeySequence partialMatch2 = KeySequence
- .getInstance("CTRL+F CTRL+F CTRL+F");
- final Command partialCommand2 = commandManager.getCommand("partial2");
- final ParameterizedCommand partialParameterizedCommand2 = new ParameterizedCommand(
- partialCommand2, null);
- final Binding partialMatchBinding2 = new KeyBinding(partialMatch2,
- partialParameterizedCommand2, "na", "na", null, null, null,
- Binding.SYSTEM);
- bindings[0] = partialMatchBinding1;
- bindings[1] = partialMatchBinding2;
- bindingManager.setBindings(bindings);
- assertTrue("Two partial matches should count as a partial",
- bindingManager.isPartialMatch(perfectMatch));
-
- // SCENARIO 3
- bindingManager.addBinding(perfectMatchBinding);
- bindingManager.setBindings(bindings);
- assertTrue("An empty sequence matches everything partially",
- bindingManager.isPartialMatch(KeySequence.getInstance()));
- }
-
- /**
- * Tests that this method returns <code>true</code> when expected. In the
- * first scenario, there is one perfect match bindings and a partial match
- * binding. In the second scenario, there are two partial match bindings. In
- * the third scenario, we are checking that nothing matches an empty
- * sequence.
- *
- * @throws NotDefinedException
- * If the scheme we try to activate is not defined.
- * @throws ParseException
- * If the hard-coded strings aren't constructed properly.
- */
- public final void testIsPerfectMatch() throws NotDefinedException,
- ParseException {
- // GENERAL SET-UP
- final Context context = contextManager.getContext("na");
- context.define("name", "description", null);
- final Scheme scheme = bindingManager.getScheme("na");
- scheme.define("name", "description", null);
- bindingManager.setActiveScheme(scheme);
- final Set activeContextIds = new HashSet();
- activeContextIds.add("na");
- contextManager.setActiveContextIds(activeContextIds);
-
- // SCENARIO 1
- final KeySequence perfectMatch = KeySequence.getInstance("CTRL+F");
- final Command perfectCommand = commandManager.getCommand("perfect");
- final ParameterizedCommand perfectParameterizedCommand = new ParameterizedCommand(
- perfectCommand, null);
- final Binding perfectMatchBinding = new KeyBinding(perfectMatch,
- perfectParameterizedCommand, "na", "na", null, null, null,
- Binding.SYSTEM);
- final KeySequence partialMatch1 = KeySequence
- .getInstance("CTRL+F CTRL+F");
- final Command partialCommand1 = commandManager.getCommand("partial1");
- final ParameterizedCommand partialParameterizedCommand1 = new ParameterizedCommand(
- partialCommand1, null);
- final Binding partialMatchBinding1 = new KeyBinding(partialMatch1,
- partialParameterizedCommand1, "na", "na", null, null, null,
- Binding.SYSTEM);
- final Binding[] bindings = new Binding[2];
- bindings[0] = perfectMatchBinding;
- bindings[1] = partialMatchBinding1;
- bindingManager.setBindings(bindings);
- assertTrue("This should be a perfect match", bindingManager
- .isPerfectMatch(perfectMatch));
-
- // SCENARIO 2
- final KeySequence partialMatch2 = KeySequence
- .getInstance("CTRL+F CTRL+F CTRL+F");
- final Command partialCommand2 = commandManager.getCommand("perfect");
- final ParameterizedCommand partialParameterizedCommand2 = new ParameterizedCommand(
- partialCommand2, null);
- final Binding partialMatchBinding2 = new KeyBinding(partialMatch2,
- partialParameterizedCommand2, "na", "na", null, null, null,
- Binding.SYSTEM);
- bindings[0] = partialMatchBinding1;
- bindings[1] = partialMatchBinding2;
- bindingManager.setBindings(bindings);
- assertTrue("This should be no perfect matches", !bindingManager
- .isPerfectMatch(perfectMatch));
-
- // SCENARIO 3
- bindingManager.addBinding(perfectMatchBinding);
- assertTrue("This should be no perfect matches", !bindingManager
- .isPerfectMatch(KeySequence.getInstance()));
- }
-
- /**
- * Tests that you can remove binding, and that it will change the active
- * bindings as well.
- *
- * @throws NotDefinedException
- * If the scheme we try to activate is not defined.
- */
- public final void testRemoveBindings() throws NotDefinedException {
- // GENERAL SET-UP
- final Context context = contextManager.getContext("na");
- context.define("name", "description", null);
- final Scheme scheme = bindingManager.getScheme("na");
- scheme.define("name", "description", null);
- bindingManager.setActiveScheme(scheme);
- final Set activeContextIds = new HashSet();
- activeContextIds.add("na");
- contextManager.setActiveContextIds(activeContextIds);
-
- // ADD SOME BINDINGS
- final Binding binding1 = new TestBinding("command1", "na", "na", null,
- null, Binding.SYSTEM, null);
- bindingManager.addBinding(binding1);
- final Binding binding2 = new TestBinding("command2", "na", "na", "zh",
- null, Binding.SYSTEM, null);
- bindingManager.addBinding(binding2);
- final Binding binding3 = new TestBinding("command3", "na", "na", null,
- "gtk", Binding.SYSTEM, null);
- bindingManager.addBinding(binding3);
- final Binding binding4 = new TestBinding("command4", "na", "na", null,
- "gtk", Binding.USER, null);
- bindingManager.addBinding(binding4);
- final Binding binding5 = new TestBinding("command5", "na", "na", "zh",
- "gtk", Binding.USER, null);
- bindingManager.addBinding(binding5);
- assertNotNull("There should be three active bindings", bindingManager
- .getActiveBindingsFor(binding1.getParameterizedCommand()));
- assertNotNull("There should be three active bindings", bindingManager
- .getActiveBindingsFor(binding2.getParameterizedCommand()));
- assertNotNull("There should be three active bindings", bindingManager
- .getActiveBindingsFor(binding4.getParameterizedCommand()));
-
- // REMOVE SOME BINDINGS
- bindingManager.removeBindings(TestBinding.TRIGGER_SEQUENCE, "na", "na",
- "zh", "gtk", null, Binding.USER);
- assertEquals("There should be four bindings left", 4, bindingManager
- .getBindings().length);
- assertNotNull("There should be four active bindings", bindingManager
- .getActiveBindingsFor(binding1.getParameterizedCommand()));
- assertNotNull("There should be four active bindings", bindingManager
- .getActiveBindingsFor(binding2.getParameterizedCommand()));
- assertNotNull("There should be four active bindings", bindingManager
- .getActiveBindingsFor(binding3.getParameterizedCommand()));
- assertNotNull("There should be four active bindings", bindingManager
- .getActiveBindingsFor(binding4.getParameterizedCommand()));
- }
-
- /**
- * Verifies that selecting an undefimned scheme doesn't work. Verifies that
- * selecting a scheme works. Verifies that undefining scheme removes it as
- * the active scheme.
- */
- public final void testSetActiveScheme() {
- // SELECT UNDEFINED
- final String schemeId = "schemeId";
- final Scheme scheme = bindingManager.getScheme(schemeId);
- try {
- bindingManager.setActiveScheme(scheme);
- fail("Cannot activate an undefined scheme");
- } catch (final NotDefinedException e) {
- // Success
- }
-
- // SELECT DEFINED
- scheme.define("name", "description", null);
- try {
- bindingManager.setActiveScheme(scheme);
- assertSame("The schemes should match", scheme, bindingManager
- .getActiveScheme());
- } catch (final NotDefinedException e) {
- fail("Should be able to activate a scheme");
- }
-
- // UNDEFINE SELECTED
- scheme.undefine();
- assertNull("The scheme should have become unselected", bindingManager
- .getActiveScheme());
- }
-
- public void testGetCurrentConflicts() throws NotDefinedException, ParseException {
-
- final Context context = contextManager.getContext("na");
- context.define("name", "description", null);
- final Scheme scheme = bindingManager.getScheme("na");
- scheme.define("name", "description", null);
- bindingManager.setActiveScheme(scheme);
- contextManager.setActiveContextIds(null);
-
- Command command1 = commandManager.getCommand("conflictCommand1");
- ParameterizedCommand parameterizedCommand1 = ParameterizedCommand.generateCommand(command1, null);
- Command command2 = commandManager.getCommand("conflictCommand2");
- ParameterizedCommand parameterizedCommand2 = ParameterizedCommand.generateCommand(command2, null);
- Command command3 = commandManager.getCommand("conflictCommand3");
- ParameterizedCommand parameterizedCommand3 = ParameterizedCommand.generateCommand(command3, null);
- KeySequence conflict = KeySequence.getInstance("M1+M2+9");
- KeySequence noConflict = KeySequence.getInstance("M1+M2+8");
- Binding binding1 = new KeyBinding(conflict, parameterizedCommand1, "na", "na", null, null, null,
- Binding.SYSTEM);
- Binding binding2 = new KeyBinding(conflict, parameterizedCommand2, "na", "na", null, null, null,
- Binding.SYSTEM);
- Binding binding3 = new KeyBinding(noConflict, parameterizedCommand3, "na", "na", null, null, null,
- Binding.SYSTEM);
- final Binding[] bindings = new Binding[] {binding1, binding2, binding3};
- bindingManager.setBindings(bindings);
-
- final Set activeContextIds = new HashSet();
- activeContextIds.add("na");
- contextManager.setActiveContextIds(activeContextIds);
-
- Map activeBindingsDisregardingContext = bindingManager.getActiveBindingsDisregardingContext();// force a recompute
- assertNotNull(activeBindingsDisregardingContext);
-
- Map currentConflicts = bindingManager.getCurrentConflicts();
- assertEquals(1, currentConflicts.size()); // we have only one conflict
-
- Collection conflictsCollection = bindingManager.getConflictsFor(noConflict);
- assertNull(conflictsCollection); // no conflict for this keybinding
-
- conflictsCollection = bindingManager.getConflictsFor(conflict);
- assertNotNull(conflictsCollection); // this has one conflict with 2 commands
- assertEquals(2, conflictsCollection.size());
-
- }
-
- /**
- * Verifies that you can set the bindings to null. Verifies that setting the
- * bindings clears the cache.
- *
- * @throws NotDefinedException
- * If this test doesn't properly define a scheme.
- */
- public final void testSetBindings() throws NotDefinedException {
- // GENERAL SET-UP
- final Context context = contextManager.getContext("na");
- context.define("name", "description", null);
- final Scheme scheme = bindingManager.getScheme("na");
- scheme.define("name", "description", null);
- bindingManager.setActiveScheme(scheme);
- final Set activeContextIds = new HashSet();
- activeContextIds.add("na");
- contextManager.setActiveContextIds(activeContextIds);
-
- // SET NULL
- bindingManager.setBindings(null);
- assertTrue("There should be no active bindings", bindingManager
- .getActiveBindingsFor((ParameterizedCommand) null).length == 0);
-
- // ADD BINDING
- final String commandId = "commandId";
- final Binding binding = new TestBinding(commandId, "na", "na", null,
- null, Binding.SYSTEM, null);
- final Binding[] bindings = new Binding[1];
- bindings[0] = binding;
- bindingManager.setBindings(bindings);
- final TriggerSequence[] activeBindings = bindingManager
- .getActiveBindingsFor(binding.getParameterizedCommand());
- assertEquals("There should be one active binding", 1,
- activeBindings.length);
- assertSame("The binding should be the one we set",
- TestBinding.TRIGGER_SEQUENCE, activeBindings[0]);
- }
-
- /**
- * Verifies that it cannot be set to <code>null</code>. Verifies that it
- * clears the cache.
- *
- * @throws NotDefinedException
- * If this test doesn't properly define a scheme.
- */
- public final void testSetLocale() throws NotDefinedException {
- // GENERAL SET-UP
- final Context context = contextManager.getContext("na");
- context.define("name", "description", null);
- final Scheme scheme = bindingManager.getScheme("na");
- scheme.define("name", "description", null);
- bindingManager.setActiveScheme(scheme);
- final Set activeContextIds = new HashSet();
- activeContextIds.add("na");
- contextManager.setActiveContextIds(activeContextIds);
-
- // SET TO NULL
- try {
- bindingManager.setLocale(null);
- fail("Cannot set the locale to null");
- } catch (final NullPointerException e) {
- // Success
- }
-
- // SET TO SOMETHING
- final String commandId = "commandId";
- final Binding binding = new TestBinding(commandId, "na", "na", "xx",
- null, Binding.SYSTEM, null);
- bindingManager.addBinding(binding);
- assertTrue("The binding shouldn't be active",
- bindingManager.getActiveBindingsFor(binding
- .getParameterizedCommand()).length == 0);
- bindingManager.setLocale("xx_XX");
- final TriggerSequence[] activeBindings = bindingManager
- .getActiveBindingsFor(binding.getParameterizedCommand());
- assertEquals("The binding should become active", 1,
- activeBindings.length);
- assertSame("The binding should be the same",
- TestBinding.TRIGGER_SEQUENCE, activeBindings[0]);
- }
-
- /**
- * Verifies that it cannot be set to <code>null</code>. Verifies that it
- * clears the cache.
- *
- * @throws NotDefinedException
- * If this test doesn't properly define a scheme.
- */
- public final void testSetPlatform() throws NotDefinedException {
- // GENERAL SET-UP
- final Context context = contextManager.getContext("na");
- context.define("name", "description", null);
- final Scheme scheme = bindingManager.getScheme("na");
- scheme.define("name", "description", null);
- bindingManager.setActiveScheme(scheme);
- final Set activeContextIds = new HashSet();
- activeContextIds.add("na");
- contextManager.setActiveContextIds(activeContextIds);
-
- // SET TO NULL
- try {
- bindingManager.setPlatform(null);
- fail("Cannot set the platform to null");
- } catch (final NullPointerException e) {
- // Success
- }
-
- // SET TO SOMETHING
- final String commandId = "commandId";
- final Binding binding = new TestBinding(commandId, "na", "na", null,
- "atari", Binding.SYSTEM, null);
- bindingManager.addBinding(binding);
- assertTrue("The binding shouldn't be active",
- bindingManager.getActiveBindingsFor(binding
- .getParameterizedCommand()).length == 0);
- bindingManager.setPlatform("atari");
- final TriggerSequence[] activeBindings = bindingManager
- .getActiveBindingsFor(binding.getParameterizedCommand());
- assertEquals("The binding should become active", 1,
- activeBindings.length);
- assertSame("The binding should be the same",
- TestBinding.TRIGGER_SEQUENCE, activeBindings[0]);
- }
-
- /**
- * Tests whether the method works with a null argument. Tests that it works
- * in a simple case.
- *
- * @throws NotDefinedException
- * If the scheme we try to activate is not defined.
- */
- public final void testGetBestActiveBindingFor() throws Exception {
- // Test with a null argument.
- final TriggerSequence[] activeBindingsForNull = bindingManager
- .getActiveBindingsFor((ParameterizedCommand) null);
- assertNotNull("The active bindings for a command should never be null",
- activeBindingsForNull);
- assertTrue(
- "The active binding for a null command should always be empty",
- activeBindingsForNull.length == 0);
-
- // Test a simple case.
- final Context context = contextManager.getContext("na");
- context.define("name", "description", null);
-
- final Scheme scheme = bindingManager.getScheme("na");
- scheme.define("name", "description", null);
-
- bindingManager.setActiveScheme(scheme);
- final Set activeContextIds = new HashSet();
- activeContextIds.add("na");
- contextManager.setActiveContextIds(activeContextIds);
-
- final String commandId = "commandId";
- final String categoryId = "cat";
- Category cat = commandManager.getCategory(categoryId);
- cat.define("cat", "cat");
- Command cmd = commandManager.getCommand(commandId);
- IParameter[] parms = new IParameter[1];
- parms[0] = new IParameter() {
- public String getId() {
- return "viewId";
- }
-
- public String getName() {
- return "View Id";
- }
-
- public IParameterValues getValues() throws ParameterValuesException {
- return null;
- }
-
- public boolean isOptional() {
- return false;
- }
- };
- cmd.define("na", "NA", cat, parms);
- Map map = new HashMap();
- map.put("viewId", "outline");
- ParameterizedCommand outline = ParameterizedCommand.generateCommand(
- cmd, map);
- map = new HashMap();
- map.put("viewId", "console");
- ParameterizedCommand console = ParameterizedCommand.generateCommand(
- cmd, map);
- assertFalse(outline.equals(console));
-
- final Binding b2 = new KeyBinding(KeySequence.getInstance("M1+M2+V"),
- outline, "na", "na", null, null, null, Binding.SYSTEM);
- bindingManager.addBinding(b2);
-
- final Binding binding = new KeyBinding(KeySequence.getInstance("M1+V"),
- outline, "na", "na", null, null, null, Binding.SYSTEM);
- bindingManager.addBinding(binding);
-
- final Binding b3 = new KeyBinding(KeySequence.getInstance("M1+M2+C"),
- console, "na", "na", null, null, null, Binding.SYSTEM);
- bindingManager.addBinding(b3);
-
- // - above is all done as part of startup
-
- final TriggerSequence[] bindings = bindingManager
- .getActiveBindingsFor(binding.getParameterizedCommand());
- assertEquals(2, bindings.length);
-
- final TriggerSequence bestBinding = bindingManager.getBestActiveBindingFor(outline);
- assertEquals(binding.getTriggerSequence(), bestBinding);
-
- final TriggerSequence bestBinding2 = bindingManager.getBestActiveBindingFor(console);
- assertEquals(b3.getTriggerSequence(), bestBinding2);
- }
-}

Back to the top