< prev index next >

modules/javafx.controls/src/test/java/test/javafx/scene/control/MenuButtonTest.java

Print this page

        

@@ -285,43 +285,99 @@
         // label-padding should not affect GRAPHIC_ONLY MenuButton size
         assertEquals(mb1.getWidth(), mb2.getWidth(), 0.00001);
         assertEquals(mb1.getHeight(), mb2.getHeight(), 0.00001);
     }
 
-    boolean onShowingPass;
-    boolean onShownPass;
-    boolean onHidingPass;
-    boolean onHiddenPass;
-    @Test public void test_jdk_8175963_showHideEvents() {
+    int onShowingPass;
+    int onShownPass;
+    int onHidingPass;
+    int onHiddenPass;
+    // Test for JDK-8175963
+    @Test public void test_jdk_addOnShowHideEvents() {
+        onShowingPass = 0;
+        onShownPass = 0;
+        onHidingPass = 0;
+        onHiddenPass = 0;
         MenuItem it1 = new MenuItem("1");
         MenuButton mbtn = new MenuButton("MenuButton", null, it1);
 
+        for (int i = 0; i < 5; ++i) {
         mbtn.addEventHandler(MenuButton.ON_SHOWING, event -> {
             assertEquals("event is not of type MenuButton.ON_SHOWING",
                 event.getEventType(), MenuButton.ON_SHOWING);
-            onShowingPass = true;
+                onShowingPass++;
         });
         mbtn.addEventHandler(MenuButton.ON_SHOWN, event -> {
             assertEquals("event is not of type MenuButton.ON_SHOWN",
                 event.getEventType(), MenuButton.ON_SHOWN);
-            onShownPass = true;
+                onShownPass++;
         });
         mbtn.addEventHandler(MenuButton.ON_HIDING, event -> {
             assertEquals("event is not of type MenuButton.ON_HIDING",
                 event.getEventType(), MenuButton.ON_HIDING);
-            onHidingPass = true;
+                onHidingPass++;
         });
         mbtn.addEventHandler(MenuButton.ON_HIDDEN, event -> {
             assertEquals("event is not of type  MenuButton.ON_HIDDEN",
                 event.getEventType(), MenuButton.ON_HIDDEN);
-            onHiddenPass = true;
+                onHiddenPass++;
         });
+        }
+
+        mbtn.show();
+        mbtn.hide();
+
+        assertTrue("MenuButton.ON_SHOWING event should be received 5 times. but received: "
+                    + onShowingPass + " times.", (5 == onShowingPass));
+        assertTrue("MenuButton.ON_SHOWN event should be received 5 times. but received: "
+                    + onShownPass + " times.", (5 == onShownPass));
+        assertTrue("MenuButton.ON_HIDING event should be received 5 times. but received: "
+                    + onHidingPass + " times.", (5 == onHidingPass));
+        assertTrue("MenuButton.ON_HIDDEN event should be received 5 times. but received: "
+                    + onHiddenPass + " times.", (5 == onHiddenPass));
+    }
+
+
+    // Test for JDK-8177633
+    @Test public void test_jdk_setOnShowHideEvents() {
+        onShowingPass = 0;
+        onShownPass = 0;
+        onHidingPass = 0;
+        onHiddenPass = 0;
+        MenuItem it1 = new MenuItem("1");
+        MenuButton mbtn = new MenuButton("MenuButton", null, it1);
+        for (int i = 0; i < 5; ++i) {
+            mbtn.setOnShowing(event -> {
+                assertEquals("event is not of type MenuButton.ON_SHOWING",
+                    event.getEventType(), MenuButton.ON_SHOWING);
+                onShowingPass++;;
+            });
+            mbtn.setOnShown(event -> {
+                assertEquals("event is not of type MenuButton.ON_SHOWN",
+                    event.getEventType(), MenuButton.ON_SHOWN);
+                onShownPass++;
+            });
+            mbtn.setOnHiding(event -> {
+                assertEquals("event is not of type MenuButton.ON_HIDING",
+                    event.getEventType(), MenuButton.ON_HIDING);
+                onHidingPass++;
+            });
+            mbtn.setOnHidden(event -> {
+                assertEquals("event is not of type MenuButton.ON_HIDDEN",
+                    event.getEventType(), MenuButton.ON_HIDDEN);
+                onHiddenPass++;
+            });
+        }
 
         mbtn.show();
         mbtn.hide();
 
-        assertTrue("OnShowing event not received", onShowingPass);
-        assertTrue("onShown event not received", onShownPass);
-        assertTrue("onHiding event not received", onHidingPass);
-        assertTrue("onHidden event not received", onHiddenPass);
+        assertTrue("MenuButton.ON_SHOWING event should be received only once. but received: "
+                    + onShowingPass + " times.", (1 == onShowingPass));
+        assertTrue("MenuButton.ON_SHOWN event should be received only once. but received: "
+                    + onShownPass + " times.", (1 == onShownPass));
+        assertTrue("MenuButton.ON_HIDING event should be received only once. but received: "
+                    + onHidingPass + " times.", (1 == onHidingPass));
+        assertTrue("MenuButton.ON_HIDDEN event should be received only once. but received: "
+                    + onHiddenPass + " times.", (1 == onHiddenPass));
     }
 }
< prev index next >