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,13 +1206,13 @@
             assertEquals("Test", cb.getEditor().getText());
         });
 
         StageLoader sl = new StageLoader(cb);
 
-        cb.getEditor().requestFocus();
+        cb.requestFocus();
         cb.getEditor().setText("Test");
-        KeyEventFirer keyboard = new KeyEventFirer(cb.getEditor());
+        KeyEventFirer keyboard = new KeyEventFirer(cb);
         keyboard.doKeyPress(KeyCode.ENTER);
 
         assertEquals(1, test_rt35586_count);
 
         sl.dispose();

@@ -1652,12 +1652,16 @@
         // 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());
+        // 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());