source: trunk/quest-core-events-test/src/test/java/de/ugoe/cs/quest/eventcore/gui/InteractionEventListTest.java @ 678

Last change on this file since 678 was 678, checked in by pharms, 12 years ago
  • added the old interaction event list test
  • Property svn:executable set to *
File size: 19.3 KB
Line 
1
2package de.ugoe.cs.quest.eventcore.gui;
3
4import static org.junit.Assert.assertEquals;
5
6import java.util.ArrayList;
7import java.util.List;
8
9import org.junit.Test;
10
11import de.ugoe.cs.quest.eventcore.Event;
12import de.ugoe.cs.quest.eventcore.guimodel.AbstractDefaultGUIElement;
13import de.ugoe.cs.quest.eventcore.guimodel.IGUIElement;
14import de.ugoe.cs.quest.eventcore.guimodel.IGUIElementSpec;
15import de.ugoe.cs.tasktree.keyboardmaps.VirtualKey;
16
17/**
18 * @author Patrick Harms
19 */
20public class InteractionEventListTest {
21
22    /**
23   *
24   */
25    @Test
26    public void testDifferentCombinationKeyCombinations() {
27        List<Event> checkList = new ArrayList<Event>();
28        InteractionEventList eventList = new InteractionEventList();
29
30        IGUIElement guiElement = new AbstractDefaultGUIElement(null, null) {
31
32            /**  */
33            private static final long serialVersionUID = 1L;
34
35            @Override
36            public void updateSpecification(IGUIElementSpec furtherSpec) {
37                // ignore
38            }
39
40            @Override
41            public String getPlatform() {
42                return "TEST";
43            }
44
45        };
46
47        // check first of all a normal pressing and releasing of A and B
48        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
49        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
50        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_B), guiElement));
51        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_B), guiElement));
52
53        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
54        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
55        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_B), guiElement));
56        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_B), guiElement));
57
58        assertEquals(checkList.size(), eventList.size());
59
60        for (int i = 0; i < checkList.size(); i++) {
61            assertEquals(checkList.get(i).getType(), eventList.get(i).getType());
62        }
63
64        // check what happens if A is pressed and not released before B is pressed
65        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_C), guiElement));
66        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_D), guiElement));
67        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_C), guiElement));
68        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_D), guiElement));
69
70        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_C), guiElement));
71        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_C), guiElement));
72        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_D), guiElement));
73        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_D), guiElement));
74
75        assertEquals(checkList.size(), eventList.size());
76
77        for (int i = 0; i < checkList.size(); i++) {
78            assertEquals(checkList.get(i).getType(), eventList.get(i).getType());
79        }
80
81        // now SHIFT is pressed and released after all keys are pressed
82        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
83        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_E), guiElement));
84        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_E), guiElement));
85        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_F), guiElement));
86        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_F), guiElement));
87        eventList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
88
89        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
90        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_E), guiElement));
91        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_E), guiElement));
92        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_F), guiElement));
93        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_F), guiElement));
94        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
95
96        assertEquals(checkList.size(), eventList.size());
97
98        for (int i = 0; i < checkList.size(); i++) {
99            assertEquals(checkList.get(i).getType(), eventList.get(i).getType());
100        }
101
102        // now SHIFT is released before the last key is released
103        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
104        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_G), guiElement));
105        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_G), guiElement));
106        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_H), guiElement));
107        eventList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
108        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_H), guiElement));
109
110        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
111        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_G), guiElement));
112        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_G), guiElement));
113        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_H), guiElement));
114        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_H), guiElement));
115        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
116
117        assertEquals(checkList.size(), eventList.size());
118
119        for (int i = 0; i < checkList.size(); i++) {
120            assertEquals(checkList.get(i).getType(), eventList.get(i).getType());
121        }
122
123        // now SHIFT is released before all other keys are released
124        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
125        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_I), guiElement));
126        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_J), guiElement));
127        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_K), guiElement));
128        eventList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
129        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_J), guiElement));
130        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_K), guiElement));
131        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_I), guiElement));
132
133        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
134        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_I), guiElement));
135        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_I), guiElement));
136        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_J), guiElement));
137        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_J), guiElement));
138        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_K), guiElement));
139        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_K), guiElement));
140        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
141
142        assertEquals(checkList.size(), eventList.size());
143
144        for (int i = 0; i < checkList.size(); i++) {
145            assertEquals(checkList.get(i).getType(), eventList.get(i).getType());
146        }
147
148        // now SHIFT, CTRL and ALT are pressed and released after all keys are pressed
149        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
150        eventList.add(new Event(new KeyPressed(VirtualKey.CONTROL), guiElement));
151        eventList.add(new Event(new KeyPressed(VirtualKey.ALT), guiElement));
152        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_L), guiElement));
153        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_L), guiElement));
154        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_M), guiElement));
155        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_M), guiElement));
156        eventList.add(new Event(new KeyReleased(VirtualKey.ALT), guiElement));
157        eventList.add(new Event(new KeyReleased(VirtualKey.CONTROL), guiElement));
158        eventList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
159
160        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
161        checkList.add(new Event(new KeyPressed(VirtualKey.CONTROL), guiElement));
162        checkList.add(new Event(new KeyPressed(VirtualKey.ALT), guiElement));
163        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_L), guiElement));
164        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_L), guiElement));
165        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_M), guiElement));
166        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_M), guiElement));
167        checkList.add(new Event(new KeyReleased(VirtualKey.ALT), guiElement));
168        checkList.add(new Event(new KeyReleased(VirtualKey.CONTROL), guiElement));
169        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
170
171        assertEquals(checkList.size(), eventList.size());
172
173        for (int i = 0; i < checkList.size(); i++) {
174            assertEquals(checkList.get(i).getType(), eventList.get(i).getType());
175        }
176
177        // now SHIFT, CTRL and ALT are released before the last key is released
178        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
179        eventList.add(new Event(new KeyPressed(VirtualKey.CONTROL), guiElement));
180        eventList.add(new Event(new KeyPressed(VirtualKey.ALT), guiElement));
181        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_N), guiElement));
182        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_N), guiElement));
183        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_O), guiElement));
184        eventList.add(new Event(new KeyReleased(VirtualKey.ALT), guiElement));
185        eventList.add(new Event(new KeyReleased(VirtualKey.CONTROL), guiElement));
186        eventList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
187        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_O), guiElement));
188
189        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
190        checkList.add(new Event(new KeyPressed(VirtualKey.CONTROL), guiElement));
191        checkList.add(new Event(new KeyPressed(VirtualKey.ALT), guiElement));
192        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_N), guiElement));
193        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_N), guiElement));
194        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_O), guiElement));
195        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_O), guiElement));
196        checkList.add(new Event(new KeyReleased(VirtualKey.ALT), guiElement));
197        checkList.add(new Event(new KeyReleased(VirtualKey.CONTROL), guiElement));
198        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
199
200        assertEquals(checkList.size(), eventList.size());
201
202        for (int i = 0; i < checkList.size(); i++) {
203            assertEquals(checkList.get(i).getType(), eventList.get(i).getType());
204        }
205
206        // now SHIFT, CTRL and ALT are released in another order and before some other keys are
207        // released
208        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
209        eventList.add(new Event(new KeyPressed(VirtualKey.CONTROL), guiElement));
210        eventList.add(new Event(new KeyPressed(VirtualKey.ALT), guiElement));
211        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_P), guiElement));
212        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_Q), guiElement));
213        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_R), guiElement));
214        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_Q), guiElement));
215        eventList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
216        eventList.add(new Event(new KeyReleased(VirtualKey.ALT), guiElement));
217        eventList.add(new Event(new KeyReleased(VirtualKey.CONTROL), guiElement));
218        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_R), guiElement));
219        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_P), guiElement));
220
221        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
222        checkList.add(new Event(new KeyPressed(VirtualKey.CONTROL), guiElement));
223        checkList.add(new Event(new KeyPressed(VirtualKey.ALT), guiElement));
224        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_P), guiElement));
225        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_P), guiElement));
226        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_Q), guiElement));
227        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_Q), guiElement));
228        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_R), guiElement));
229        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_R), guiElement));
230        checkList.add(new Event(new KeyReleased(VirtualKey.ALT), guiElement));
231        checkList.add(new Event(new KeyReleased(VirtualKey.CONTROL), guiElement));
232        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
233
234        assertEquals(checkList.size(), eventList.size());
235
236        for (int i = 0; i < checkList.size(); i++) {
237            assertEquals(checkList.get(i).getType(), eventList.get(i).getType());
238        }
239    }
240
241    /**
242   *
243   */
244    @Test
245    public void testSeveralSubsequentKeyPressedEvents() {
246        List<Event> checkList = new ArrayList<Event>();
247        InteractionEventList eventList = new InteractionEventList();
248
249        IGUIElement guiElement = new AbstractDefaultGUIElement(null, null) {
250
251            /**  */
252            private static final long serialVersionUID = 1L;
253
254            @Override
255            public void updateSpecification(IGUIElementSpec furtherSpec) {
256                // ignore
257            }
258
259            @Override
260            public String getPlatform() {
261                return "TEST";
262            }
263
264        };
265
266        // check first of all a normal pressing and releasing of A and B
267        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
268        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
269        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
270        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
271        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
272        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
273        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
274        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
275        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
276        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
277
278        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
279        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
280        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
281        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
282        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
283        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
284        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
285        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
286        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
287        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
288        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
289        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
290        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
291        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
292        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
293        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
294        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
295        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
296
297        assertEquals(checkList.size(), eventList.size());
298
299        for (int i = 0; i < checkList.size(); i++) {
300            assertEquals(checkList.get(i).getType(), eventList.get(i).getType());
301        }
302
303        // check first of all a normal pressing and releasing of A and B
304        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
305        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
306        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
307        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
308        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
309        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
310        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
311        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
312        eventList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
313        eventList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
314        eventList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
315        eventList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
316
317        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
318        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
319        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
320        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
321        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
322        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
323        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
324        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
325        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
326        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
327        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
328        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
329        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
330        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
331        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
332        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
333        checkList.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
334        checkList.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
335        checkList.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
336        checkList.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
337
338        assertEquals(checkList.size(), eventList.size());
339
340        for (int i = 0; i < checkList.size(); i++) {
341            assertEquals(checkList.get(i).getType(), eventList.get(i).getType());
342        }
343    }
344
345}
Note: See TracBrowser for help on using the repository browser.