package com.windowtester.test.recorder.ui; import static com.windowtester.test.recorder.ui.FakeEvents.buttonSelect1; import static com.windowtester.test.recorder.ui.FakeEvents.keyA; import static com.windowtester.test.recorder.ui.FakeEvents.keyB; import static com.windowtester.test.recorder.ui.FakeEvents.keyC; import static com.windowtester.test.recorder.ui.FakeEvents.keyTAB; import junit.framework.TestCase; import com.windowtester.recorder.event.IUISemanticEvent; import com.windowtester.recorder.ui.events.EventParser; import com.windowtester.recorder.ui.events.ParsedEvent; import com.windowtester.recorder.ui.events.ParsedEventSequence; import com.windowtester.recorder.ui.events.ParsedKeyEvent; import com.windowtester.recorder.ui.events.ParsedTextEvent; import com.windowtester.recorder.ui.events.ParsedWidgetEvent; import com.windowtester.ui.core.model.ISemanticEvent; import com.windowtester.ui.internal.corel.model.Event; /******************************************************************************* * Copyright (c) 2012 Google, Inc. * 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: * Google, Inc. - initial API and implementation *******************************************************************************/ public class ParsedEventSequenceTest extends TestCase { ParsedEventSequence sequence = new ParsedEventSequence(); /* (non-Javadoc) * @see junit.framework.TestCase#tearDown() */ @Override protected void tearDown() throws Exception { System.out.println(sequence.toString()); } public void testJustStandardKeys() throws Exception { add(keyA, keyB); assertLength(1); ParsedTextEvent text = get(0); assertEq(keyA, text.keys()[0]); assertEq(keyB, text.keys()[1]); } public void testJustStandardKeys2() throws Exception { add(keyA, keyB, keyC); assertLength(1); ParsedTextEvent text = get(0); assertEq(keyA, text.keys()[0]); assertEq(keyB, text.keys()[1]); assertEq(keyC, text.keys()[2]); } public void testKeysAndButton() throws Exception { add(keyA, keyB, keyC, buttonSelect1, keyA); assertLength(3); ParsedTextEvent text = get(0); assertEq(keyA, text.keys()[0]); assertEq(keyB, text.keys()[1]); assertEq(keyC, text.keys()[2]); ParsedWidgetEvent button = get(1); assertEq(buttonSelect1, button); ParsedKeyEvent key = get(2); assertEq(keyA, key); } public void testKeysAndTab() throws Exception { add(keyA, keyB, keyTAB, keyA); assertLength(3); ParsedTextEvent text = get(0); assertEq(keyA, text.keys()[0]); assertEq(keyB, text.keys()[1]); ParsedKeyEvent tab = get(1); assertEq(keyTAB, tab); ParsedKeyEvent key = get(2); assertEq(keyA, key.key()); } private void assertEq(Event event, ParsedWidgetEvent widgetEvent) { assertEq(event, widgetEvent.event()); } private void assertEq(Event event, ParsedKeyEvent keyEvent) { assertEq(event, keyEvent.key()); } private void assertEq(Event event, IUISemanticEvent semanticEvent) { assertEquals(event.getUIEvent(), semanticEvent); } private void assertEq(Event event, ISemanticEvent semanticEvent) { assertEquals(event, semanticEvent); } @SuppressWarnings("unchecked") private <T extends ParsedEvent > T get(int index) { return (T) sequence.get(index); } private void assertLength(int expectedLength) { assertEquals(expectedLength, sequence.size()); } private void add(Event ... events) { for (Event event : events) { sequence.add(EventParser.parse(event)); } } }