This is the mail archive of the mauve-discuss@sourceware.org mailing list for the Mauve project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

new tests


Hi,

I committed this patch to add some new tests and extend the MouseEvent
modifiers test.

Tom

2005-09-11  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/testlet/java/awt/Window/pack1.java: New test.
	* gnu/testlet/java/awt/event/MouseEvent/modifiersEx.java: Cover
	all modifiers.
	* gnu/testlet/java/awt/event/MouseEvent/modifiers.java: New test.

Index: gnu/testlet/java/awt/Window/pack1.java
===================================================================
RCS file: gnu/testlet/java/awt/Window/pack1.java
diff -N gnu/testlet/java/awt/Window/pack1.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/java/awt/Window/pack1.java	11 Sep 2005 22:33:48 -0000
@@ -0,0 +1,137 @@
+// Tags: GUI JDK1.0
+
+// Copyright (C) 2005 Red Hat
+
+// This file is part of Mauve.
+
+// Mauve is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// Mauve is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Mauve; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+
+package gnu.testlet.java.awt.Window;
+
+import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+import java.awt.*;
+import java.awt.event.*;
+
+/**
+ * Check that Window.pack gives children the right sizes.
+ */
+public class pack1 implements Testlet
+{
+  Color bg = new Color (243, 133, 89);
+  Color border = new Color (255, 0, 0);
+
+  class pack1Frame extends Frame
+  {
+    public pack1Frame ()
+    {
+      super ();
+    }
+  }
+
+  class pack1Canvas extends Canvas
+  {
+    public pack1Canvas ()
+    {
+      super ();
+      setBackground (bg);
+    }
+
+    public void paint (Graphics g)
+    {
+      Rectangle bounds = new Rectangle (0, 0,
+					this.getSize ().width,
+					this.getSize ().height);
+      g.setColor (border);
+      g.drawRect (bounds.x, bounds.y, bounds.width - 1, bounds.height - 1);
+    }
+  }
+
+  public void checkColor (TestHarness harness, Color c)
+  {
+    harness.check (c.getRed () == border.getRed ()
+		   && c.getGreen () == border.getGreen ()
+		   && c.getBlue () == border.getBlue ());
+  }
+
+  public void test (TestHarness harness)
+  {
+    Robot r = harness.createRobot ();
+    Color c;
+    int x = 100;
+    int y = 100;
+    int width = 100;
+    int height = 100;
+    Insets i;
+
+    pack1Frame f = new pack1Frame ();
+
+    f.setLocation (x, y);
+    f.setSize (width, height);
+
+    f.add (new pack1Canvas ());
+
+    r.setAutoDelay (100);
+    r.setAutoWaitForIdle (true);
+
+    f.show ();
+
+    r.waitForIdle ();
+    r.delay (100);
+
+    i = f.getInsets ();
+
+    int top_y = y + i.top;
+    int bottom_y = y + height - i.bottom - 1;
+    int left_x = x + i.left;
+    int right_x = x + width - i.right - 1;
+
+    // top-left-left
+    c = r.getPixelColor (left_x, top_y + 1);
+    checkColor (harness, c);
+
+    // top-left-top
+    c = r.getPixelColor (left_x + 1, top_y);
+    checkColor (harness, c);
+
+    // top-right-right
+    c = r.getPixelColor (right_x, top_y + 1);
+    checkColor (harness, c);
+
+    // top-right-top
+    c = r.getPixelColor (right_x - 1, top_y);
+    checkColor (harness, c);
+
+    // bottom-left-left
+    c = r.getPixelColor (left_x, bottom_y - 1);
+    checkColor (harness, c);
+
+    // bottom-left-bottom
+    c = r.getPixelColor (left_x + 1, bottom_y);
+    checkColor (harness, c);
+
+    // bottom-right-right
+    c = r.getPixelColor (right_x, bottom_y - 1);
+    checkColor (harness, c);
+
+    // bottom-right-bottom
+    c = r.getPixelColor (right_x - 1, bottom_y);
+    checkColor (harness, c);
+
+    r.delay (4000);
+  }
+}
Index: gnu/testlet/java/awt/event/MouseEvent/modifiers.java
===================================================================
RCS file: gnu/testlet/java/awt/event/MouseEvent/modifiers.java
diff -N gnu/testlet/java/awt/event/MouseEvent/modifiers.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/java/awt/event/MouseEvent/modifiers.java	11 Sep 2005 22:33:48 -0000
@@ -0,0 +1,280 @@
+// Tags: JDK1.4
+
+// Copyright (C) 2005 Roman Kennke <roman@kennke.org>
+
+// This file is part of Mauve.
+
+// Mauve is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// Mauve is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Mauve; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+
+package gnu.testlet.java.awt.event.MouseEvent;
+
+import gnu.testlet.Testlet;
+import gnu.testlet.TestHarness;
+
+import java.awt.Frame;
+import java.awt.Point;
+import java.awt.Robot;
+import java.awt.event.InputEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.awt.event.KeyEvent;
+
+/**
+ * Checks if a click does trigger the correct getModifiers() flags.
+ * This doesn't test the ALT, META or ALT_GRAPH modifiers as their
+ * behaviour is window-manager specific.  Some window managers
+ * intercept some key-mouse combinations, e.g. ALT-BUTTON1 means
+ * "Start dragging this window" in Metacity.  Also note that xmodmap
+ * settings will affect Java-generated modifier masks.
+ *
+ * @author Roman Kennke
+ */
+public class modifiers implements Testlet
+{
+  int mask;
+  Robot robot;
+  TestHarness h;
+  // set this to true to test ALT, META and ALT_GRAPH modifiers
+  boolean test_alt;
+
+  public void checkMask (int keycode[], int buttonmask, int keymask)
+  {
+    int i;
+    for (i = 0; i < keycode.length; i++)
+      robot.keyPress (keycode[i]);
+
+    robot.mousePress(buttonmask);
+    h.check(mask, buttonmask | keymask, "mousePressed: " + mask);
+    mask = 0;
+    robot.mouseRelease(buttonmask);
+    h.check(mask, buttonmask | keymask, "mouseReleased: " + mask);
+    mask = 0;
+
+    for (i = 0; i < keycode.length; i++)
+      robot.keyRelease (keycode[i]);
+  }
+
+  public void checkAllMaskCombinations (int buttonmask)
+  {
+    // each of the 5 key masks can be on or off, giving 32 possible
+    // combinations.
+
+    // no modifiers
+    checkMask (new int[] {},
+	       buttonmask,
+	       0);
+
+    // one modifier
+    // SHIFT_MASK
+    checkMask (new int[] { KeyEvent.VK_SHIFT },
+	       buttonmask,
+	       InputEvent.SHIFT_MASK);
+
+    // CTRL_MASK
+    checkMask (new int[] { KeyEvent.VK_CONTROL },
+	       buttonmask,
+	       InputEvent.CTRL_MASK);
+
+    if (test_alt)
+      {
+	// META_MASK
+	checkMask (new int[] { KeyEvent.VK_META },
+		   buttonmask,
+		   InputEvent.META_MASK);
+
+	// ALT_MASK
+	checkMask (new int[] { KeyEvent.VK_ALT },
+		   buttonmask,
+		   InputEvent.ALT_MASK);
+
+	// ALT_GRAPH_MASK
+	checkMask (new int[] { KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.ALT_GRAPH_MASK);
+      }
+
+    // two modifiers
+
+    // SHIFT_MASK | CTRL_MASK
+    checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL },
+	       buttonmask,
+	       InputEvent.SHIFT_MASK | InputEvent.CTRL_MASK);
+
+    if (test_alt)
+      {
+	// SHIFT_MASK | META_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_META },
+		   buttonmask,
+		   InputEvent.SHIFT_MASK | InputEvent.META_MASK);
+
+	// SHIFT_MASK | ALT_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_ALT },
+		   buttonmask,
+		   InputEvent.SHIFT_MASK | InputEvent.ALT_MASK);
+
+	// SHIFT_MASK | ALT_GRAPH_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.SHIFT_MASK | InputEvent.ALT_GRAPH_MASK);
+
+	// CTRL_MASK | META_MASK
+	checkMask (new int[] { KeyEvent.VK_CONTROL, KeyEvent.VK_META },
+		   buttonmask,
+		   InputEvent.CTRL_MASK | InputEvent.META_MASK);
+
+	// CTRL_MASK | ALT_MASK
+	checkMask (new int[] { KeyEvent.VK_CONTROL, KeyEvent.VK_ALT },
+		   buttonmask,
+		   InputEvent.CTRL_MASK | InputEvent.ALT_MASK);
+
+	// CTRL_MASK | ALT_GRAPH_MASK
+	checkMask (new int[] { KeyEvent.VK_CONTROL, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.CTRL_MASK | InputEvent.ALT_GRAPH_MASK);
+
+	// META_MASK | ALT_MASK
+	checkMask (new int[] { KeyEvent.VK_META, KeyEvent.VK_ALT },
+		   buttonmask,
+		   InputEvent.META_MASK | InputEvent.ALT_MASK);
+
+	// META_MASK | ALT_GRAPH_MASK
+	checkMask (new int[] { KeyEvent.VK_META, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.META_MASK | InputEvent.ALT_GRAPH_MASK);
+
+	// ALT_MASK | ALT_GRAPH_MASK
+	checkMask (new int[] { KeyEvent.VK_ALT, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.ALT_MASK | InputEvent.ALT_GRAPH_MASK);
+
+	// three modifiers
+
+	// SHIFT_MASK | CTRL_MASK | META_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL, KeyEvent.VK_META },
+		   buttonmask,
+		   InputEvent.SHIFT_MASK | InputEvent.CTRL_MASK | InputEvent.META_MASK);
+
+	// SHIFT_MASK | CTRL_MASK | ALT_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL, KeyEvent.VK_ALT },
+		   buttonmask,
+		   InputEvent.SHIFT_MASK | InputEvent.CTRL_MASK | InputEvent.ALT_MASK);
+
+	// SHIFT_MASK | CTRL_MASK | ALT_GRAPH_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.SHIFT_MASK | InputEvent.CTRL_MASK | InputEvent.ALT_GRAPH_MASK);
+
+	// SHIFT_MASK | META_MASK | ALT_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_META, KeyEvent.VK_ALT },
+		   buttonmask,
+		   InputEvent.SHIFT_MASK | InputEvent.META_MASK | InputEvent.ALT_MASK);
+
+	// SHIFT_MASK | META_MASK | ALT_GRAPH_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.SHIFT_MASK | InputEvent.CTRL_MASK | InputEvent.ALT_GRAPH_MASK);
+
+	// SHIFT_MASK | ALT_MASK | ALT_GRAPH_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_ALT, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.SHIFT_MASK | InputEvent.ALT_MASK | InputEvent.ALT_GRAPH_MASK);
+
+	// CTRL_MASK | META_MASK | ALT_MASK
+	checkMask (new int[] { KeyEvent.VK_CONTROL, KeyEvent.VK_META, KeyEvent.VK_ALT },
+		   buttonmask,
+		   InputEvent.CTRL_MASK | InputEvent.META_MASK | InputEvent.ALT_MASK);
+
+	// CTRL_MASK | META_MASK | ALT_GRAPH_MASK
+	checkMask (new int[] { KeyEvent.VK_CONTROL, KeyEvent.VK_META, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.CTRL_MASK | InputEvent.META_MASK | InputEvent.ALT_GRAPH_MASK);
+
+	// CTRL_MASK | ALT_MASK | ALT_GRAPH_MASK
+	checkMask (new int[] { KeyEvent.VK_CONTROL, KeyEvent.VK_ALT, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.CTRL_MASK | InputEvent.ALT_MASK | InputEvent.ALT_GRAPH_MASK);
+
+	// META_MASK | ALT_MASK | ALT_GRAPH_MASK
+	checkMask (new int[] { KeyEvent.VK_META, KeyEvent.VK_ALT, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.META_MASK | InputEvent.ALT_MASK | InputEvent.ALT_GRAPH_MASK);
+
+	// four modifiers
+
+	// SHIFT_MASK | CTRL_MASK | META_MASK | ALT_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL, KeyEvent.VK_META, KeyEvent.VK_ALT },
+		   buttonmask,
+		   InputEvent.SHIFT_MASK | InputEvent.CTRL_MASK | InputEvent.META_MASK | InputEvent.ALT_MASK);
+
+	// SHIFT_MASK | CTRL_MASK | META_MASK | ALT_GRAPH_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL, KeyEvent.VK_META, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.SHIFT_MASK | InputEvent.CTRL_MASK | InputEvent.META_MASK | InputEvent.ALT_GRAPH_MASK);
+
+	// SHIFT_MASK | CTRL_MASK | ALT_MASK | ALT_GRAPH_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL, KeyEvent.VK_ALT, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.SHIFT_MASK | InputEvent.CTRL_MASK | InputEvent.ALT_MASK | InputEvent.ALT_GRAPH_MASK);
+
+	// SHIFT_MASK | META_MASK | ALT_MASK | ALT_GRAPH_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_META, KeyEvent.VK_ALT, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.SHIFT_MASK | InputEvent.META_MASK | InputEvent.ALT_MASK | InputEvent.ALT_GRAPH_MASK);
+
+	// CTRL_MASK | META_MASK | ALT_MASK | ALT_GRAPH_MASK
+	checkMask (new int[] { KeyEvent.VK_CONTROL, KeyEvent.VK_META, KeyEvent.VK_ALT, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.CTRL_MASK | InputEvent.META_MASK | InputEvent.ALT_MASK | InputEvent.ALT_GRAPH_MASK);
+
+	// five modifiers
+
+	// SHIFT_MASK | CTRL_MASK | META_MASK | ALT_MASK | ALT_GRAPH_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL, KeyEvent.VK_META, KeyEvent.VK_ALT, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.SHIFT_MASK | InputEvent.CTRL_MASK | InputEvent.META_MASK | InputEvent.ALT_MASK | InputEvent.ALT_GRAPH_MASK);
+      }
+  }
+
+  public void test(TestHarness h)
+  {
+    this.h = h;
+    Frame frame = new Frame();
+    MouseAdapter a = new MouseAdapter()
+      {
+        public void mousePressed(MouseEvent ev) 
+        {
+          mask = ev.getModifiers();
+        }
+        public void mouseReleased(MouseEvent ev) 
+        {
+          mask = ev.getModifiers();
+        }
+      };
+    frame.addMouseListener(a);
+    frame.setSize(100, 100);
+    frame.show();
+    Point loc = frame.getLocationOnScreen();
+    
+    robot = h.createRobot();
+    robot.setAutoWaitForIdle (true);
+
+    robot.mouseMove(loc.x + 50, loc.y + 50);
+
+    checkAllMaskCombinations (InputEvent.BUTTON1_MASK);
+    checkAllMaskCombinations (InputEvent.BUTTON2_MASK);
+    checkAllMaskCombinations (InputEvent.BUTTON3_MASK);
+  }
+}
Index: gnu/testlet/java/awt/event/MouseEvent/modifiersEx.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/java/awt/event/MouseEvent/modifiersEx.java,v
retrieving revision 1.1
diff -u -r1.1 modifiersEx.java
--- gnu/testlet/java/awt/event/MouseEvent/modifiersEx.java	25 Apr 2005 20:47:07 -0000	1.1
+++ gnu/testlet/java/awt/event/MouseEvent/modifiersEx.java	11 Sep 2005 22:33:48 -0000
@@ -30,20 +30,240 @@
 import java.awt.event.InputEvent;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
+import java.awt.event.KeyEvent;
 
 /**
- * Checks if a click does trigger the correct getModifiersEx() flags.
+ * Checks if a click does trigger the correct getModifiers() flags.
+ * This doesn't test the ALT, META or ALT_GRAPH modifiers as their
+ * behaviour is window-manager specific.  Some window managers
+ * intercept some key-mouse combinations, e.g. ALT-BUTTON1 means
+ * "Start dragging this window" in Metacity.  Also note that xmodmap
+ * settings will affect Java-generated modifier masks.
  *
  * @author Roman Kennke
  */
 public class modifiersEx implements Testlet
 {
   int mask;
-  
+  Robot robot;
+  TestHarness h;
+  // set this to true to test ALT, META and ALT_GRAPH modifiers
+  boolean test_alt;
+
+  public void checkMask (int keycode[], int buttonmask, int keymask)
+  {
+    int robot_button = 0;
+
+    if (buttonmask == InputEvent.BUTTON1_DOWN_MASK)
+      robot_button = InputEvent.BUTTON1_MASK;
+    else if (buttonmask == InputEvent.BUTTON2_DOWN_MASK)
+      robot_button = InputEvent.BUTTON2_MASK;
+    else if (buttonmask == InputEvent.BUTTON3_DOWN_MASK)
+      robot_button = InputEvent.BUTTON3_MASK;
+
+    int i;
+    for (i = 0; i < keycode.length; i++)
+      robot.keyPress (keycode[i]);
+
+    robot.mousePress(robot_button);
+    h.check(mask, buttonmask | keymask, "mousePressed: " + mask);
+    mask = 0;
+    robot.mouseRelease(robot_button);
+    // release event extended modifiers don't include button mask
+    h.check(mask, keymask, "mouseReleased: " + mask);
+    mask = 0;
+
+    for (i = 0; i < keycode.length; i++)
+      robot.keyRelease (keycode[i]);
+  }
+
+  public void checkAllMaskCombinations (int buttonmask)
+  {
+    // each of the 5 key masks can be on or off, giving 32 possible
+    // combinations.
+
+    // no modifiers
+    checkMask (new int[] {},
+	       buttonmask,
+	       0);
+
+    // one modifier
+    // SHIFT_DOWN_MASK
+    checkMask (new int[] { KeyEvent.VK_SHIFT },
+	       buttonmask,
+	       InputEvent.SHIFT_DOWN_MASK);
+
+    // CTRL_DOWN_MASK
+    checkMask (new int[] { KeyEvent.VK_CONTROL },
+	       buttonmask,
+	       InputEvent.CTRL_DOWN_MASK);
+
+    if (test_alt)
+      {
+	// META_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_META },
+		   buttonmask,
+		   InputEvent.META_DOWN_MASK);
+
+	// ALT_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_ALT },
+		   buttonmask,
+		   InputEvent.ALT_DOWN_MASK);
+
+	// ALT_GRAPH_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.ALT_GRAPH_DOWN_MASK);
+      }
+
+    // two modifiers
+
+    // SHIFT_DOWN_MASK | CTRL_DOWN_MASK
+    checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL },
+	       buttonmask,
+	       InputEvent.SHIFT_DOWN_MASK | InputEvent.CTRL_DOWN_MASK);
+
+    if (test_alt)
+      {
+	// SHIFT_DOWN_MASK | META_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_META },
+		   buttonmask,
+		   InputEvent.SHIFT_DOWN_MASK | InputEvent.META_DOWN_MASK);
+
+	// SHIFT_DOWN_MASK | ALT_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_ALT },
+		   buttonmask,
+		   InputEvent.SHIFT_DOWN_MASK | InputEvent.ALT_DOWN_MASK);
+
+	// SHIFT_DOWN_MASK | ALT_GRAPH_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.SHIFT_DOWN_MASK | InputEvent.ALT_GRAPH_DOWN_MASK);
+
+	// CTRL_DOWN_MASK | META_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_CONTROL, KeyEvent.VK_META },
+		   buttonmask,
+		   InputEvent.CTRL_DOWN_MASK | InputEvent.META_DOWN_MASK);
+
+	// CTRL_DOWN_MASK | ALT_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_CONTROL, KeyEvent.VK_ALT },
+		   buttonmask,
+		   InputEvent.CTRL_DOWN_MASK | InputEvent.ALT_DOWN_MASK);
+
+	// CTRL_DOWN_MASK | ALT_GRAPH_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_CONTROL, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.CTRL_DOWN_MASK | InputEvent.ALT_GRAPH_DOWN_MASK);
+
+	// META_DOWN_MASK | ALT_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_META, KeyEvent.VK_ALT },
+		   buttonmask,
+		   InputEvent.META_DOWN_MASK | InputEvent.ALT_DOWN_MASK);
+
+	// META_DOWN_MASK | ALT_GRAPH_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_META, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.META_DOWN_MASK | InputEvent.ALT_GRAPH_DOWN_MASK);
+
+	// ALT_DOWN_MASK | ALT_GRAPH_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_ALT, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.ALT_DOWN_MASK | InputEvent.ALT_GRAPH_DOWN_MASK);
+
+	// three modifiers
+
+	// SHIFT_DOWN_MASK | CTRL_DOWN_MASK | META_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL, KeyEvent.VK_META },
+		   buttonmask,
+		   InputEvent.SHIFT_DOWN_MASK | InputEvent.CTRL_DOWN_MASK | InputEvent.META_DOWN_MASK);
+
+	// SHIFT_DOWN_MASK | CTRL_DOWN_MASK | ALT_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL, KeyEvent.VK_ALT },
+		   buttonmask,
+		   InputEvent.SHIFT_DOWN_MASK | InputEvent.CTRL_DOWN_MASK | InputEvent.ALT_DOWN_MASK);
+
+	// SHIFT_DOWN_MASK | CTRL_DOWN_MASK | ALT_GRAPH_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.SHIFT_DOWN_MASK | InputEvent.CTRL_DOWN_MASK | InputEvent.ALT_GRAPH_DOWN_MASK);
+
+	// SHIFT_DOWN_MASK | META_DOWN_MASK | ALT_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_META, KeyEvent.VK_ALT },
+		   buttonmask,
+		   InputEvent.SHIFT_DOWN_MASK | InputEvent.META_DOWN_MASK | InputEvent.ALT_DOWN_MASK);
+
+	// SHIFT_DOWN_MASK | META_DOWN_MASK | ALT_GRAPH_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.SHIFT_DOWN_MASK | InputEvent.CTRL_DOWN_MASK | InputEvent.ALT_GRAPH_DOWN_MASK);
+
+	// SHIFT_DOWN_MASK | ALT_DOWN_MASK | ALT_GRAPH_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_ALT, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.SHIFT_DOWN_MASK | InputEvent.ALT_DOWN_MASK | InputEvent.ALT_GRAPH_DOWN_MASK);
+
+	// CTRL_DOWN_MASK | META_DOWN_MASK | ALT_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_CONTROL, KeyEvent.VK_META, KeyEvent.VK_ALT },
+		   buttonmask,
+		   InputEvent.CTRL_DOWN_MASK | InputEvent.META_DOWN_MASK | InputEvent.ALT_DOWN_MASK);
+
+	// CTRL_DOWN_MASK | META_DOWN_MASK | ALT_GRAPH_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_CONTROL, KeyEvent.VK_META, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.CTRL_DOWN_MASK | InputEvent.META_DOWN_MASK | InputEvent.ALT_GRAPH_DOWN_MASK);
+
+	// CTRL_DOWN_MASK | ALT_DOWN_MASK | ALT_GRAPH_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_CONTROL, KeyEvent.VK_ALT, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.CTRL_DOWN_MASK | InputEvent.ALT_DOWN_MASK | InputEvent.ALT_GRAPH_DOWN_MASK);
+
+	// META_DOWN_MASK | ALT_DOWN_MASK | ALT_GRAPH_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_META, KeyEvent.VK_ALT, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.META_DOWN_MASK | InputEvent.ALT_DOWN_MASK | InputEvent.ALT_GRAPH_DOWN_MASK);
+
+	// four modifiers
+
+	// SHIFT_DOWN_MASK | CTRL_DOWN_MASK | META_DOWN_MASK | ALT_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL, KeyEvent.VK_META, KeyEvent.VK_ALT },
+		   buttonmask,
+		   InputEvent.SHIFT_DOWN_MASK | InputEvent.CTRL_DOWN_MASK | InputEvent.META_DOWN_MASK | InputEvent.ALT_DOWN_MASK);
+
+	// SHIFT_DOWN_MASK | CTRL_DOWN_MASK | META_DOWN_MASK | ALT_GRAPH_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL, KeyEvent.VK_META, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.SHIFT_DOWN_MASK | InputEvent.CTRL_DOWN_MASK | InputEvent.META_DOWN_MASK | InputEvent.ALT_GRAPH_DOWN_MASK);
+
+	// SHIFT_DOWN_MASK | CTRL_DOWN_MASK | ALT_DOWN_MASK | ALT_GRAPH_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL, KeyEvent.VK_ALT, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.SHIFT_DOWN_MASK | InputEvent.CTRL_DOWN_MASK | InputEvent.ALT_DOWN_MASK | InputEvent.ALT_GRAPH_DOWN_MASK);
+
+	// SHIFT_DOWN_MASK | META_DOWN_MASK | ALT_DOWN_MASK | ALT_GRAPH_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_META, KeyEvent.VK_ALT, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.SHIFT_DOWN_MASK | InputEvent.META_DOWN_MASK | InputEvent.ALT_DOWN_MASK | InputEvent.ALT_GRAPH_DOWN_MASK);
+
+	// CTRL_DOWN_MASK | META_DOWN_MASK | ALT_DOWN_MASK | ALT_GRAPH_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_CONTROL, KeyEvent.VK_META, KeyEvent.VK_ALT, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.CTRL_DOWN_MASK | InputEvent.META_DOWN_MASK | InputEvent.ALT_DOWN_MASK | InputEvent.ALT_GRAPH_DOWN_MASK);
+
+	// five modifiers
+
+	// SHIFT_DOWN_MASK | CTRL_DOWN_MASK | META_DOWN_MASK | ALT_DOWN_MASK | ALT_GRAPH_DOWN_MASK
+	checkMask (new int[] { KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL, KeyEvent.VK_META, KeyEvent.VK_ALT, KeyEvent.VK_ALT_GRAPH },
+		   buttonmask,
+		   InputEvent.SHIFT_DOWN_MASK | InputEvent.CTRL_DOWN_MASK | InputEvent.META_DOWN_MASK | InputEvent.ALT_DOWN_MASK | InputEvent.ALT_GRAPH_DOWN_MASK);
+      }
+  }
+
   public void test(TestHarness h)
   {
+    this.h = h;
     Frame frame = new Frame();
-    frame.addMouseListener(new MouseAdapter() {
+    MouseAdapter a = new MouseAdapter()
+      {
         public void mousePressed(MouseEvent ev) 
         {
           mask = ev.getModifiersEx();
@@ -52,19 +272,19 @@
         {
           mask = ev.getModifiersEx();
         }
-      });
+      };
+    frame.addMouseListener(a);
     frame.setSize(100, 100);
     frame.show();
     Point loc = frame.getLocationOnScreen();
     
-    Robot robot = h.createRobot();
+    robot = h.createRobot();
+    robot.setAutoWaitForIdle (true);
+
     robot.mouseMove(loc.x + 50, loc.y + 50);
-    
-    robot.mousePress(InputEvent.BUTTON1_MASK);
-    h.check(mask & InputEvent.BUTTON1_DOWN_MASK, InputEvent.BUTTON1_DOWN_MASK,
-            "mousePressed: " + mask);
-    robot.mouseRelease(InputEvent.BUTTON1_MASK);
-    h.check(mask & InputEvent.BUTTON1_DOWN_MASK, 0, "mouseReleased: " + mask);
-  }
 
+    checkAllMaskCombinations (InputEvent.BUTTON1_DOWN_MASK);
+    checkAllMaskCombinations (InputEvent.BUTTON2_DOWN_MASK);
+    checkAllMaskCombinations (InputEvent.BUTTON3_DOWN_MASK);
+  }
 }

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]