Index: trunk/autoquest-core-events-test/src/test/java/de/ugoe/cs/autoquest/eventcore/gui/MouseClickCondenserTest.java
===================================================================
--- trunk/autoquest-core-events-test/src/test/java/de/ugoe/cs/autoquest/eventcore/gui/MouseClickCondenserTest.java	(revision 1025)
+++ trunk/autoquest-core-events-test/src/test/java/de/ugoe/cs/autoquest/eventcore/gui/MouseClickCondenserTest.java	(revision 1042)
@@ -161,18 +161,18 @@
 
         simulateEvent(new MouseButtonDown(leftBtn, 0, 0), element1);
-        simulateEvent(new MouseButtonUp(leftBtn, 1, 0), element1);
+        simulateEvent(new MouseButtonUp(leftBtn, 5, 0), element1);
         assertCondensedMouseClicks("drag left elem1");
 
         simulateEvent(new MouseButtonDown(leftBtn, 0, 0), element1);
-        simulateEvent(new MouseButtonUp(leftBtn, 1, 1), element1);
+        simulateEvent(new MouseButtonUp(leftBtn, 5, 5), element1);
         assertCondensedMouseClicks("drag left elem1", "drag left elem1");
 
         simulateEvent(new MouseButtonDown(leftBtn, 0, 0), element1);
-        simulateEvent(new MouseButtonUp(leftBtn, 0, 1), element1);
+        simulateEvent(new MouseButtonUp(leftBtn, 0, 5), element1);
         simulateEvent(new MouseClick(leftBtn, 0, 0), element1);
         assertCondensedMouseClicks("drag left elem1", "drag left elem1", "drag left elem1",
                                    "click left elem1");
 
-        simulateEvent(new MouseButtonDown(middleBtn, 1, 0), element1);
+        simulateEvent(new MouseButtonDown(middleBtn, 5, 0), element1);
         simulateEvent(new MouseButtonUp(middleBtn, 0, 0), element1);
         simulateEvent(new MouseClick(middleBtn, 0, 0), element1);
@@ -180,5 +180,5 @@
                                    "click left elem1", "", "", "click middle elem1");
 
-        simulateEvent(new MouseButtonDown(rightBtn, 0, 1), element1);
+        simulateEvent(new MouseButtonDown(rightBtn, 0, 5), element1);
         simulateEvent(new MouseButtonUp(rightBtn, 0, 0), element1);
         simulateEvent(new MouseClick(rightBtn, 0, 0), element1);
@@ -191,6 +191,67 @@
      *
      */
+    @Test
+    public void testDoubleClick() {
+        MouseButtonInteraction.Button leftBtn = MouseButtonInteraction.Button.LEFT;
+        MouseButtonInteraction.Button rightBtn = MouseButtonInteraction.Button.RIGHT;
+
+        IGUIElement element1 = new DummyGUIElement("elem1");
+
+        simulateEventWithTimestamp(new MouseClick(leftBtn, 0, 0), element1);
+        simulateEventWithTimestamp(new MouseClick(leftBtn, 0, 0), element1);
+        assertCondensedMouseClicks("dblclick left elem1");
+
+        simulateEventWithTimestamp(new MouseButtonDown(leftBtn, 5, 5), element1);
+        simulateEventWithTimestamp(new MouseButtonUp(leftBtn, 5, 5), element1);
+        simulateEventWithTimestamp(new MouseButtonDown(leftBtn, 5, 5), element1);
+        simulateEventWithTimestamp(new MouseButtonUp(leftBtn, 5, 5), element1);
+        assertCondensedMouseClicks("dblclick left elem1", "dblclick left elem1");
+
+        simulateEventWithTimestamp(new MouseClick(leftBtn, 0, 0), element1);
+        simulateEventWithTimestamp(new MouseClick(leftBtn, 5, 5), element1);
+        assertCondensedMouseClicks("dblclick left elem1", "dblclick left elem1",
+                                   "click left elem1", "click left elem1");
+
+        simulateEventWithTimestamp(new MouseButtonDown(leftBtn, 0, 0), element1);
+        simulateEventWithTimestamp(new MouseButtonUp(leftBtn, 0, 0), element1);
+        simulateEventWithTimestamp(new MouseButtonDown(leftBtn, 5, 5), element1);
+        simulateEventWithTimestamp(new MouseButtonUp(leftBtn, 5, 5), element1);
+        assertCondensedMouseClicks("dblclick left elem1", "dblclick left elem1",
+                                   "click left elem1", "click left elem1",
+                                   "click left elem1", "click left elem1");
+
+        simulateEventWithTimestamp(new MouseClick(rightBtn, 0, 0), element1);
+        simulateEventWithTimestamp(new MouseClick(rightBtn, 5, 5), element1);
+        assertCondensedMouseClicks("dblclick left elem1", "dblclick left elem1",
+                                   "click left elem1", "click left elem1",
+                                   "click left elem1", "click left elem1",
+                                   "click right elem1", "click right elem1");
+
+        simulateEventWithTimestamp(new MouseButtonDown(rightBtn, 0, 0), element1);
+        simulateEventWithTimestamp(new MouseButtonUp(rightBtn, 0, 0), element1);
+        simulateEventWithTimestamp(new MouseButtonDown(rightBtn, 5, 5), element1);
+        simulateEventWithTimestamp(new MouseButtonUp(rightBtn, 5, 5), element1);
+        assertCondensedMouseClicks("dblclick left elem1", "dblclick left elem1",
+                                   "click left elem1", "click left elem1",
+                                   "click left elem1", "click left elem1",
+                                   "click right elem1", "click right elem1",
+                                   "click right elem1", "click right elem1");
+
+    }
+
+    /**
+     *
+     */
     private void simulateEvent(IEventType eventType, IGUIElement guiElement) {
         events.add(new Event(eventType, guiElement));
+    }
+
+    /**
+     *
+     */
+    private void simulateEventWithTimestamp(IEventType eventType, IGUIElement guiElement) {
+        Event event = new Event(eventType, guiElement);
+        event.setTimestamp(System.currentTimeMillis());
+        events.add(event);
     }
 
@@ -214,4 +275,7 @@
                     assertTrue(result.get(i).getType() instanceof MouseClick);
                 }
+                else if ("dblclick".equals(parts[0])) {
+                    assertTrue(result.get(i).getType() instanceof MouseDoubleClick);
+                }
                 else if ("drag".equals(parts[0])) {
                     assertTrue(result.get(i).getType() instanceof MouseDragAndDrop);
