Author: allain.lalonde
Date: Sun Jul 19 09:01:04 2009
New Revision: 519
Added:
piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/event/MockPBasicInputEventHandler.java
piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/event/PBasicInputEventListenerTest.java
Modified:
piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/PiccoloAsserts.java
Log:
Added tests for PBasicInputEventHandler
Modified:
piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/PiccoloAsserts.java
==============================================================================
---
piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/PiccoloAsserts.java
(original)
+++
piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/PiccoloAsserts.java
Sun Jul 19 09:01:04 2009
@@ -44,7 +44,7 @@
public final class PiccoloAsserts {
private PiccoloAsserts() {
// Nothing to do
- }
+ }
public static final void assertEquals(PBounds expected, PBounds
actual, double errorRate) {
assertEquals("Expected " + expected + " but was " + actual,
expected, actual, errorRate);
@@ -57,12 +57,19 @@
Assert.assertEquals(message, expected.getHeight(),
actual.getHeight(), errorRate);
}
- public static void assertEquals(PDimension expected, Dimension2D
actual, double errorRate) {
+ public static void assertEquals(PDimension expected, Dimension2D
actual, double errorRate) {
assertEquals("Expected " + expected + " but was " + actual,
expected, actual, errorRate);
}
-
- public static void assertEquals(String message, PDimension expected,
Dimension2D actual, double errorRate) {
+
+ public static void assertEquals(String message, PDimension expected,
Dimension2D actual, double errorRate) {
Assert.assertEquals(message, expected.getWidth(),
actual.getWidth(), errorRate);
Assert.assertEquals(message, expected.getHeight(),
actual.getHeight(), errorRate);
+ }
+
+ public static void assertEquals(String[] expected, String[] actual) {
+ Assert.assertEquals("arrays are not same size", expected.length,
actual.length);
+ for (int i = 0; i < expected.length; i++) {
+ Assert.assertEquals(expected[i], expected[i]);
+ }
}
}
Added:
piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/event/MockPBasicInputEventHandler.java
==============================================================================
--- (empty file)
+++
piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/event/MockPBasicInputEventHandler.java
Sun Jul 19 09:01:04 2009
@@ -0,0 +1,85 @@
+package edu.umd.cs.piccolo.event;
+
+import java.util.ArrayList;
+
+public class MockPBasicInputEventHandler extends PBasicInputEventHandler {
+ private ArrayList methodCalls = new ArrayList();
+
+ public String[] getMethodCalls() {
+ String[] result = new String[methodCalls.size()];
+ for (int i=0; i<methodCalls.size(); i++) {
+ result[i] = (String)methodCalls.get(i);
+ }
+ return result;
+ }
+
+ public void keyboardFocusGained(PInputEvent event) {
+ methodCalls.add("keyboardFocusGained");
+ super.keyboardFocusGained(event);
+ }
+
+ public void keyboardFocusLost(PInputEvent event) {
+ methodCalls.add("keyboardFocusLost");
+ super.keyboardFocusLost(event);
+ }
+
+ public void keyPressed(PInputEvent event) {
+ methodCalls.add("keyPressed");
+ super.keyPressed(event);
+ }
+
+ public void keyReleased(PInputEvent event) {
+ methodCalls.add("keyReleased");
+ super.keyReleased(event);
+ }
+
+ public void keyTyped(PInputEvent event) {
+ methodCalls.add("keyTyped");
+ super.keyTyped(event);
+ }
+
+ public void mouseClicked(PInputEvent event) {
+ methodCalls.add("mouseClicked");
+ super.mouseClicked(event);
+ }
+
+ public void mouseDragged(PInputEvent event) {
+ methodCalls.add("mouseDragged");
+ super.mouseDragged(event);
+ }
+
+ public void mouseEntered(PInputEvent event) {
+ methodCalls.add("mouseEntered");
+ super.mouseEntered(event);
+ }
+
+ public void mouseExited(PInputEvent event) {
+ methodCalls.add("mouseExited");
+ super.mouseExited(event);
+ }
+
+ public void mouseMoved(PInputEvent event) {
+ methodCalls.add("mouseMoved");
+ super.mouseMoved(event);
+ }
+
+ public void mousePressed(PInputEvent event) {
+ methodCalls.add("mousePressed");
+ super.mousePressed(event);
+ }
+
+ public void mouseReleased(PInputEvent event) {
+ methodCalls.add("mouseReleased");
+ super.mouseReleased(event);
+ }
+
+ public void mouseWheelRotated(PInputEvent event) {
+ methodCalls.add("mouseReleased");
+ super.mouseWheelRotated(event);
+ }
+
+ public void mouseWheelRotatedByBlock(PInputEvent event) {
+ methodCalls.add("mouseWheelRotatedByBlock");
+ super.mouseWheelRotatedByBlock(event);
+ }
+}
Added:
piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/event/PBasicInputEventListenerTest.java
==============================================================================
--- (empty file)
+++
piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/event/PBasicInputEventListenerTest.java
Sun Jul 19 09:01:04 2009
@@ -0,0 +1,60 @@
+package edu.umd.cs.piccolo.event;
+
+import java.awt.event.FocusEvent;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseWheelEvent;
+
+import junit.framework.TestCase;
+import edu.umd.cs.piccolo.PCanvas;
+import edu.umd.cs.piccolo.PiccoloAsserts;
+
+public class PBasicInputEventListenerTest extends TestCase {
+ private PBasicInputEventHandler listener;
+ private MockPBasicInputEventHandler mockListener;
+
+ public void setUp() {
+ listener = new PBasicInputEventHandler();
+ }
+
+ public void testSetEventFilterIsPersisted() {
+ PInputEventFilter filter = new PInputEventFilter();
+ listener.setEventFilter(filter);
+ assertSame(filter, listener.getEventFilter());
+ }
+
+ public void testAcceptsEventDelegatesToFilter() {
+ PInputEventFilter filter = new PInputEventFilter();
+ listener.setEventFilter(filter);
+ PInputEvent event = buildInputEvent();
+ assertTrue(listener.acceptsEvent(event, MouseEvent.MOUSE_CLICKED));
+ filter.rejectAllEventTypes();
+ assertFalse(listener.acceptsEvent(event,
MouseEvent.MOUSE_CLICKED));
+ }
+
+ public void testProcessEventDelegatesToSubClassMethodsBasedOnType() {
+ PInputEvent event = buildInputEvent();
+
+ mockListener = new MockPBasicInputEventHandler();
+ int[] eventTypes = new int[] { KeyEvent.KEY_PRESSED,
KeyEvent.KEY_RELEASED, KeyEvent.KEY_TYPED,
+ MouseEvent.MOUSE_RELEASED, MouseEvent.MOUSE_CLICKED,
MouseEvent.MOUSE_DRAGGED,
+ MouseEvent.MOUSE_ENTERED, MouseEvent.MOUSE_EXITED,
MouseEvent.MOUSE_MOVED, MouseEvent.MOUSE_PRESSED,
+ MouseWheelEvent.WHEEL_UNIT_SCROLL,
MouseWheelEvent.WHEEL_BLOCK_SCROLL, FocusEvent.FOCUS_GAINED,
FocusEvent.FOCUS_LOST };
+
+ for (int i = 0; i < eventTypes.length; i++) {
+ mockListener.processEvent(event, eventTypes[i]);
+ }
+
+ PiccoloAsserts.assertEquals(new String[]
{ "keyPressed", "keyReleased", "keyTyped", "mouseReleased",
+ "mouseClicked", "mouseDragged", "mouseEntered", "mouseExited",
"mouseMoved", "mousePressed",
+ "mouseWheelRotated", "mouseWheelRotatedByBlock",
"focusGained", "focusLost"
},
mockListener.getMethodCalls());
+ }
+
+ private PInputEvent buildInputEvent() {
+ PCanvas canvas = new PCanvas();
+ MouseEvent mouseEvent = new MouseEvent(canvas, 1,
System.currentTimeMillis(), 0, 0, 0, 1, false);
+ PInputEvent event = new
PInputEvent(canvas.getRoot().getDefaultInputManager(), mouseEvent,
canvas.getCamera());
+ return event;
+ }
+
+}
--~--~---------~--~----~------------~-------~--~----~
Piccolo2D Developers Group: http://groups.google.com/group/piccolo2d-dev?hl=en
-~----------~----~----~----~------~----~------~--~---