< prev index next >

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

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this
*** 1028,1033 **** --- 1028,1080 ---- final Tab tab = entry.getKey(); assertTrue(tabList.contains(tab)); assertTrue(fooMap.containsKey(tab)); }); } + + // Test for JDK-8189424 + int selectionChangeCount = 0; + @Test public void testTabClosingEventAndSelectionChange() { + Tab t1 = new Tab(""); + Tab t2 = new Tab(""); + tabPane.getTabs().add(t1); + tabPane.getTabs().add(t2); + tabPane.setTabClosingPolicy(TabPane.TabClosingPolicy.ALL_TABS); + + tabPane.getSelectionModel().selectedItemProperty().addListener((ov, oldTab, newTab) -> { + selectionChangeCount++; + }); + t1.setOnCloseRequest((event) -> { + event.consume(); + tabPane.getTabs().remove(t1); + }); + + root.getChildren().add(tabPane); + show(); + + root.applyCss(); + root.resize(300, 300); + root.layout(); + + tk.firePulse(); + assertTrue(tabPane.isFocused()); + + tabPane.getSelectionModel().select(t1); + + double xval = (tabPane.localToScene(tabPane.getLayoutBounds())).getMinX(); + double yval = (tabPane.localToScene(tabPane.getLayoutBounds())).getMinY(); + + SceneHelper.processMouseEvent(scene, + MouseEventGenerator.generateMouseEvent(MouseEvent.MOUSE_PRESSED, xval + 19, yval + 17)); + tk.firePulse(); + SceneHelper.processMouseEvent(scene, + MouseEventGenerator.generateMouseEvent(MouseEvent.MOUSE_RELEASED, xval + 19, yval + 17)); + tk.firePulse(); + + assertEquals(1, tabPane.getTabs().size()); + assertEquals(t2, tabPane.getSelectionModel().getSelectedItem()); + assertEquals(1, selectionChangeCount); + + tabPane.getTabs().remove(t2); + } + }
< prev index next >