source: trunk/autoquest-core-events-test/src/test/java/de/ugoe/cs/autoquest/eventcore/gui/MouseClickCondenserTest.java @ 927

Last change on this file since 927 was 927, checked in by sherbold, 12 years ago
  • added copyright under the Apache License, Version 2.0
File size: 5.2 KB
Line 
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.
14
15package de.ugoe.cs.autoquest.eventcore.gui;
16
17import static org.junit.Assert.assertEquals;
18import static org.junit.Assert.assertFalse;
19import static org.junit.Assert.assertTrue;
20
21import java.util.ArrayList;
22import java.util.List;
23
24import org.junit.Test;
25
26import de.ugoe.cs.autoquest.eventcore.Event;
27import de.ugoe.cs.autoquest.eventcore.IEventType;
28import de.ugoe.cs.autoquest.eventcore.gui.MouseButtonDown;
29import de.ugoe.cs.autoquest.eventcore.gui.MouseButtonInteraction;
30import de.ugoe.cs.autoquest.eventcore.gui.MouseButtonUp;
31import de.ugoe.cs.autoquest.eventcore.gui.MouseClick;
32import de.ugoe.cs.autoquest.eventcore.gui.MouseClickCondenser;
33import de.ugoe.cs.autoquest.eventcore.guimodel.IGUIElement;
34import de.ugoe.cs.autoquest.test.DummyGUIElement;
35import de.ugoe.cs.autoquest.test.DummyInteraction;
36
37/**
38 * @author Patrick Harms
39 */
40public class MouseClickCondenserTest {
41
42    /** */
43    private List<Event> events = new ArrayList<Event>();
44
45    /**
46     *
47     */
48    @Test
49    public void testMouseClickInOneSequenceElement() {
50        MouseButtonInteraction.Button leftBtn = MouseButtonInteraction.Button.LEFT;
51        MouseButtonInteraction.Button middleBtn = MouseButtonInteraction.Button.MIDDLE;
52        MouseButtonInteraction.Button rightBtn = MouseButtonInteraction.Button.RIGHT;
53
54        IGUIElement element1 = new DummyGUIElement("elem1");
55        IGUIElement element2 = new DummyGUIElement("elem2");
56
57        simulateEvent(new MouseButtonDown(leftBtn), element1);
58        simulateEvent(new MouseButtonUp(leftBtn), element1);
59        simulateEvent(new MouseClick(leftBtn), element1);
60        assertCondensedMouseClicks("elem1");
61
62        simulateEvent(new DummyInteraction("bla", 1), element1);
63        simulateEvent(new DummyInteraction("bli", 1), element1);
64        simulateEvent(new MouseButtonDown(middleBtn), element1);
65        simulateEvent(new MouseButtonUp(middleBtn), element1);
66        simulateEvent(new MouseClick(middleBtn), element1);
67        simulateEvent(new DummyInteraction("blo", 1), element1);
68        simulateEvent(new DummyInteraction("blu", 1), element1);
69        assertCondensedMouseClicks("elem1", "", "", "elem1", "", "");
70
71        simulateEvent(new DummyInteraction("bla", 1), element2);
72        simulateEvent(new DummyInteraction("bli", 1), element2);
73        simulateEvent(new MouseButtonDown(rightBtn), element2);
74        simulateEvent(new MouseButtonUp(rightBtn), element2);
75        simulateEvent(new MouseClick(rightBtn), element2);
76        simulateEvent(new DummyInteraction("blo", 1), element2);
77        simulateEvent(new DummyInteraction("blu", 1), element2);
78        assertCondensedMouseClicks("elem1", "", "", "elem1", "", "", "", "", "elem2", "", "");
79
80        simulateEvent(new MouseButtonDown(leftBtn), element1);
81        simulateEvent(new MouseButtonUp(leftBtn), element1);
82        simulateEvent(new MouseClick(leftBtn), element2);
83        assertCondensedMouseClicks("elem1", "", "", "elem1", "", "", "", "", "elem2", "", "",
84                                   "", "", "elem2");
85
86        simulateEvent(new MouseButtonDown(middleBtn), element1);
87        simulateEvent(new MouseButtonUp(middleBtn), element1);
88        simulateEvent(new MouseClick(rightBtn), element1);
89        simulateEvent(new DummyInteraction("bla", 1), element2);
90        assertCondensedMouseClicks("elem1", "", "", "elem1", "", "", "", "", "elem2", "", "",
91                                   "", "", "elem2", "", "", "elem1", "");
92    }
93
94    /**
95     *
96     */
97    private void simulateEvent(IEventType eventType, IGUIElement guiElement) {
98        events.add(new Event(eventType, guiElement));
99    }
100
101    /**
102    *
103    */
104   private void assertCondensedMouseClicks(String... clickedTargets) {
105       MouseClickCondenser condenser = new MouseClickCondenser();
106       List<Event> result = condenser.condenseMouseClicks(events);
107       
108       assertEquals(clickedTargets.length, result.size());
109       
110       for (int i = 0; i < clickedTargets.length; i++) {
111           String clickedTarget = clickedTargets[i];
112           
113           if ((clickedTarget != null) && (!"".equals(clickedTarget))) {
114               assertTrue(result.get(i).getType() instanceof MouseClick);
115               assertTrue(result.get(i).getTarget() instanceof DummyGUIElement);
116               assertEquals
117                 (clickedTarget, ((DummyGUIElement) result.get(i).getTarget()).getStringIdentifier());
118           }
119           else {
120               assertFalse(result.get(i).getType() instanceof MouseClick);
121           }
122       }
123   }
124}
Note: See TracBrowser for help on using the repository browser.