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

Print this page
rev 9038 : RT-34620: [ComboBox, DatePicker] Buttons set to default/cancel are not reacting to ComboBox enter/esc keys

*** 1206,1218 **** assertEquals("Test", cb.getEditor().getText()); }); StageLoader sl = new StageLoader(cb); ! cb.getEditor().requestFocus(); cb.getEditor().setText("Test"); ! KeyEventFirer keyboard = new KeyEventFirer(cb.getEditor()); keyboard.doKeyPress(KeyCode.ENTER); assertEquals(1, test_rt35586_count); sl.dispose(); --- 1206,1218 ---- assertEquals("Test", cb.getEditor().getText()); }); StageLoader sl = new StageLoader(cb); ! cb.requestFocus(); cb.getEditor().setText("Test"); ! KeyEventFirer keyboard = new KeyEventFirer(cb); keyboard.doKeyPress(KeyCode.ENTER); assertEquals(1, test_rt35586_count); sl.dispose();
*** 1652,1663 **** // cb2.isFocused() returns true as expected, the scene focus owner is // not the ComboBox, but the FakeFocusTextField inside it cb1Keyboard.doKeyPress(KeyCode.TAB, KeyModifier.SHIFT); assertTrue("Expect cb2 to be focused, but actual focus owner is: " + scene.getFocusOwner(), cb2.isFocused()); ! assertEquals("Expect cb2 TextField to be focused, but actual focus owner is: " + scene.getFocusOwner(), ! cb2.getEditor(), scene.getFocusOwner()); // This is where the second half of the bug appears, as we are stuck in // the FakeFocusTextField of cb2, we never make it to cb1 cb2Keyboard.doKeyPress(KeyCode.TAB, KeyModifier.SHIFT); assertTrue(cb1.isFocused()); --- 1652,1667 ---- // cb2.isFocused() returns true as expected, the scene focus owner is // not the ComboBox, but the FakeFocusTextField inside it cb1Keyboard.doKeyPress(KeyCode.TAB, KeyModifier.SHIFT); assertTrue("Expect cb2 to be focused, but actual focus owner is: " + scene.getFocusOwner(), cb2.isFocused()); ! // Updated with fix for RT-34602: The TextField now never gets ! // focus (it's just faking it). ! // assertEquals("Expect cb2 TextField to be focused, but actual focus owner is: " + scene.getFocusOwner(), ! // cb2.getEditor(), scene.getFocusOwner()); ! assertEquals("Expect cb2 to be focused, but actual focus owner is: " + scene.getFocusOwner(), ! cb2, scene.getFocusOwner()); // This is where the second half of the bug appears, as we are stuck in // the FakeFocusTextField of cb2, we never make it to cb1 cb2Keyboard.doKeyPress(KeyCode.TAB, KeyModifier.SHIFT); assertTrue(cb1.isFocused());