On Tue, 25 Feb 2020 15:10:50 GMT, Jeanette Winzenburg <faste...@openjdk.org> 
wrote:

>> modules/javafx.controls/src/test/java/test/javafx/scene/control/TableViewKeyInputTest.java
>>  line 1141:
>> 
>>> 1140:             keyboard.doLeftArrowPress(KeyModifier.getShortcutKey());
>>> 1141:         }
>>> 1142:         keyboard.doKeyPress(KeyCode.SPACE,
>> 
>> having such if blocks in all tests regarding horizontal navigation feels 
>> like the parametrization isn't quite complete, IMO: the test method 
>> shouldn't need to worry, instead just call semantic horizontal navigation 
>> methods.
>> 
>> A simple change would be to extract that differentiation into a dedicated 
>> method, like f.i. forward/backward, test would get simpler (and make it 
>> easier to add those that are missing :)
>> 
>>     @Test
>>     public void testForwardFocus() {
>>         sm.setCellSelectionEnabled(true);
>>         sm.select(0, col0);
>>         // current
>>         //if (orientation == NodeOrientation.LEFT_TO_RIGHT) {
>>         //    keyboard.doRightArrowPress(KeyModifier.getShortcutKey());
>>         //} else {
>>         //    keyboard.doLeftArrowPress(KeyModifier.getShortcutKey());
>>         //}
>>         // extracted
>>         forward(KeyModifier.getShortcutKey());
>>         assertTrue("selected cell must still be selected", sm.isSelected(0, 
>> col0));
>>         assertFalse("next cell must not be selected", sm.isSelected(0, 
>> col1));
>>         TablePosition focusedCell = fm.getFocusedCell();
>>         assertEquals("focused cell must moved to next", col1, 
>> focusedCell.getTableColumn());
>>     }
>>     
>>     /**
>>      * Orientation-aware horizontal navigation with arrow keys.
>>      * @param modifiers the modifiers to use on keyboard
>>      */
>>     protected void forward(KeyModifier... modifiers) {
>>         if (orientation == NodeOrientation.LEFT_TO_RIGHT) {
>>             keyboard.doRightArrowPress(modifiers);
>>         } else {
>>             keyboard.doLeftArrowPress(modifiers);
>>         }
>>     }
>
> Also, I'm a bit weary about the "else if" (vs a simple "else") - wouldn't it 
> be some kind of setup error if the node orientation is neither rtl nor ltr? 
> If so, I would add a test to check for it once.

Initially I had thought about adding separate test file for RTL - something 
like RTLTableViewKeyInputTest - but, realized that although it's a cleaner 
approach, we would simply duplicate the tests. Also, the fact is only 
LEFT/RIGHT key navigation is sensitive to NodeOrientation - hence only a subset 
of tests needed modification. This is the reason I have parameterized the test.

To your specific question, since it is a parameterized test, only possible 
values are LTR and RTL which are specified as @Parameterized.Parameters. I 
don't think, we need additional check for some other value.

-------------

PR: https://git.openjdk.java.net/jfx/pull/114

Reply via email to