/******************************************************************************* * Copyright (c) 2009 Ketan Padegaonkar 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: * Ketan Padegaonkar - initial API and implementation *******************************************************************************/ package org.eclipse.swtbot.swt.finder.keyboard; import static org.junit.Assert.assertEquals; import org.eclipse.jface.bindings.keys.KeyStroke; import org.eclipse.swt.SWT; import org.junit.Test; /** * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ public class KeystrokesTest { @Test public void getsKeyStrokeForCapitalCharacters() throws Exception { // C should generate SHIFT+C assertEquals(shift(), Keystrokes.create('C')[0]); assertEquals(key('C'), Keystrokes.create('C')[1]); // T should generate SHIFT+T assertEquals(shift(), Keystrokes.create('T')[0]); assertEquals(key('T'), Keystrokes.create('T')[1]); } @Test public void getsKeyStrokeForSmallCharacters() throws Exception { // c should generate C assertEquals(key('C'), Keystrokes.create('c')[0]); // t should generate T assertEquals(key('T'), Keystrokes.create('t')[0]); } @Test public void getsKeyStrokeForSpecialCharacters() throws Exception { // ! should generate SHIFT+1 assertEquals(shift(), Keystrokes.create('!')[0]); assertEquals(key('1'), Keystrokes.create('!')[1]); // : should generate SHIFT+; assertEquals(shift(), Keystrokes.create(':')[0]); assertEquals(key(';'), Keystrokes.create(':')[1]); } @Test public void getsKeystrokesForModificationKeys() throws Exception { KeyStroke[] keys = Keystrokes.toKeys(SWT.CTRL | SWT.ALT | SWT.SHIFT | SWT.COMMAND, '\0'); assertEquals(4, keys.length); assertEquals(alt(), keys[0]); assertEquals(cmd(), keys[1]); assertEquals(ctrl(), keys[2]); assertEquals(shift(), keys[3]); } @Test public void getsKeystrokesForModificationKey() throws Exception { KeyStroke[] keys = Keystrokes.toKeys(SWT.CTRL, 't'); assertEquals(2, keys.length); assertEquals(ctrl(), keys[0]); assertEquals(key('T'), keys[1]); } @Test public void getsKeystrokesForModificationKeyWithShiftAndSmallCharacter() throws Exception { KeyStroke[] keys = Keystrokes.toKeys(SWT.CTRL | SWT.SHIFT, 't'); assertEquals(3, keys.length); assertEquals(ctrl(), keys[0]); assertEquals(shift(), keys[1]); assertEquals(key('T'), keys[2]); } @Test public void getsKeystrokesForModificationKeyWithShiftAndCapitalCharacter() throws Exception { KeyStroke[] keys = Keystrokes.toKeys(SWT.CTRL | SWT.SHIFT, 'T'); assertEquals(3, keys.length); assertEquals(ctrl(), keys[0]); assertEquals(shift(), keys[1]); assertEquals(key('T'), keys[2]); } @Test public void getsKeystrokesForModificationKeyForCapitalCharacter() throws Exception { KeyStroke[] keys = Keystrokes.toKeys(SWT.CTRL, 'T'); assertEquals(3, keys.length); assertEquals(ctrl(), keys[0]); assertEquals(shift(), keys[1]); assertEquals(key('T'), keys[2]); } private KeyStroke shift() { return KeyStroke.getInstance(SWT.SHIFT, 0); } private KeyStroke key(char c) { return KeyStroke.getInstance(c); } private KeyStroke ctrl() { return KeyStroke.getInstance(SWT.CTRL, 0); } private KeyStroke alt() { return KeyStroke.getInstance(SWT.ALT, 0); } private KeyStroke cmd() { return KeyStroke.getInstance(SWT.COMMAND, 0); } }