modules/controls/src/test/java/javafx/scene/control/MenuBarTest.java
Print this page
rev 9240 : 8076423: JEP 253: Prepare JavaFX UI Controls & CSS APIs for Modularization
*** 27,58 ****
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
- import javafx.application.Application;
- import javafx.event.Event;
- import javafx.event.EventHandler;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.input.KeyCode;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import org.junit.Before;
- import org.junit.Ignore;
import org.junit.Test;
import com.sun.javafx.pgstub.StubToolkit;
import com.sun.javafx.scene.control.infrastructure.KeyEventFirer;
import com.sun.javafx.scene.control.infrastructure.MouseEventGenerator;
! import com.sun.javafx.scene.control.skin.ContextMenuContent;
! import com.sun.javafx.scene.control.skin.MenuBarMenuButtonRetriever;
! import com.sun.javafx.scene.control.skin.MenuBarSkin;
import com.sun.javafx.tk.Toolkit;
/**
*
--- 27,55 ----
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.Scene;
+ import javafx.scene.control.skin.MenuBarSkinRetriever;
import javafx.scene.input.KeyCode;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import org.junit.Before;
import org.junit.Test;
import com.sun.javafx.pgstub.StubToolkit;
import com.sun.javafx.scene.control.infrastructure.KeyEventFirer;
import com.sun.javafx.scene.control.infrastructure.MouseEventGenerator;
! import com.sun.javafx.scene.control.ContextMenuContent;
! import com.sun.javafx.scene.control.MenuBarMenuButtonRetriever;
! import javafx.scene.control.skin.MenuBarSkin;
import com.sun.javafx.tk.Toolkit;
/**
*
*** 128,138 ****
assertTrue(skin != null);
double xval = (menuBar.localToScene(menuBar.getLayoutBounds())).getMinX();
double yval = (menuBar.localToScene(menuBar.getLayoutBounds())).getMinY();
! MenuButton mb = MenuBarMenuButtonRetriever.getNodeForMenu(skin, 0);
mb.getScene().getWindow().requestFocus();
scene.impl_processMouseEvent(
generator.generateMouseEvent(MouseEvent.MOUSE_PRESSED, xval+20, yval+20));
scene.impl_processMouseEvent(
generator.generateMouseEvent(MouseEvent.MOUSE_RELEASED, xval+20, yval+20));
--- 125,135 ----
assertTrue(skin != null);
double xval = (menuBar.localToScene(menuBar.getLayoutBounds())).getMinX();
double yval = (menuBar.localToScene(menuBar.getLayoutBounds())).getMinY();
! MenuButton mb = MenuBarSkinRetriever.getNodeForMenu(skin, 0);
mb.getScene().getWindow().requestFocus();
scene.impl_processMouseEvent(
generator.generateMouseEvent(MouseEvent.MOUSE_PRESSED, xval+20, yval+20));
scene.impl_processMouseEvent(
generator.generateMouseEvent(MouseEvent.MOUSE_RELEASED, xval+20, yval+20));
*** 163,183 ****
assertTrue(skin != null);
double xval = (menuBar.localToScene(menuBar.getLayoutBounds())).getMinX();
double yval = (menuBar.localToScene(menuBar.getLayoutBounds())).getMinY();
! MenuButton mb = MenuBarMenuButtonRetriever.getNodeForMenu(skin, 0);
mb.getScene().getWindow().requestFocus();
scene.impl_processMouseEvent(
generator.generateMouseEvent(MouseEvent.MOUSE_PRESSED, xval+20, yval+20));
scene.impl_processMouseEvent(
generator.generateMouseEvent(MouseEvent.MOUSE_RELEASED, xval+20, yval+20));
assertTrue(menu.isShowing());
/* ------------------------------------------------------------------ */
// Show subMenu
! ContextMenuContent menuContent = MenuBarMenuButtonRetriever.getMenuContent(mb); // ContextMenuContent
Node displayNode = MenuBarMenuButtonRetriever.getDisplayNodeForMenuItem(menuContent, 0); // MenuItemContainer
displayNode.getScene().getWindow().requestFocus();
assertTrue(displayNode.getScene().getWindow().isFocused());
--- 160,180 ----
assertTrue(skin != null);
double xval = (menuBar.localToScene(menuBar.getLayoutBounds())).getMinX();
double yval = (menuBar.localToScene(menuBar.getLayoutBounds())).getMinY();
! MenuButton mb = MenuBarSkinRetriever.getNodeForMenu(skin, 0);
mb.getScene().getWindow().requestFocus();
scene.impl_processMouseEvent(
generator.generateMouseEvent(MouseEvent.MOUSE_PRESSED, xval+20, yval+20));
scene.impl_processMouseEvent(
generator.generateMouseEvent(MouseEvent.MOUSE_RELEASED, xval+20, yval+20));
assertTrue(menu.isShowing());
/* ------------------------------------------------------------------ */
// Show subMenu
! ContextMenuContent menuContent = MenuBarSkinRetriever.getMenuContent(mb); // ContextMenuContent
Node displayNode = MenuBarMenuButtonRetriever.getDisplayNodeForMenuItem(menuContent, 0); // MenuItemContainer
displayNode.getScene().getWindow().requestFocus();
assertTrue(displayNode.getScene().getWindow().isFocused());
*** 229,239 ****
startApp(root);
tk.firePulse();
MenuBarSkin skin = (MenuBarSkin)menuBar.getSkin();
assertTrue(skin != null);
! MenuButton mb = MenuBarMenuButtonRetriever.getNodeForMenu(skin, 0);
mb.getScene().getWindow().requestFocus();
double xval = (menuBar.localToScene(menuBar.getLayoutBounds())).getMinX();
double yval = (menuBar.localToScene(menuBar.getLayoutBounds())).getMinY();
--- 226,236 ----
startApp(root);
tk.firePulse();
MenuBarSkin skin = (MenuBarSkin)menuBar.getSkin();
assertTrue(skin != null);
! MenuButton mb = MenuBarSkinRetriever.getNodeForMenu(skin, 0);
mb.getScene().getWindow().requestFocus();
double xval = (menuBar.localToScene(menuBar.getLayoutBounds())).getMinX();
double yval = (menuBar.localToScene(menuBar.getLayoutBounds())).getMinY();
*** 243,253 ****
generator.generateMouseEvent(MouseEvent.MOUSE_RELEASED, xval+20, yval+20));
assertTrue(menu.isShowing());
/* ------------------------------------------------------------------ */
// Show Menu
! ContextMenuContent menuContent = MenuBarMenuButtonRetriever.getMenuContent(mb); // ContextMenuContent
Node displayNode = MenuBarMenuButtonRetriever.getDisplayNodeForMenuItem(menuContent, 0); // MenuItemContainer
displayNode.getScene().getWindow().requestFocus();
assertTrue(displayNode.getScene().getWindow().isFocused());
--- 240,250 ----
generator.generateMouseEvent(MouseEvent.MOUSE_RELEASED, xval+20, yval+20));
assertTrue(menu.isShowing());
/* ------------------------------------------------------------------ */
// Show Menu
! ContextMenuContent menuContent = MenuBarSkinRetriever.getMenuContent(mb); // ContextMenuContent
Node displayNode = MenuBarMenuButtonRetriever.getDisplayNodeForMenuItem(menuContent, 0); // MenuItemContainer
displayNode.getScene().getWindow().requestFocus();
assertTrue(displayNode.getScene().getWindow().isFocused());
*** 263,273 ****
assertTrue(!menu.isShowing());
keyboard.doKeyPress(KeyCode.LEFT);
tk.firePulse();
// check if focusedMenuIndex is reset to -1 so navigation happens.
! int focusedIndex = MenuBarMenuButtonRetriever.getFocusedIndex(skin);
assertEquals(focusedIndex, -1);
}
@Test public void testMenuOnShownEventFiringWithKeyNavigation() {
final MouseEventGenerator generator = new MouseEventGenerator();
--- 260,270 ----
assertTrue(!menu.isShowing());
keyboard.doKeyPress(KeyCode.LEFT);
tk.firePulse();
// check if focusedMenuIndex is reset to -1 so navigation happens.
! int focusedIndex = MenuBarSkinRetriever.getFocusedIndex(skin);
assertEquals(focusedIndex, -1);
}
@Test public void testMenuOnShownEventFiringWithKeyNavigation() {
final MouseEventGenerator generator = new MouseEventGenerator();
*** 289,299 ****
tk.firePulse();
MenuBarSkin skin = (MenuBarSkin)menuBar.getSkin();
assertTrue(skin != null);
! MenuButton mb = MenuBarMenuButtonRetriever.getNodeForMenu(skin, 0);
mb.getScene().getWindow().requestFocus();
assertTrue(mb.getScene().getWindow().isFocused());
KeyEventFirer keyboard = new KeyEventFirer(mb.getScene());
--- 286,296 ----
tk.firePulse();
MenuBarSkin skin = (MenuBarSkin)menuBar.getSkin();
assertTrue(skin != null);
! MenuButton mb = MenuBarSkinRetriever.getNodeForMenu(skin, 0);
mb.getScene().getWindow().requestFocus();
assertTrue(mb.getScene().getWindow().isFocused());
KeyEventFirer keyboard = new KeyEventFirer(mb.getScene());
*** 333,343 ****
assertTrue(skin != null);
double xval = (menuBar.localToScene(menuBar.getLayoutBounds())).getMinX();
double yval = (menuBar.localToScene(menuBar.getLayoutBounds())).getMinY();
! MenuButton mb = MenuBarMenuButtonRetriever.getNodeForMenu(skin, 0);
mb.getScene().getWindow().requestFocus();
scene.impl_processMouseEvent(
MouseEventGenerator.generateMouseEvent(MouseEvent.MOUSE_PRESSED, xval+20, yval+20));
scene.impl_processMouseEvent(
MouseEventGenerator.generateMouseEvent(MouseEvent.MOUSE_RELEASED, xval+20, yval+20));
--- 330,340 ----
assertTrue(skin != null);
double xval = (menuBar.localToScene(menuBar.getLayoutBounds())).getMinX();
double yval = (menuBar.localToScene(menuBar.getLayoutBounds())).getMinY();
! MenuButton mb = MenuBarSkinRetriever.getNodeForMenu(skin, 0);
mb.getScene().getWindow().requestFocus();
scene.impl_processMouseEvent(
MouseEventGenerator.generateMouseEvent(MouseEvent.MOUSE_PRESSED, xval+20, yval+20));
scene.impl_processMouseEvent(
MouseEventGenerator.generateMouseEvent(MouseEvent.MOUSE_RELEASED, xval+20, yval+20));
*** 376,386 ****
menu.setOnShowing(t -> {
// we should not get here when the menu is hidden
assertEquals(firstClick.booleanValue(), true);
});
! MenuButton mb = MenuBarMenuButtonRetriever.getNodeForMenu(skin, 0);
mb.getScene().getWindow().requestFocus();
mb.requestFocus();
assertTrue(mb.isFocused());
// click on menu to show
scene.impl_processMouseEvent(
--- 373,383 ----
menu.setOnShowing(t -> {
// we should not get here when the menu is hidden
assertEquals(firstClick.booleanValue(), true);
});
! MenuButton mb = MenuBarSkinRetriever.getNodeForMenu(skin, 0);
mb.getScene().getWindow().requestFocus();
mb.requestFocus();
assertTrue(mb.isFocused());
// click on menu to show
scene.impl_processMouseEvent(