source: trunk/quest-core-tasktrees-test/src/test/java/de/ugoe/cs/quest/tasktrees/temporalrelation/DefaultTextInputReductionRuleTest.java @ 557

Last change on this file since 557 was 557, checked in by pharms, 12 years ago
  • adapted task tree creation stuff to more general event handling
File size: 16.7 KB
Line 
1// Module    : $RCSfile: DefaultIterationDetectionRuleTest.java,v $
2// Version   : $Revision: 0.0 $  $Author: patrick $  $Date: 28.04.2012 $
3// Project   : TaskTreeTemporalRelationship
4// Creation  : 2012 by patrick
5// Copyright : Patrick Harms, 2012
6
7package de.ugoe.cs.quest.tasktrees.temporalrelation;
8
9import org.junit.Test;
10
11import de.ugoe.cs.quest.eventcore.gui.KeyPressed;
12import de.ugoe.cs.quest.eventcore.gui.KeyReleased;
13import de.ugoe.cs.quest.eventcore.guimodel.IGUIElement;
14import de.ugoe.cs.quest.eventcore.guimodel.ITextField;
15import de.ugoe.cs.quest.tasktrees.testutils.DummyGUIElement;
16import de.ugoe.cs.quest.tasktrees.testutils.TaskTreeChecker;
17import de.ugoe.cs.tasktree.keyboardmaps.VirtualKey;
18
19/**
20 * TODO comment
21 *
22 * @version $Revision: $ $Date: 28.04.2012$
23 * @author 2012, last modified by $Author: patrick$
24 */
25public class DefaultTextInputReductionRuleTest extends AbstractTemporalRelationshipTC {
26
27    /**
28     *
29     */
30    @Test
31    public void testSimpleTextEntry() {
32        IGUIElement element1 = new DummyTextField("elem1");
33        simulateEvent(new KeyPressed(VirtualKey.LETTER_A), element1);
34        simulateEvent(new KeyReleased(VirtualKey.LETTER_A), element1);
35        new TaskTreeChecker(true).assertTaskTree
36            ("Sequence sequence0 {" +
37             "  TextInputEvent TextInput a {" +
38             "    Event KeyPressed LETTER_A {}" +
39             "    Event KeyReleased LETTER_A {}" +
40             "  }" +
41             "}", getTaskTree());
42
43        simulateEvent(new KeyPressed(VirtualKey.LETTER_B), element1);
44        simulateEvent(new KeyReleased(VirtualKey.LETTER_B), element1);
45        new TaskTreeChecker().assertTaskTree
46            ("Sequence sequence0 {" +
47             "  TextInputEvent TextInput ab {" +
48             "    Event KeyPressed LETTER_A {}" +
49             "    Event KeyReleased LETTER_A {}" +
50             "    Event KeyPressed LETTER_B {}" +
51             "    Event KeyReleased LETTER_B {}" +
52             "  }" +
53             "}", getTaskTree());
54
55        simulateEvent(new KeyPressed(VirtualKey.SHIFT), element1);
56        simulateEvent(new KeyPressed(VirtualKey.LETTER_C), element1);
57        simulateEvent(new KeyReleased(VirtualKey.LETTER_C), element1);
58        simulateEvent(new KeyReleased(VirtualKey.SHIFT), element1);
59        new TaskTreeChecker().assertTaskTree
60            ("Sequence sequence0 {" +
61             "  TextInputEvent TextInput abC {" +
62             "    Event KeyPressed LETTER_A {}" +
63             "    Event KeyReleased LETTER_A {}" +
64             "    Event KeyPressed LETTER_B {}" +
65             "    Event KeyReleased LETTER_B {}" +
66             "    Event KeyPressed SHIFT {}" +
67             "    Event KeyPressed LETTER_C {}" +
68             "    Event KeyReleased LETTER_C {}" +
69             "    Event KeyReleased SHIFT {}" +
70             "  }" +
71             "}", getTaskTree());
72
73        simulateEvent(new KeyPressed(VirtualKey.SHIFT), element1);
74        simulateEvent(new KeyPressed(VirtualKey.LETTER_D), element1);
75        simulateEvent(new KeyReleased(VirtualKey.LETTER_D), element1);
76        simulateEvent(new KeyPressed(VirtualKey.LETTER_E), element1);
77        simulateEvent(new KeyReleased(VirtualKey.LETTER_E), element1);
78        simulateEvent(new KeyPressed(VirtualKey.LETTER_F), element1);
79        simulateEvent(new KeyReleased(VirtualKey.LETTER_F), element1);
80        simulateEvent(new KeyReleased(VirtualKey.SHIFT), element1);
81        new TaskTreeChecker().assertTaskTree
82            ("Sequence sequence0 {" +
83             "  TextInputEvent TextInput abCDEF {" +
84             "    Event KeyPressed LETTER_A {}" +
85             "    Event KeyReleased LETTER_A {}" +
86             "    Event KeyPressed LETTER_B {}" +
87             "    Event KeyReleased LETTER_B {}" +
88             "    Event KeyPressed SHIFT {}" +
89             "    Event KeyPressed LETTER_C {}" +
90             "    Event KeyReleased LETTER_C {}" +
91             "    Event KeyReleased SHIFT {}" +
92             "    Event KeyPressed SHIFT {}" +
93             "    Event KeyPressed LETTER_D {}" +
94             "    Event KeyReleased LETTER_D {}" +
95             "    Event KeyPressed LETTER_E {}" +
96             "    Event KeyReleased LETTER_E {}" +
97             "    Event KeyPressed LETTER_F {}" +
98             "    Event KeyReleased LETTER_F {}" +
99             "    Event KeyReleased SHIFT {}" +
100             "  }" +
101             "}", getTaskTree());
102
103        simulateEvent(new KeyPressed(VirtualKey.SHIFT), element1);
104        simulateEvent(new KeyPressed(VirtualKey.SHIFT), element1);
105        simulateEvent(new KeyPressed(VirtualKey.LETTER_G), element1);
106        simulateEvent(new KeyReleased(VirtualKey.LETTER_G), element1);
107        simulateEvent(new KeyReleased(VirtualKey.SHIFT), element1);
108        simulateEvent(new KeyReleased(VirtualKey.SHIFT), element1);
109        new TaskTreeChecker().assertTaskTree
110            ("Sequence sequence0 {" +
111             "  TextInputEvent TextInput abCDEFg {" +
112             "    Event KeyPressed LETTER_A {}" +
113             "    Event KeyReleased LETTER_A {}" +
114             "    Event KeyPressed LETTER_B {}" +
115             "    Event KeyReleased LETTER_B {}" +
116             "    Event KeyPressed SHIFT {}" +
117             "    Event KeyPressed LETTER_C {}" +
118             "    Event KeyReleased LETTER_C {}" +
119             "    Event KeyReleased SHIFT {}" +
120             "    Event KeyPressed SHIFT {}" +
121             "    Event KeyPressed LETTER_D {}" +
122             "    Event KeyReleased LETTER_D {}" +
123             "    Event KeyPressed LETTER_E {}" +
124             "    Event KeyReleased LETTER_E {}" +
125             "    Event KeyPressed LETTER_F {}" +
126             "    Event KeyReleased LETTER_F {}" +
127             "    Event KeyReleased SHIFT {}" +
128             "    Event KeyPressed SHIFT {}" +
129             "    Event KeyPressed SHIFT {}" +
130             "    Event KeyPressed LETTER_G {}" +
131             "    Event KeyReleased LETTER_G {}" +
132             "    Event KeyReleased SHIFT {}" +
133             "    Event KeyReleased SHIFT {}" +
134             "  }" +
135             "}", getTaskTree());
136
137    }
138
139    /**
140     *
141     */
142    @Test
143    public void testTextEntryOnDifferentGuiElements() {
144        IGUIElement element1 = new DummyTextField("elem1");
145        IGUIElement element2 = new DummyTextField("elem2");
146        simulateEvent(new KeyPressed(VirtualKey.LETTER_A), element1);
147        simulateEvent(new KeyReleased(VirtualKey.LETTER_A), element1);
148        new TaskTreeChecker().assertTaskTree
149            ("Sequence sequence0 {" +
150             "  TextInputEvent TextInput a {" +
151             "    Event KeyPressed LETTER_A {}" +
152             "    Event KeyReleased LETTER_A {}" +
153             "  }" +
154             "}", getTaskTree());
155
156        simulateEvent(new KeyPressed(VirtualKey.LETTER_B), element2);
157        simulateEvent(new KeyReleased(VirtualKey.LETTER_B), element2);
158        new TaskTreeChecker().assertTaskTree
159            ("Sequence sequence0 {" +
160             "  Sequence sequence1 {" +
161             "    TextInputEvent TextInput a {" +
162             "      Event KeyPressed LETTER_A {}" +
163             "      Event KeyReleased LETTER_A {}" +
164             "    }" +
165             "  }" +
166             "  Sequence sequence2 {" +
167             "    TextInputEvent TextInput b {" +
168             "      Event KeyPressed LETTER_B {}" +
169             "      Event KeyReleased LETTER_B {}" +
170             "    }" +
171             "  }" +
172             "}", getTaskTree());
173
174        simulateEvent(new KeyPressed(VirtualKey.SHIFT), element1);
175        simulateEvent(new KeyPressed(VirtualKey.LETTER_C), element1);
176        simulateEvent(new KeyReleased(VirtualKey.LETTER_C), element1);
177        simulateEvent(new KeyReleased(VirtualKey.SHIFT), element1);
178        new TaskTreeChecker().assertTaskTree
179            ("Sequence sequence0 {" +
180             "  Sequence sequence1 {" +
181             "    TextInputEvent TextInput a {" +
182             "      Event KeyPressed LETTER_A {}" +
183             "      Event KeyReleased LETTER_A {}" +
184             "    }" +
185             "  }" +
186             "  Sequence sequence2 {" +
187             "    TextInputEvent TextInput b {" +
188             "      Event KeyPressed LETTER_B {}" +
189             "      Event KeyReleased LETTER_B {}" +
190             "    }" +
191             "  }" +
192             "  Sequence sequence3 {" +
193             "    TextInputEvent TextInput C {" +
194             "      Event KeyPressed SHIFT {}" +
195             "      Event KeyPressed LETTER_C {}" +
196             "      Event KeyReleased LETTER_C {}" +
197             "      Event KeyReleased SHIFT {}" +
198             "    }" +
199             "  }" +
200             "}", getTaskTree());
201
202        simulateEvent(new KeyPressed(VirtualKey.SHIFT), element2);
203        simulateEvent(new KeyPressed(VirtualKey.LETTER_D), element2);
204        simulateEvent(new KeyReleased(VirtualKey.LETTER_D), element2);
205        simulateEvent(new KeyPressed(VirtualKey.LETTER_E), element2);
206        simulateEvent(new KeyReleased(VirtualKey.LETTER_E), element2);
207        simulateEvent(new KeyPressed(VirtualKey.LETTER_F), element2);
208        simulateEvent(new KeyReleased(VirtualKey.LETTER_F), element2);
209        simulateEvent(new KeyReleased(VirtualKey.SHIFT), element2);
210        new TaskTreeChecker().assertTaskTree
211            ("Sequence sequence0 {" +
212             "  Sequence sequence1 {" +
213             "    TextInputEvent TextInput a {" +
214             "      Event KeyPressed LETTER_A {}" +
215             "      Event KeyReleased LETTER_A {}" +
216             "    }" +
217             "  }" +
218             "  Sequence sequence2 {" +
219             "    TextInputEvent TextInput b {" +
220             "      Event KeyPressed LETTER_B {}" +
221             "      Event KeyReleased LETTER_B {}" +
222             "    }" +
223             "  }" +
224             "  Sequence sequence3 {" +
225             "    TextInputEvent TextInput C {" +
226             "      Event KeyPressed SHIFT {}" +
227             "      Event KeyPressed LETTER_C {}" +
228             "      Event KeyReleased LETTER_C {}" +
229             "      Event KeyReleased SHIFT {}" +
230             "    }" +
231             "  }" +
232             "  Sequence sequence4 {" +
233             "    TextInputEvent TextInput DEF {" +
234             "      Event KeyPressed SHIFT {}" +
235             "      Event KeyPressed LETTER_D {}" +
236             "      Event KeyReleased LETTER_D {}" +
237             "      Event KeyPressed LETTER_E {}" +
238             "      Event KeyReleased LETTER_E {}" +
239             "      Event KeyPressed LETTER_F {}" +
240             "      Event KeyReleased LETTER_F {}" +
241             "      Event KeyReleased SHIFT {}" +
242             "    }" +
243             "  }" +
244             "}", getTaskTree());
245
246        simulateEvent(new KeyPressed(VirtualKey.SHIFT), element1);
247        simulateEvent(new KeyPressed(VirtualKey.SHIFT), element1);
248        simulateEvent(new KeyPressed(VirtualKey.LETTER_G), element1);
249        simulateEvent(new KeyReleased(VirtualKey.LETTER_G), element1);
250        simulateEvent(new KeyReleased(VirtualKey.SHIFT), element1);
251        simulateEvent(new KeyReleased(VirtualKey.SHIFT), element1);
252        new TaskTreeChecker().assertTaskTree
253            ("Sequence sequence0 {" +
254             "  Sequence sequence1 {" +
255             "    TextInputEvent TextInput a {" +
256             "      Event KeyPressed LETTER_A {}" +
257             "      Event KeyReleased LETTER_A {}" +
258             "    }" +
259             "  }" +
260             "  Sequence sequence2 {" +
261             "    TextInputEvent TextInput b {" +
262             "      Event KeyPressed LETTER_B {}" +
263             "      Event KeyReleased LETTER_B {}" +
264             "    }" +
265             "  }" +
266             "  Sequence sequence3 {" +
267             "    TextInputEvent TextInput C {" +
268             "      Event KeyPressed SHIFT {}" +
269             "      Event KeyPressed LETTER_C {}" +
270             "      Event KeyReleased LETTER_C {}" +
271             "      Event KeyReleased SHIFT {}" +
272             "    }" +
273             "  }" +
274             "  Sequence sequence4 {" +
275             "    TextInputEvent TextInput DEF {" +
276             "      Event KeyPressed SHIFT {}" +
277             "      Event KeyPressed LETTER_D {}" +
278             "      Event KeyReleased LETTER_D {}" +
279             "      Event KeyPressed LETTER_E {}" +
280             "      Event KeyReleased LETTER_E {}" +
281             "      Event KeyPressed LETTER_F {}" +
282             "      Event KeyReleased LETTER_F {}" +
283             "      Event KeyReleased SHIFT {}" +
284             "    }" +
285             "  }" +
286             "  Sequence sequence5 {" +
287             "    TextInputEvent TextInput g {" +
288             "      Event KeyPressed SHIFT {}" +
289             "      Event KeyPressed SHIFT {}" +
290             "      Event KeyPressed LETTER_G {}" +
291             "      Event KeyReleased LETTER_G {}" +
292             "      Event KeyReleased SHIFT {}" +
293             "      Event KeyReleased SHIFT {}" +
294             "    }" +
295             "  }" +
296             "}", getTaskTree());
297
298    }
299
300    /**
301     *
302     */
303    @Test
304    public void testUsageOfBackspace() {
305        IGUIElement element1 = new DummyTextField("elem1");
306        simulateEvent(new KeyPressed(VirtualKey.LETTER_A), element1);
307        simulateEvent(new KeyReleased(VirtualKey.LETTER_A), element1);
308        simulateEvent(new KeyPressed(VirtualKey.LETTER_B), element1);
309        simulateEvent(new KeyReleased(VirtualKey.LETTER_B), element1);
310        simulateEvent(new KeyPressed(VirtualKey.LETTER_C), element1);
311        simulateEvent(new KeyReleased(VirtualKey.LETTER_C), element1);
312        simulateEvent(new KeyPressed(VirtualKey.LETTER_D), element1);
313        simulateEvent(new KeyReleased(VirtualKey.LETTER_D), element1);
314        simulateEvent(new KeyPressed(VirtualKey.BACK_SPACE), element1);
315        simulateEvent(new KeyReleased(VirtualKey.BACK_SPACE), element1);
316        simulateEvent(new KeyPressed(VirtualKey.LETTER_E), element1);
317        simulateEvent(new KeyReleased(VirtualKey.LETTER_E), element1);
318        simulateEvent(new KeyPressed(VirtualKey.LETTER_F), element1);
319        simulateEvent(new KeyReleased(VirtualKey.LETTER_F), element1);
320        new TaskTreeChecker().assertTaskTree
321            ("Sequence sequence0 {" +
322             "  TextInputEvent TextInput abcef {" +
323             "    Event KeyPressed LETTER_A {}" +
324             "    Event KeyReleased LETTER_A {}" +
325             "    Event KeyPressed LETTER_B {}" +
326             "    Event KeyReleased LETTER_B {}" +
327             "    Event KeyPressed LETTER_C {}" +
328             "    Event KeyReleased LETTER_C {}" +
329             "    Event KeyPressed LETTER_D {}" +
330             "    Event KeyReleased LETTER_D {}" +
331             "    Event KeyPressed BACK_SPACE {}" +
332             "    Event KeyReleased BACK_SPACE {}" +
333             "    Event KeyPressed LETTER_E {}" +
334             "    Event KeyReleased LETTER_E {}" +
335             "    Event KeyPressed LETTER_F {}" +
336             "    Event KeyReleased LETTER_F {}" +
337             "  }" +
338             "}", getTaskTree());
339
340        simulateEvent(new KeyPressed(VirtualKey.BACK_SPACE), element1);
341        simulateEvent(new KeyReleased(VirtualKey.BACK_SPACE), element1);
342        simulateEvent(new KeyPressed(VirtualKey.BACK_SPACE), element1);
343        simulateEvent(new KeyReleased(VirtualKey.BACK_SPACE), element1);
344        simulateEvent(new KeyPressed(VirtualKey.BACK_SPACE), element1);
345        simulateEvent(new KeyReleased(VirtualKey.BACK_SPACE), element1);
346        new TaskTreeChecker().assertTaskTree
347            ("Sequence sequence0 {" +
348             "  TextInputEvent TextInput ab {" +
349             "    Event KeyPressed LETTER_A {}" +
350             "    Event KeyReleased LETTER_A {}" +
351             "    Event KeyPressed LETTER_B {}" +
352             "    Event KeyReleased LETTER_B {}" +
353             "    Event KeyPressed LETTER_C {}" +
354             "    Event KeyReleased LETTER_C {}" +
355             "    Event KeyPressed LETTER_D {}" +
356             "    Event KeyReleased LETTER_D {}" +
357             "    Event KeyPressed BACK_SPACE {}" +
358             "    Event KeyReleased BACK_SPACE {}" +
359             "    Event KeyPressed LETTER_E {}" +
360             "    Event KeyReleased LETTER_E {}" +
361             "    Event KeyPressed LETTER_F {}" +
362             "    Event KeyReleased LETTER_F {}" +
363             "    Event KeyPressed BACK_SPACE {}" +
364             "    Event KeyReleased BACK_SPACE {}" +
365             "    Event KeyPressed BACK_SPACE {}" +
366             "    Event KeyReleased BACK_SPACE {}" +
367             "    Event KeyPressed BACK_SPACE {}" +
368             "    Event KeyReleased BACK_SPACE {}" +
369             "  }" +
370             "}", getTaskTree());
371
372    }
373
374    /**
375     *
376     */
377    private static class DummyTextField extends DummyGUIElement implements ITextField {
378
379        /**  */
380        private static final long serialVersionUID = 1L;
381
382        /**
383         * TODO: comment
384         *
385         * @param name
386         */
387        public DummyTextField(String name) {
388            super(name);
389        }
390
391    }
392
393}
Note: See TracBrowser for help on using the repository browser.