Author: allain.lalonde
Date: Mon Jul 13 12:18:14 2009
New Revision: 454

Added:
     
piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/PCanvasTest.java
Modified:
    piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/PCanvas.java

Log:
Added some move tests to PCanvas

Modified:  
piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/PCanvas.java
==============================================================================
--- piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/PCanvas.java     
 
(original)
+++ piccolo2d.java/trunk/core/src/main/java/edu/umd/cs/piccolo/PCanvas.java     
 
Mon Jul 13 12:18:14 2009
@@ -336,7 +336,7 @@

      // ****************************************************************
      // Code to manage connection to Swing. There appears to be a bug in
-    // swing where it will occasionally send to many mouse pressed or mouse
+    // swing where it will occasionally send too many mouse pressed or  
mouse
      // released events. Below we attempt to filter out those cases before
      // they get delivered to the Piccolo framework.
      // ****************************************************************
@@ -346,7 +346,7 @@
      private boolean isButton3Pressed;

      /**
-     * Overrride setEnabled to install/remove canvas input sources as  
needed.
+     * Override setEnabled to install/remove canvas input sources as  
needed.
       */
      public void setEnabled(boolean enabled) {
          super.setEnabled(enabled);

Added:  
piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/PCanvasTest.java
==============================================================================
--- (empty file)
+++  
piccolo2d.java/trunk/core/src/test/java/edu/umd/cs/piccolo/PCanvasTest.java     
 
Mon Jul 13 12:18:14 2009
@@ -0,0 +1,103 @@
+package edu.umd.cs.piccolo;
+
+import java.awt.Cursor;
+
+import junit.framework.TestCase;
+import edu.umd.cs.piccolo.util.PBounds;
+
+public class PCanvasTest extends TestCase {
+       private PCanvas canvas;
+
+       public void setUp() {
+               canvas = new PCanvas();
+       }
+       
+       public void testDefaultPanHandlerIsNotNull() {
+               assertNotNull(canvas.getPanEventHandler());
+       }
+       
+       public void testGetInteractingReturnsFalseByDefault() {
+               assertFalse(canvas.getInteracting());
+       }
+
+       public void testGetAnimatingReturnsFalseByDefault() {
+               assertFalse(canvas.getAnimating());
+       }
+       
+       public void testSetInteractingPersists() {
+               canvas.setInteracting(true);
+               assertTrue(canvas.getInteracting());
+       }
+       
+       public void testSetInteractingFiresChangeEvent() {
+               MockPropertyChangeListener mockListener = new  
MockPropertyChangeListener();
+                
canvas.addPropertyChangeListener(PCanvas.INTERATING_CHANGED_NOTIFICATION,  
mockListener);
+               canvas.setInteracting(true);
+               assertEquals(1, mockListener.getPropertyChangeCount());
+       }
+       
+       /**
+        * This should work, but for some reason there's no  
getDefaultRenderQuality();
+        */
+       /*public void testDefaultRenderQualityIsHigh() {
+               fail("Pop cursor shouldn't fail on an empty stack");
+               //assertEquals(PPaintContext.HIGH_QUALITY_RENDERING,  
canvas.getDefaultRenderQuality());              
+       }*/
+       
+       /**
+        * This should work, but for some reason there's no  
getAnimatingRenderQuality();
+        */
+       /*public void testDefaultAnimatingRenderQualityIsLow() {
+               fail("Missing getter method");
+               //assertEquals(PPaintContext.LOW_QUALITY_RENDERING,  
canvas.getAnimatingRenderQuality());
+       }*/
+       
+       /**
+        * This should work, but for some reason there's no  
getAnimatingRenderQuality();
+        */
+       /*public void testDefaultInteractingRenderQualityIsLow() {
+               fail("Missing getter method");
+               //assertEquals(PPaintContext.LOW_QUALITY_RENDERING,  
canvas.getInteractingRenderQuality());
+       }*/
+
+       public void testDefaultZoomHandlerIsNotNull() {         
+               assertNotNull(canvas.getZoomEventHandler());
+       }
+       
+       public void testCanvasLayerIsNotNullByDefault() {
+               assertNotNull(canvas.getLayer());
+       }
+       
+       public void testCursorStackWorksAsExpected() {
+               Cursor moveCursor= 
Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR);
+               Cursor handCursor = 
Cursor.getPredefinedCursor(Cursor.HAND_CURSOR);
+               Cursor crosshairCursor =  
Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR);
+               
+               canvas.pushCursor(moveCursor);
+               canvas.pushCursor(handCursor);
+               canvas.pushCursor(crosshairCursor);
+               
+               assertEquals(crosshairCursor, canvas.getCursor());
+               canvas.popCursor();
+               assertEquals(handCursor, canvas.getCursor());
+               canvas.popCursor();
+               assertEquals(moveCursor, canvas.getCursor());                   
        
+       }
+       
+       // I think it should behave like this, but that's just me @allain
+       /*public void testPoppingEmptyCursorStackShouldDoNothing() {
+               try {
+                       canvas.popCursor();
+               } catch (IndexOutOfBoundsException e) {
+                       fail("Pop cursor shouldn't fail on an empty stack");
+               }
+               assertEquals(Cursor.getDefaultCursor(), canvas.getCursor());
+       }*/
+       
+       public void testSettingCanvasBoundsAffectsCameraBounds() {
+               canvas.setBounds(0, 0, 100, 100);
+               assertEquals(new PBounds(0, 0, 100, 100),  
canvas.getCamera().getBounds());
+       }
+       
+       
+}

--~--~---------~--~----~------------~-------~--~----~
Piccolo2D Developers Group: http://groups.google.com/group/piccolo2d-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to