JAL-2272 unit tests added for Platform.isControlDown
[jalview.git] / test / jalview / util / PlatformTest.java
1 package jalview.util;
2
3 import static org.testng.Assert.assertFalse;
4 import static org.testng.Assert.assertTrue;
5
6 import java.awt.Button;
7 import java.awt.Event;
8 import java.awt.event.MouseEvent;
9
10 import org.testng.annotations.Test;
11
12 public class PlatformTest
13 {
14   Button b = new Button();
15
16   /**
17    * isControlDown for Mac should answer true for Meta-down, but not for right
18    * mouse (popup trigger)
19    */
20   @Test(groups = "Functional")
21   public void testIsControlDown_mac()
22   {
23     int clickCount = 1;
24     boolean isPopupTrigger = false;
25     int buttonNo = MouseEvent.BUTTON1;
26     boolean mac = true;
27
28     int mods = 0;
29     // not concerned with MouseEvent id, when, x, y, xAbs, yAbs values
30     assertFalse(Platform.isControlDown(new MouseEvent(b, 0, 0L, mods, 0, 0,
31             0, 0, clickCount, isPopupTrigger, buttonNo), mac));
32
33     mods = Event.CTRL_MASK;
34     assertFalse(Platform.isControlDown(new MouseEvent(b, 0, 0L, mods, 0, 0,
35             0, 0, clickCount, isPopupTrigger, buttonNo), mac));
36
37     mods = Event.META_MASK;
38     assertTrue(Platform.isControlDown(new MouseEvent(b, 0, 0L, mods, 0, 0,
39             0, 0, clickCount, isPopupTrigger, buttonNo), mac));
40
41     isPopupTrigger = true;
42     assertFalse(Platform.isControlDown(new MouseEvent(b, 0, 0L, mods, 0, 0,
43             0, 0, clickCount, isPopupTrigger, buttonNo), mac));
44   }
45
46   /**
47    * If not a Mac, we only care whether CTRL_MASK modifier is set on the mouse
48    * event
49    */
50   @Test(groups = "Functional")
51   public void testIsControlDown_notMac()
52   {
53     int clickCount = 1;
54     boolean isPopupTrigger = false;
55     int buttonNo = MouseEvent.BUTTON1;
56     boolean mac = false;
57
58     int mods = 0;
59     // not concerned with MouseEvent id, when, x, y, xAbs, yAbs values
60     assertFalse(Platform.isControlDown(new MouseEvent(b, 0, 0L, mods, 0, 0,
61             0, 0, clickCount, isPopupTrigger, buttonNo), mac));
62
63     mods = Event.CTRL_MASK;
64     assertTrue(Platform.isControlDown(new MouseEvent(b, 0, 0L, mods, 0, 0,
65             0, 0, clickCount, isPopupTrigger, buttonNo), mac));
66
67     mods = Event.CTRL_MASK | Event.SHIFT_MASK | Event.ALT_MASK;
68     clickCount = 2;
69     buttonNo = 2;
70     isPopupTrigger = true;
71     assertTrue(Platform.isControlDown(new MouseEvent(b, 0, 0L, mods, 0, 0,
72             0, 0, clickCount, isPopupTrigger, buttonNo), mac));
73   }
74 }