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());