--- old/modules/javafx.controls/src/test/java/test/javafx/scene/control/MenuButtonTest.java 2017-09-14 15:51:29.440287133 +0530 +++ new/modules/javafx.controls/src/test/java/test/javafx/scene/control/MenuButtonTest.java 2017-09-14 15:51:29.256287133 +0530 @@ -287,41 +287,97 @@ 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); - mbtn.addEventHandler(MenuButton.ON_SHOWING, event -> { - assertEquals("event is not of type MenuButton.ON_SHOWING", - event.getEventType(), MenuButton.ON_SHOWING); - onShowingPass = true; - }); - mbtn.addEventHandler(MenuButton.ON_SHOWN, event -> { - assertEquals("event is not of type MenuButton.ON_SHOWN", - event.getEventType(), MenuButton.ON_SHOWN); - onShownPass = true; - }); - mbtn.addEventHandler(MenuButton.ON_HIDING, event -> { - assertEquals("event is not of type MenuButton.ON_HIDING", - event.getEventType(), MenuButton.ON_HIDING); - onHidingPass = true; - }); - mbtn.addEventHandler(MenuButton.ON_HIDDEN, event -> { - assertEquals("event is not of type MenuButton.ON_HIDDEN", - event.getEventType(), MenuButton.ON_HIDDEN); - onHiddenPass = true; - }); + 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++; + }); + mbtn.addEventHandler(MenuButton.ON_SHOWN, event -> { + assertEquals("event is not of type MenuButton.ON_SHOWN", + event.getEventType(), MenuButton.ON_SHOWN); + onShownPass++; + }); + mbtn.addEventHandler(MenuButton.ON_HIDING, event -> { + assertEquals("event is not of type MenuButton.ON_HIDING", + event.getEventType(), MenuButton.ON_HIDING); + onHidingPass++; + }); + mbtn.addEventHandler(MenuButton.ON_HIDDEN, 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 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("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)); } }