blob: d8a7f1699444083016440f191fb4e37f29a53974 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004 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.ui.tests.contexts;
import org.eclipse.ui.contexts.IContext;
import org.eclipse.ui.contexts.IContextManager;
import org.eclipse.ui.contexts.IWorkbenchContextSupport;
import org.eclipse.ui.contexts.NotDefinedException;
import org.eclipse.ui.tests.harness.util.UITestCase;
/**
* The test case for reading in elements from the extension point. This verifies
* that contexts defined in this test plug-in's extensions are all properly read
* in. This includes extensions read from deprecated locations, as well as the
* currently preferred way of specifying contexts.
*
* @since 3.0
*/
public class ExtensionTestCase extends UITestCase {
/**
* Constructs a new instance of <code>ExtensionTestCase</code> with the
* given name.
*
* @param testName
* The name of the test; may be <code>null</code>.
*/
public ExtensionTestCase(final String testName) {
super(testName);
}
/**
* Tests that the "org.eclipse.ui.acceleratorScopes" extension point can be
* read in by Eclipse. This extension point is currently deprecated.
*
* @throws NotDefinedException
* This shouldn't really be possible, as the test should fail
* gracefully before this could happen.
*/
public final void testAcceleratorScopes() throws NotDefinedException {
final IWorkbenchContextSupport contextSupport = fWorkbench
.getContextSupport();
final IContextManager contextManager = contextSupport
.getContextManager();
final IContext context1 = contextManager
.getContext("org.eclipse.ui.tests.acceleratorScopes.test1");
assertTrue(
"Context contributed via 'org.eclipse.ui.acceleratorScopes' is not loaded properly.",
context1.isDefined());
assertEquals(
"Context contributed via 'org.eclipse.ui.acceleratorScopes' does not get its name.",
"Test Accelerator Scope 1", context1.getName());
final IContext context2 = contextManager
.getContext("org.eclipse.ui.tests.acceleratorScopes.test2");
assertTrue(
"Context contributed via 'org.eclipse.ui.acceleratorScopes' is not loaded properly.",
context2.isDefined());
assertEquals(
"Context contributed via 'org.eclipse.ui.acceleratorScopes' does not get its name.",
"Test Accelerator Scope 2", context2.getName());
assertEquals(
"Context contributed via 'org.eclipse.ui.acceleratorScopes' does not get its parent.",
"org.eclipse.ui.tests.acceleratorScopes.test1", context2
.getParentId());
}
/**
* Tests that the "scopes" element in the "org.eclipse.ui.commands"
* extension point can be read in as a context by Eclipse. This element is
* currently deprecated.
*
* @throws NotDefinedException
* This shouldn't really be possible, as the test should fail
* gracefully before this could happen.
*/
public final void testCommandsScopes() throws NotDefinedException {
final IWorkbenchContextSupport contextSupport = fWorkbench
.getContextSupport();
final IContextManager contextManager = contextSupport
.getContextManager();
final IContext context1 = contextManager
.getContext("org.eclipse.ui.tests.commands.scope1");
assertTrue(
"Context contributed via 'org.eclipse.ui.commands' is not loaded properly.",
context1.isDefined());
assertEquals(
"Context contributed via 'org.eclipse.ui.commands' does not get its name.",
"Test Scope 1", context1.getName());
final IContext context2 = contextManager
.getContext("org.eclipse.ui.tests.commands.scope2");
assertTrue(
"Context contributed via 'org.eclipse.ui.commands' is not loaded properly.",
context2.isDefined());
assertEquals(
"Context contributed via 'org.eclipse.ui.commands' does not get its name.",
"Test Scope 2", context2.getName());
assertEquals(
"Context contributed via 'org.eclipse.ui.commands' does not get its parent.",
"org.eclipse.ui.tests.commands.scope1", context2.getParentId());
}
/**
* Tests that the currently preferred way of specifiying contexts can be
* read in properly by Eclipse. This uses all of the non-deprecated
* attributes.
*
* @throws NotDefinedException
* This shouldn't really be possible, as the test should fail
* gracefully before this could happen.
*/
public final void testContexts() throws NotDefinedException {
final IWorkbenchContextSupport contextSupport = fWorkbench
.getContextSupport();
final IContextManager contextManager = contextSupport
.getContextManager();
final IContext context1 = contextManager
.getContext("org.eclipse.ui.tests.contexts.context1");
assertTrue(
"Context contributed via 'org.eclipse.ui.contexts' is not loaded properly.",
context1.isDefined());
assertEquals(
"Context contributed via 'org.eclipse.ui.contexts' does not get its name.",
"Test Context 1", context1.getName());
final IContext context2 = contextManager
.getContext("org.eclipse.ui.tests.contexts.context2");
assertTrue(
"Context contributed via 'org.eclipse.ui.contexts' is not loaded properly.",
context2.isDefined());
assertEquals(
"Context contributed via 'org.eclipse.ui.contexts' does not get its name.",
"Test Context 2", context2.getName());
assertEquals(
"Context contributed via 'org.eclipse.ui.contexts' does not get its parent.",
"org.eclipse.ui.tests.contexts.context1", context2
.getParentId());
}
}