Index: .classpath =================================================================== RCS file: /home/eclipse/org.eclipse.ui.tests/.classpath,v retrieving revision 1.13 diff -u -r1.13 .classpath --- .classpath 11 Mar 2003 21:23:53 -0000 1.13 +++ .classpath 30 Sep 2003 20:40:28 -0000 @@ -9,7 +9,9 @@ - + + + Index: .project =================================================================== RCS file: /home/eclipse/org.eclipse.ui.tests/.project,v retrieving revision 1.3 diff -u -r1.3 .project --- .project 11 Mar 2003 21:23:53 -0000 1.3 +++ .project 30 Sep 2003 20:40:28 -0000 @@ -3,10 +3,12 @@ org.eclipse.ui.tests + org.eclipse.core.boot org.eclipse.core.resources org.eclipse.core.runtime org.eclipse.swt org.eclipse.ui + org.eclipse.ui.workbench org.junit Index: Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43321Test.java =================================================================== RCS file: Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43321Test.java diff -N Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43321Test.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43321Test.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,103 @@ +/******************************************************************************* + * Copyright (c) 2000, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +package org.eclipse.ui.tests.keys; + + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IWorkspace; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.jface.action.IAction; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.MenuItem; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IWorkbenchActionConstants; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.internal.Workbench; +import org.eclipse.ui.keys.KeyStroke; +import org.eclipse.ui.keys.ParseException; +import org.eclipse.ui.tests.util.UITestCase; +import org.eclipse.ui.texteditor.AbstractTextEditor; + +/** + * Tests Bug 43321 + * + * @since 3.0 + */ +public class Bug43321Test extends UITestCase { + + private static final String NAVIGATOR_VIEW_ID = "org.eclipse.ui.views.ResourceNavigator"; + + /* + * @see TestCase#setUp() + */ + protected void setUp() throws Exception { + super.setUp(); + } + + /* + * @see TestCase#tearDown() + */ + protected void tearDown() throws Exception { + super.tearDown(); + } + + /** + * Constructor for Bug43321Test. + * + * @param name + * The name of the test + */ + public Bug43321Test(String name) { + super(name); + } + + /** + * Tests that non-check box items on the menu are not checked when activated + * from the keyboard. + * @throws ParseException If "CTRL+C" isn't a valid key stroke. + */ + public void testNoCheckOnNonCheckbox() throws CoreException, ParseException { + IWorkbenchWindow window = openTestWindow(); + IWorkspace workspace = ResourcesPlugin.getWorkspace(); + IProject testProject = workspace.getRoot().getProject("TestProject"); //$NON-NLS-1$ + testProject.create(null); + testProject.open(null); + AbstractTextEditor editor = (AbstractTextEditor) window.getActivePage().openEditor(testProject.getFile(".project")); //$NON-NLS-1$ + editor.selectAndReveal(0, 1); + + // Update the display. + Shell shell = window.getShell(); + Display display = shell.getDisplay(); + while (display.readAndDispatch()); + + // Press "Ctrl+C" to perform a copy. + KeyStroke[] keyStrokes = { KeyStroke.getInstance("CTRL+C") }; //$NON-NLS-1$ + Event event = new Event(); + ((Workbench) window.getWorkbench()).press(keyStrokes, event); + + // Get the menu item we've just selected. + IAction action = editor.getEditorSite().getActionBars().getGlobalActionHandler(IWorkbenchActionConstants.COPY); + assertTrue("Non-checkbox menu item is checked.", !action.isChecked()); //$NON-NLS-1$ + } + + public static MenuItem getMenuItem(MenuItem[] menuItems, String text) { + for (int i = 0; i < menuItems.length; i++) { + if (menuItems[i].getText().equals(text)) { + return menuItems[i]; + } + } + + return null; + } +} Index: Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43597Test.java =================================================================== RCS file: Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43597Test.java diff -N Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43597Test.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43597Test.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright (c) 2000, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +package org.eclipse.ui.tests.keys; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Font; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Text; +import org.eclipse.ui.tests.util.UITestCase; + +/** + * Tests Bug 43597 + * + * @since 3.0 + */ +public class Bug43597Test extends UITestCase { + + /* + * @see TestCase#setUp() + */ + protected void setUp() throws Exception { + super.setUp(); + } + + /* + * @see TestCase#tearDown() + */ + protected void tearDown() throws Exception { + super.tearDown(); + } + + /** + * Constructor for Bug43597Test. + * + * @param name + * The name of the test + */ + public Bug43597Test(String name) { + super(name); + } + + /** + * Tests that setting the text on a text widget to an empty string does not + * reset the font. This was a problem only on carbon. + */ + public void testFontReset() { + String metaCharacter = "\u2325X"; //$NON-NLS-1$ + + // Set up a working environment. + Display display = Display.getCurrent(); + Shell shell = new Shell(display); + GridLayout gridLayout = new GridLayout(); + shell.setLayout(gridLayout); + Text text = new Text(shell, SWT.LEFT); + text.setFont(new Font(text.getDisplay(), "Lucida Grande", 13, SWT.NORMAL)); //$NON-NLS-1$ + text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + + // Set the text once, and get the font. + text.setText(metaCharacter); //$NON-NLS-1$ + Font fontBefore = text.getFont(); + + // Set the font again, and get the font afterward. + text.setText(""); //$NON-NLS-1$ + text.setText(metaCharacter); + Font fontAfter = text.getFont(); + + // Test. + assertEquals("Clearing text resets font.", fontBefore.handle, fontAfter.handle); //$NON-NLS-1$ + + // Clean up after myself. + shell.pack(); + shell.open(); + shell.close(); + shell.dispose(); + } +} Index: Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43800Test.java =================================================================== RCS file: Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43800Test.java diff -N Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43800Test.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43800Test.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,65 @@ +/******************************************************************************* + * Copyright (c) 2000, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +package org.eclipse.ui.tests.keys; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Event; +import org.eclipse.ui.internal.keys.KeySupport; +import org.eclipse.ui.tests.util.UITestCase; + +/** + * Test for Bug 43800. + * + * @since 3.0 + */ +public class Bug43800Test extends UITestCase { + + /** + * Constructs a new instance of this test case. + * @param testName The name of the test + */ + public Bug43800Test(String testName) { + super(testName); + } + + /* + * @see TestCase#setUp() + */ + protected void setUp() throws Exception { + super.setUp(); + } + + /* + * @see TestCase#tearDown() + */ + protected void tearDown() throws Exception { + super.tearDown(); + } + + /** + * Tests that key pressed with key codes greater than 16 bits are correctly + * converted into accelerator values. + */ + public void testTruncatingCast() { + /* Make an event representing a key stroke with a key code greater than + * 16 bits. + */ + Event event = new Event(); + event.keyCode = SWT.ARROW_LEFT; + event.character = 0x00; + event.stateMask = 0x00; + + // Convert the event, and test the resulting accelerator value. + int accelerator = KeySupport.convertEventToUnmodifiedAccelerator(event); + assertEquals("Arrow_Left key truncated", SWT.ARROW_LEFT, accelerator); //$NON-NLS-1$ + } +} Index: Eclipse UI Tests/org/eclipse/ui/tests/keys/KeysTestSuite.java =================================================================== RCS file: Eclipse UI Tests/org/eclipse/ui/tests/keys/KeysTestSuite.java diff -N Eclipse UI Tests/org/eclipse/ui/tests/keys/KeysTestSuite.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ Eclipse UI Tests/org/eclipse/ui/tests/keys/KeysTestSuite.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,36 @@ +/******************************************************************************* + * Copyright (c) 2000, 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.ui.tests.keys; + +import junit.framework.Test; +import junit.framework.TestSuite; + +/** + * Tests for all areas of the key support for the platform. + */ +public class KeysTestSuite extends TestSuite { + + /** + * Returns the suite. This is required to use the JUnit Launcher. + */ + public static Test suite() { + return new KeysTestSuite(); + } + + /** + * Construct the test suite. + */ + public KeysTestSuite() { + addTest(new TestSuite(Bug43321Test.class)); + addTest(new TestSuite(Bug43597Test.class)); + addTest(new TestSuite(Bug43800Test.class)); + } +}