RFR: 8284077: Create an automated test for JDK-4170173

Sergey Bylokhov serb at openjdk.java.net
Sat Apr 9 05:37:35 UTC 2022


On Thu, 7 Apr 2022 07:40:18 GMT, Srinivas Mandalika <smandalika at openjdk.org> wrote:

> Create an automated test for [JDK-4170173](https://bugs.openjdk.java.net/browse/JDK-4170173)
> 
> Issue
> JTextComponent.AccessibleJTextComponent.getAfterIndex(int part, int index) works incorrectly, when 'part' parameter is AccessibleText.WORD.
> It returns a space (" ") instead of the correct word.
> 
> The test verifies the fix for this behavior by checking the getAfterIndex for AccessibleText.CHARACTER,AccessibleText.WORD,AccessibleText.SENTENCE for the components JTextField, JTextArea, JEditorPane.
> 
> While working on this test case there was a related bug relevant to this [JDK-4170174](https://bugs.openjdk.java.net/browse/JDK-4170174) 
> This is marked as duplicate, addressess a similar issue.
> It indicates that JTextComponent.AccessibleJTextComponent.getBeforeIndex(int part, int index) works incorrectly, when part parameter is AccessibleText.WORD.
> It returns a space (" ") instead of correct word.
> 
> Hence an additional test was added for this, for verifying the behavior of getBeforeIndex.
> AccessibleText.CHARACTER,AccessibleText.WORD,AccessibleText.SENTENCE for the components JTextField, JTextArea, JEditorPane.
> 
> The two tests have multiple distinct assertions. For this reason, as well as for maintainability, the two were not clubbed into a single test.
> However, the two tests are still similar in the functional flow of the code and the functionality they are testing as well - hence they have been clubbed into a single review.
> This review is for migrating tests from a closed test suite to open.
> 
> Testing:
> The tests ran successfully on Mach5 with multiple runs (30) on windows-x64, linux-x64 and macos-x64.

test/jdk/javax/accessibility/4170173/AccessibleJTextAfterIndexTest.java line 114:

> 112:             jTextComponent.getAccessibleContext().getAccessibleText()
> 113:             .getAfterIndex(character, characterPosition));
> 114: 

It feels that the code above is too smart=) Can we simplify/reformat it a little bit. I do not think that you need to jump from the main thread to the EDT and back for each testcase, just wrap the "doTest" by the invokeAndWait

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

PR: https://git.openjdk.java.net/jdk/pull/8138



More information about the client-libs-dev mailing list