File: TextAreaSelectionTest.java

package info (click to toggle)
openjdk-24 24.0.2%2B12-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 831,900 kB
  • sloc: java: 5,677,020; cpp: 1,323,154; xml: 1,320,524; ansic: 486,889; asm: 405,131; objc: 21,025; sh: 15,221; javascript: 11,049; python: 8,222; makefile: 2,504; perl: 357; awk: 351; sed: 172; pascal: 103; exp: 54; jsp: 24; csh: 3
file content (111 lines) | stat: -rw-r--r-- 4,203 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
/*
 * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.TextArea;
import java.awt.TextField;

/*
 * @test
 * @bug 4095946
 * @summary 592677:TEXTFIELD TAB SELECTION CONFUSING; REMOVE ES_NOHIDESEL STYLE IN
 * @library /java/awt/regtesthelpers
 * @build PassFailJFrame
 * @run main/manual TextAreaSelectionTest
 */

public class TextAreaSelectionTest {
    private static final String INSTRUCTIONS = """
                Please look at the 'TextAreaSelectionTest' frame.

                If you see that the all TextFields and TextAreas have
                the highlighted selections, the test FAILED. Else, if
                you see that the text of the focused component is
                highlighted, it is ok.

                Try to traverse the focus through all components by
                pressing CTRL+TAB. If the focused component highlights
                its selection, the test is passed for a while.

                Please select the entire/part of the text of some component
                by mouse and choose some menu item. If the highlighted
                selection is hidden, the test FAILED.

                Please select the entire/part of the text of some component
                by mouse and click right mouse button. A context menu
                should appear. Please check its items.
                Press ESC to hide the context menu. If the selection
                of the text component is not visible, the test FAILED.

                Please double click on the word 'DoubleClickMe' in the
                first text area. If there are several words selected, the
                test FAILED, if the word 'DoubleClickMe' is selected only,
                the test PASSED!
                """;

    public static void main(String[] args) throws Exception {
        PassFailJFrame.builder()
                .title("TextAreaSelectionTest")
                .instructions(INSTRUCTIONS)
                .rows((int) INSTRUCTIONS.lines().count() + 2)
                .columns(40)
                .testUI(TextAreaSelectionTest::createGUI)
                .build()
                .awaitAndCheck();
    }

    public static Frame createGUI() {
        Frame f = new Frame("TextAreaSelectionTest");
        f.setLayout(new FlowLayout());

        MenuBar mb = new MenuBar();
        String name = "Submenu";
        Menu m = new Menu(name, false);
        m.add(new MenuItem(name + " item 1"));
        m.add(new MenuItem(name + " item 2"));
        m.add(new MenuItem(name + " item 3"));
        mb.add(m);

        TextField tf1, tf2;
        TextArea ta1, ta2;
        f.setMenuBar(mb);
        f.add(tf1 = new TextField("some text"));
        f.add(tf2 = new TextField("more text"));
        String eoln = System.getProperty("line.separator", "\n");
        f.add(ta1 = new TextArea("some text" + eoln + eoln + "DoubleClickMe"));
        f.add(ta2 = new TextArea("more text"));

        tf1.selectAll();
        tf2.selectAll();
        ta1.selectAll();
        ta2.selectAll();

        f.pack();
        return f;
    }

}