[927] | 1 | // Copyright 2012 Georg-August-Universität Göttingen, Germany
|
---|
| 2 | //
|
---|
| 3 | // Licensed under the Apache License, Version 2.0 (the "License");
|
---|
| 4 | // you may not use this file except in compliance with the License.
|
---|
| 5 | // You may obtain a copy of the License at
|
---|
| 6 | //
|
---|
| 7 | // http://www.apache.org/licenses/LICENSE-2.0
|
---|
| 8 | //
|
---|
| 9 | // Unless required by applicable law or agreed to in writing, software
|
---|
| 10 | // distributed under the License is distributed on an "AS IS" BASIS,
|
---|
| 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
---|
| 12 | // See the License for the specific language governing permissions and
|
---|
| 13 | // limitations under the License.
|
---|
[678] | 14 |
|
---|
[927] | 15 |
|
---|
[922] | 16 | package de.ugoe.cs.autoquest.eventcore.gui;
|
---|
[678] | 17 |
|
---|
| 18 | import static org.junit.Assert.assertEquals;
|
---|
| 19 |
|
---|
[765] | 20 | import java.util.LinkedList;
|
---|
[678] | 21 | import java.util.List;
|
---|
[765] | 22 | import java.util.logging.Level;
|
---|
[678] | 23 |
|
---|
[765] | 24 | import org.junit.BeforeClass;
|
---|
[678] | 25 | import org.junit.Test;
|
---|
[765] | 26 | import static org.mockito.Mockito.*;
|
---|
[678] | 27 |
|
---|
[922] | 28 | import de.ugoe.cs.autoquest.eventcore.Event;
|
---|
| 29 | import de.ugoe.cs.autoquest.eventcore.gui.KeyInteractionCorrector;
|
---|
| 30 | import de.ugoe.cs.autoquest.eventcore.gui.KeyPressed;
|
---|
| 31 | import de.ugoe.cs.autoquest.eventcore.gui.KeyReleased;
|
---|
| 32 | import de.ugoe.cs.autoquest.eventcore.gui.KeyTyped;
|
---|
| 33 | import de.ugoe.cs.autoquest.eventcore.gui.KeyboardFocusChange;
|
---|
| 34 | import de.ugoe.cs.autoquest.eventcore.gui.MouseButtonDown;
|
---|
| 35 | import de.ugoe.cs.autoquest.eventcore.gui.MouseButtonUp;
|
---|
| 36 | import de.ugoe.cs.autoquest.eventcore.gui.MouseClick;
|
---|
| 37 | import de.ugoe.cs.autoquest.eventcore.gui.KeyInteractionCorrector.CleanupMode;
|
---|
| 38 | import de.ugoe.cs.autoquest.eventcore.gui.MouseButtonInteraction.Button;
|
---|
| 39 | import de.ugoe.cs.autoquest.eventcore.guimodel.IGUIElement;
|
---|
| 40 | import de.ugoe.cs.autoquest.keyboardmaps.VirtualKey;
|
---|
[765] | 41 | import de.ugoe.cs.util.console.Console;
|
---|
| 42 | import de.ugoe.cs.util.console.TextConsole;
|
---|
[678] | 43 |
|
---|
| 44 | /**
|
---|
[765] | 45 | * @author Patrick Harms, Steffen Herbold
|
---|
[678] | 46 | */
|
---|
[852] | 47 | public class KeyInteractionCorrectorTest {
|
---|
[678] | 48 |
|
---|
| 49 | @Test
|
---|
[765] | 50 | public void testSortKeyInteractions_1() {
|
---|
| 51 | List<Event> input = new LinkedList<Event>();
|
---|
| 52 | List<Event> expected = new LinkedList<Event>();
|
---|
[678] | 53 |
|
---|
[852] | 54 | KeyInteractionCorrector sorter = new KeyInteractionCorrector();
|
---|
[678] | 55 |
|
---|
[765] | 56 | IGUIElement guiElement = mock(IGUIElement.class);
|
---|
[678] | 57 |
|
---|
[765] | 58 | // Normal pressing and releasing of A and B
|
---|
| 59 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
|
---|
| 60 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
|
---|
| 61 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_B), guiElement));
|
---|
| 62 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_B), guiElement));
|
---|
[678] | 63 |
|
---|
[765] | 64 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_A), guiElement));
|
---|
| 65 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_B), guiElement));
|
---|
[678] | 66 |
|
---|
[765] | 67 | List<Event> output = sorter.sortKeyInteractions(input);
|
---|
[685] | 68 |
|
---|
[765] | 69 | assertEquals(expected, output);
|
---|
| 70 | }
|
---|
[678] | 71 |
|
---|
[765] | 72 | @Test
|
---|
| 73 | public void testSortKeyInteractions_2() {
|
---|
| 74 | List<Event> input = new LinkedList<Event>();
|
---|
| 75 | List<Event> expected = new LinkedList<Event>();
|
---|
[678] | 76 |
|
---|
[852] | 77 | KeyInteractionCorrector sorter = new KeyInteractionCorrector();
|
---|
[678] | 78 |
|
---|
[765] | 79 | IGUIElement guiElement = mock(IGUIElement.class);
|
---|
[678] | 80 |
|
---|
[765] | 81 | // A is pressed and not released before B is pressed
|
---|
| 82 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
|
---|
| 83 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_B), guiElement));
|
---|
| 84 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
|
---|
| 85 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_B), guiElement));
|
---|
[678] | 86 |
|
---|
[765] | 87 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_A), guiElement));
|
---|
| 88 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_B), guiElement));
|
---|
[678] | 89 |
|
---|
[765] | 90 | List<Event> output = sorter.sortKeyInteractions(input);
|
---|
[678] | 91 |
|
---|
[765] | 92 | assertEquals(expected, output);
|
---|
| 93 | }
|
---|
[678] | 94 |
|
---|
[765] | 95 | @Test
|
---|
| 96 | public void testSortKeyInteractions_3() {
|
---|
| 97 | List<Event> input = new LinkedList<Event>();
|
---|
| 98 | List<Event> expected = new LinkedList<Event>();
|
---|
[678] | 99 |
|
---|
[852] | 100 | KeyInteractionCorrector sorter = new KeyInteractionCorrector();
|
---|
[678] | 101 |
|
---|
[765] | 102 | IGUIElement guiElement = mock(IGUIElement.class);
|
---|
[678] | 103 |
|
---|
[765] | 104 | // SHIFT is pressed and released after all keys are pressed
|
---|
| 105 | input.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
|
---|
| 106 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
|
---|
| 107 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
|
---|
| 108 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_B), guiElement));
|
---|
| 109 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_B), guiElement));
|
---|
| 110 | input.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
|
---|
[678] | 111 |
|
---|
[765] | 112 | expected.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
|
---|
| 113 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_A), guiElement));
|
---|
| 114 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_B), guiElement));
|
---|
| 115 | expected.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
|
---|
[678] | 116 |
|
---|
[765] | 117 | List<Event> output = sorter.sortKeyInteractions(input);
|
---|
[678] | 118 |
|
---|
[765] | 119 | assertEquals(expected, output);
|
---|
| 120 | }
|
---|
[678] | 121 |
|
---|
[765] | 122 | @Test
|
---|
| 123 | public void testSortKeyInteractions_4() {
|
---|
| 124 | List<Event> input = new LinkedList<Event>();
|
---|
| 125 | List<Event> expected = new LinkedList<Event>();
|
---|
[678] | 126 |
|
---|
[852] | 127 | KeyInteractionCorrector sorter = new KeyInteractionCorrector();
|
---|
[678] | 128 |
|
---|
[765] | 129 | IGUIElement guiElement = mock(IGUIElement.class);
|
---|
[678] | 130 |
|
---|
[765] | 131 | // SHIFT is released before the last key is released
|
---|
| 132 | input.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
|
---|
| 133 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
|
---|
| 134 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
|
---|
| 135 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_B), guiElement));
|
---|
| 136 | input.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
|
---|
| 137 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_B), guiElement));
|
---|
[678] | 138 |
|
---|
[765] | 139 | expected.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
|
---|
| 140 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_A), guiElement));
|
---|
| 141 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_B), guiElement));
|
---|
| 142 | expected.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
|
---|
[678] | 143 |
|
---|
[765] | 144 | List<Event> output = sorter.sortKeyInteractions(input);
|
---|
[678] | 145 |
|
---|
[765] | 146 | assertEquals(expected, output);
|
---|
| 147 | }
|
---|
[678] | 148 |
|
---|
[765] | 149 | @Test
|
---|
| 150 | public void testSortKeyInteractions_5() {
|
---|
| 151 | List<Event> input = new LinkedList<Event>();
|
---|
| 152 | List<Event> expected = new LinkedList<Event>();
|
---|
[678] | 153 |
|
---|
[852] | 154 | KeyInteractionCorrector sorter = new KeyInteractionCorrector();
|
---|
[678] | 155 |
|
---|
[765] | 156 | IGUIElement guiElement = mock(IGUIElement.class);
|
---|
[678] | 157 |
|
---|
[765] | 158 | // SHIFT is released before all other keys are released
|
---|
| 159 | input.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
|
---|
| 160 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
|
---|
| 161 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_B), guiElement));
|
---|
| 162 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_C), guiElement));
|
---|
| 163 | input.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
|
---|
| 164 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
|
---|
| 165 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_B), guiElement));
|
---|
| 166 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_C), guiElement));
|
---|
| 167 |
|
---|
| 168 | expected.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
|
---|
| 169 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_A), guiElement));
|
---|
| 170 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_B), guiElement));
|
---|
| 171 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_C), guiElement));
|
---|
| 172 | expected.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
|
---|
| 173 |
|
---|
| 174 | List<Event> output = sorter.sortKeyInteractions(input);
|
---|
| 175 |
|
---|
| 176 | assertEquals(expected, output);
|
---|
| 177 | }
|
---|
| 178 |
|
---|
| 179 | @Test
|
---|
| 180 | public void testSortKeyInteractions_6() {
|
---|
| 181 | List<Event> input = new LinkedList<Event>();
|
---|
| 182 | List<Event> expected = new LinkedList<Event>();
|
---|
| 183 |
|
---|
[852] | 184 | KeyInteractionCorrector sorter = new KeyInteractionCorrector();
|
---|
[765] | 185 |
|
---|
| 186 | IGUIElement guiElement = mock(IGUIElement.class);
|
---|
| 187 |
|
---|
| 188 | // SHIFT, CTRL and ALT are pressed and released after all keys are pressed
|
---|
| 189 | input.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
|
---|
| 190 | input.add(new Event(new KeyPressed(VirtualKey.CONTROL), guiElement));
|
---|
| 191 | input.add(new Event(new KeyPressed(VirtualKey.ALT), guiElement));
|
---|
| 192 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
|
---|
| 193 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
|
---|
| 194 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_B), guiElement));
|
---|
| 195 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_B), guiElement));
|
---|
| 196 | input.add(new Event(new KeyReleased(VirtualKey.ALT), guiElement));
|
---|
| 197 | input.add(new Event(new KeyReleased(VirtualKey.CONTROL), guiElement));
|
---|
| 198 | input.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
|
---|
| 199 |
|
---|
| 200 | expected.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
|
---|
| 201 | expected.add(new Event(new KeyPressed(VirtualKey.CONTROL), guiElement));
|
---|
| 202 | expected.add(new Event(new KeyPressed(VirtualKey.ALT), guiElement));
|
---|
| 203 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_A), guiElement));
|
---|
| 204 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_B), guiElement));
|
---|
| 205 | expected.add(new Event(new KeyReleased(VirtualKey.ALT), guiElement));
|
---|
| 206 | expected.add(new Event(new KeyReleased(VirtualKey.CONTROL), guiElement));
|
---|
| 207 | expected.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
|
---|
| 208 |
|
---|
| 209 | List<Event> output = sorter.sortKeyInteractions(input);
|
---|
| 210 |
|
---|
| 211 | assertEquals(expected, output);
|
---|
| 212 | }
|
---|
| 213 |
|
---|
| 214 | @Test
|
---|
| 215 | public void testSortKeyInteractions_7() {
|
---|
| 216 | List<Event> input = new LinkedList<Event>();
|
---|
| 217 | List<Event> expected = new LinkedList<Event>();
|
---|
| 218 |
|
---|
[852] | 219 | KeyInteractionCorrector sorter = new KeyInteractionCorrector();
|
---|
[765] | 220 |
|
---|
| 221 | IGUIElement guiElement = mock(IGUIElement.class);
|
---|
| 222 |
|
---|
[678] | 223 | // now SHIFT, CTRL and ALT are released before the last key is released
|
---|
[765] | 224 | input.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
|
---|
| 225 | input.add(new Event(new KeyPressed(VirtualKey.CONTROL), guiElement));
|
---|
| 226 | input.add(new Event(new KeyPressed(VirtualKey.ALT), guiElement));
|
---|
| 227 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
|
---|
| 228 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
|
---|
| 229 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_B), guiElement));
|
---|
| 230 | input.add(new Event(new KeyReleased(VirtualKey.ALT), guiElement));
|
---|
| 231 | input.add(new Event(new KeyReleased(VirtualKey.CONTROL), guiElement));
|
---|
| 232 | input.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
|
---|
| 233 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_B), guiElement));
|
---|
[678] | 234 |
|
---|
[765] | 235 | expected.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
|
---|
| 236 | expected.add(new Event(new KeyPressed(VirtualKey.CONTROL), guiElement));
|
---|
| 237 | expected.add(new Event(new KeyPressed(VirtualKey.ALT), guiElement));
|
---|
| 238 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_A), guiElement));
|
---|
| 239 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_B), guiElement));
|
---|
| 240 | expected.add(new Event(new KeyReleased(VirtualKey.ALT), guiElement));
|
---|
| 241 | expected.add(new Event(new KeyReleased(VirtualKey.CONTROL), guiElement));
|
---|
| 242 | expected.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
|
---|
[678] | 243 |
|
---|
[765] | 244 | List<Event> output = sorter.sortKeyInteractions(input);
|
---|
[678] | 245 |
|
---|
[765] | 246 | assertEquals(expected, output);
|
---|
| 247 | }
|
---|
[678] | 248 |
|
---|
[765] | 249 | @Test
|
---|
| 250 | public void testSortKeyInteractions_8() {
|
---|
| 251 | List<Event> input = new LinkedList<Event>();
|
---|
| 252 | List<Event> expected = new LinkedList<Event>();
|
---|
| 253 |
|
---|
[852] | 254 | KeyInteractionCorrector sorter = new KeyInteractionCorrector();
|
---|
[765] | 255 |
|
---|
| 256 | IGUIElement guiElement = mock(IGUIElement.class);
|
---|
| 257 |
|
---|
| 258 | // SHIFT, CTRL and ALT are released in another order and before some other keys are
|
---|
[678] | 259 | // released
|
---|
[765] | 260 | input.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
|
---|
| 261 | input.add(new Event(new KeyPressed(VirtualKey.CONTROL), guiElement));
|
---|
| 262 | input.add(new Event(new KeyPressed(VirtualKey.ALT), guiElement));
|
---|
| 263 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
|
---|
| 264 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
|
---|
| 265 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_B), guiElement));
|
---|
| 266 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_C), guiElement));
|
---|
| 267 | input.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
|
---|
| 268 | input.add(new Event(new KeyReleased(VirtualKey.ALT), guiElement));
|
---|
| 269 | input.add(new Event(new KeyReleased(VirtualKey.CONTROL), guiElement));
|
---|
| 270 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_B), guiElement));
|
---|
| 271 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_C), guiElement));
|
---|
[678] | 272 |
|
---|
[765] | 273 | expected.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
|
---|
| 274 | expected.add(new Event(new KeyPressed(VirtualKey.CONTROL), guiElement));
|
---|
| 275 | expected.add(new Event(new KeyPressed(VirtualKey.ALT), guiElement));
|
---|
| 276 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_A), guiElement));
|
---|
| 277 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_B), guiElement));
|
---|
| 278 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_C), guiElement));
|
---|
| 279 | expected.add(new Event(new KeyReleased(VirtualKey.ALT), guiElement));
|
---|
| 280 | expected.add(new Event(new KeyReleased(VirtualKey.CONTROL), guiElement));
|
---|
| 281 | expected.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
|
---|
[678] | 282 |
|
---|
[765] | 283 | List<Event> output = sorter.sortKeyInteractions(input);
|
---|
[678] | 284 |
|
---|
[765] | 285 | assertEquals(expected, output);
|
---|
[678] | 286 | }
|
---|
| 287 |
|
---|
| 288 | @Test
|
---|
[765] | 289 | public void testSortKeyInteractions_9() {
|
---|
| 290 | List<Event> input = new LinkedList<Event>();
|
---|
| 291 | List<Event> expected = new LinkedList<Event>();
|
---|
[678] | 292 |
|
---|
[852] | 293 | KeyInteractionCorrector sorter = new KeyInteractionCorrector();
|
---|
[678] | 294 |
|
---|
[765] | 295 | IGUIElement guiElement = mock(IGUIElement.class);
|
---|
[678] | 296 |
|
---|
[765] | 297 | // holding of A
|
---|
| 298 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
|
---|
| 299 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
|
---|
| 300 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
|
---|
| 301 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
|
---|
| 302 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
|
---|
| 303 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
|
---|
| 304 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
|
---|
| 305 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
|
---|
| 306 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
|
---|
| 307 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
|
---|
[678] | 308 |
|
---|
[765] | 309 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_A), guiElement));
|
---|
| 310 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_A), guiElement));
|
---|
| 311 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_A), guiElement));
|
---|
| 312 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_A), guiElement));
|
---|
| 313 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_A), guiElement));
|
---|
| 314 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_A), guiElement));
|
---|
| 315 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_A), guiElement));
|
---|
| 316 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_A), guiElement));
|
---|
| 317 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_A), guiElement));
|
---|
[678] | 318 |
|
---|
[765] | 319 | List<Event> output = sorter.sortKeyInteractions(input);
|
---|
[685] | 320 |
|
---|
[765] | 321 | assertEquals(expected, output);
|
---|
| 322 | }
|
---|
[678] | 323 |
|
---|
[765] | 324 | @Test
|
---|
| 325 | public void testSortKeyInteractions_10() {
|
---|
| 326 | List<Event> input = new LinkedList<Event>();
|
---|
| 327 | List<Event> expected = new LinkedList<Event>();
|
---|
[678] | 328 |
|
---|
[852] | 329 | KeyInteractionCorrector sorter = new KeyInteractionCorrector();
|
---|
[678] | 330 |
|
---|
[765] | 331 | IGUIElement guiElement = mock(IGUIElement.class);
|
---|
[678] | 332 |
|
---|
[765] | 333 | // holding of shift and meanwhile pressing of A
|
---|
| 334 | input.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
|
---|
| 335 | input.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
|
---|
| 336 | input.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
|
---|
| 337 | input.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
|
---|
| 338 | input.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
|
---|
| 339 | input.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
|
---|
| 340 | input.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
|
---|
| 341 | input.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
|
---|
| 342 | input.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
|
---|
| 343 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
|
---|
| 344 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
|
---|
| 345 | input.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
|
---|
[678] | 346 |
|
---|
[765] | 347 | expected.add(new Event(new KeyPressed(VirtualKey.SHIFT), guiElement));
|
---|
| 348 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_A), guiElement));
|
---|
| 349 | expected.add(new Event(new KeyReleased(VirtualKey.SHIFT), guiElement));
|
---|
[678] | 350 |
|
---|
[765] | 351 | List<Event> output = sorter.sortKeyInteractions(input);
|
---|
[678] | 352 |
|
---|
[765] | 353 | assertEquals(expected, output);
|
---|
| 354 | }
|
---|
[678] | 355 |
|
---|
[765] | 356 | @Test
|
---|
| 357 | public void testSortKeyInteractions_11() {
|
---|
| 358 | List<Event> input = new LinkedList<Event>();
|
---|
| 359 | List<Event> expected = new LinkedList<Event>();
|
---|
| 360 |
|
---|
[852] | 361 | KeyInteractionCorrector sorter = new KeyInteractionCorrector();
|
---|
[765] | 362 |
|
---|
| 363 | IGUIElement guiElement = mock(IGUIElement.class);
|
---|
| 364 |
|
---|
| 365 | // Check if keyboard focus change is moved in front of a sequence in case it is in between a
|
---|
| 366 | // pressed
|
---|
| 367 | // released pair
|
---|
| 368 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
|
---|
| 369 | input.add(new Event(new KeyboardFocusChange(), guiElement));
|
---|
| 370 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
|
---|
| 371 |
|
---|
| 372 | expected.add(new Event(new KeyboardFocusChange(), guiElement));
|
---|
| 373 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_A), guiElement));
|
---|
| 374 |
|
---|
| 375 | List<Event> output = sorter.sortKeyInteractions(input);
|
---|
| 376 |
|
---|
| 377 | assertEquals(expected, output);
|
---|
[678] | 378 | }
|
---|
| 379 |
|
---|
[765] | 380 | @Test
|
---|
| 381 | public void testSortKeyInteractions_12() {
|
---|
| 382 | List<Event> input = new LinkedList<Event>();
|
---|
| 383 | List<Event> expected = new LinkedList<Event>();
|
---|
| 384 |
|
---|
[852] | 385 | KeyInteractionCorrector sorter = new KeyInteractionCorrector();
|
---|
[765] | 386 |
|
---|
| 387 | IGUIElement guiElement = mock(IGUIElement.class);
|
---|
| 388 |
|
---|
| 389 | // Check if mouse events stay where they are
|
---|
| 390 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
|
---|
[946] | 391 | input.add(new Event(new MouseButtonDown(Button.LEFT, 0, 0), guiElement));
|
---|
| 392 | input.add(new Event(new MouseButtonUp(Button.LEFT, 0, 0), guiElement));
|
---|
| 393 | input.add(new Event(new MouseClick(Button.LEFT, 0, 0), guiElement));
|
---|
[765] | 394 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
|
---|
| 395 |
|
---|
| 396 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_A), guiElement));
|
---|
[946] | 397 | expected.add(new Event(new MouseButtonDown(Button.LEFT, 0, 0), guiElement));
|
---|
| 398 | expected.add(new Event(new MouseButtonUp(Button.LEFT, 0, 0), guiElement));
|
---|
| 399 | expected.add(new Event(new MouseClick(Button.LEFT, 0, 0), guiElement));
|
---|
[765] | 400 |
|
---|
| 401 | List<Event> output = sorter.sortKeyInteractions(input);
|
---|
| 402 |
|
---|
| 403 | assertEquals(expected, output);
|
---|
| 404 | }
|
---|
| 405 |
|
---|
| 406 | @Test
|
---|
| 407 | public void testSortKeyInteractions_13() {
|
---|
| 408 | List<Event> input = new LinkedList<Event>();
|
---|
| 409 | List<Event> expected = new LinkedList<Event>();
|
---|
| 410 |
|
---|
[852] | 411 | KeyInteractionCorrector sorter = new KeyInteractionCorrector(CleanupMode.REMOVAL);
|
---|
[765] | 412 |
|
---|
| 413 | IGUIElement guiElement = mock(IGUIElement.class);
|
---|
| 414 |
|
---|
| 415 | // Check if mouse events stay where they are
|
---|
| 416 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
|
---|
| 417 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
|
---|
| 418 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_B), guiElement));
|
---|
| 419 |
|
---|
| 420 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_A), guiElement));
|
---|
| 421 |
|
---|
| 422 | List<Event> output = sorter.sortKeyInteractions(input);
|
---|
| 423 |
|
---|
| 424 | assertEquals(expected, output);
|
---|
| 425 | }
|
---|
| 426 |
|
---|
| 427 | @Test
|
---|
| 428 | public void testSortKeyInteractions_14() {
|
---|
| 429 | List<Event> input = new LinkedList<Event>();
|
---|
| 430 | List<Event> expected = new LinkedList<Event>();
|
---|
| 431 |
|
---|
[852] | 432 | KeyInteractionCorrector sorter = new KeyInteractionCorrector(CleanupMode.ADDITION);
|
---|
[765] | 433 |
|
---|
| 434 | IGUIElement guiElement = mock(IGUIElement.class);
|
---|
| 435 |
|
---|
| 436 | // Check if mouse events stay where they are
|
---|
| 437 | input.add(new Event(new KeyPressed(VirtualKey.LETTER_A), guiElement));
|
---|
| 438 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_A), guiElement));
|
---|
| 439 | input.add(new Event(new KeyReleased(VirtualKey.LETTER_B), guiElement));
|
---|
| 440 |
|
---|
| 441 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_A), guiElement));
|
---|
| 442 | expected.add(new Event(new KeyTyped(VirtualKey.LETTER_B), guiElement));
|
---|
| 443 |
|
---|
| 444 | List<Event> output = sorter.sortKeyInteractions(input);
|
---|
| 445 |
|
---|
| 446 | assertEquals(expected, output);
|
---|
| 447 | }
|
---|
| 448 |
|
---|
| 449 | @BeforeClass
|
---|
| 450 | public static void setUpBeforeClass() {
|
---|
| 451 | Console.reset();
|
---|
| 452 | Console.getInstance().registerTraceListener(new TextConsole(Level.INFO));
|
---|
| 453 | }
|
---|
[678] | 454 | }
|
---|