From c49c083729bed50fd69f39b697dafeab4f1f73b3 Mon Sep 17 00:00:00 2001 From: Alexander Stepanov Date: Fri, 27 Sep 2013 14:29:27 +0400 Subject: [PATCH] 8024122: [TEST] need test to cover JDK-7146572 Reviewed-by: anthony, yan --- .../InputMethodsTest/InputMethodsTest.html | 17 ++++ .../InputMethodsTest/InputMethodsTest.java | 90 +++++++++++++++++++ 2 files changed, 107 insertions(+) create mode 100644 jdk/test/java/awt/InputMethods/InputMethodsTest/InputMethodsTest.html create mode 100644 jdk/test/java/awt/InputMethods/InputMethodsTest/InputMethodsTest.java diff --git a/jdk/test/java/awt/InputMethods/InputMethodsTest/InputMethodsTest.html b/jdk/test/java/awt/InputMethods/InputMethodsTest/InputMethodsTest.html new file mode 100644 index 00000000000..b92e6c738c0 --- /dev/null +++ b/jdk/test/java/awt/InputMethods/InputMethodsTest/InputMethodsTest.html @@ -0,0 +1,17 @@ + + + InputMethodsTest + + + + +This test is for Linux only. For other platforms please simply push "Pass". + +Test run requires some Japanese input method to be installed. + +To test JDK-7146572 fix please perform the following steps: +1. Switch on input method and type Japanese in the above text fields. +2. Push "Disable Input Methods" button. +3. Try to type Japanese again. If it can be done then the test is failed; otherwise passed. + + diff --git a/jdk/test/java/awt/InputMethods/InputMethodsTest/InputMethodsTest.java b/jdk/test/java/awt/InputMethods/InputMethodsTest/InputMethodsTest.java new file mode 100644 index 00000000000..a5665c906b9 --- /dev/null +++ b/jdk/test/java/awt/InputMethods/InputMethodsTest/InputMethodsTest.java @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2013, 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. + */ + + +/* + @test + @bug 7146572 8024122 + @summary Check if 'enableInputMethods' works properly for TextArea and TextField on Linux platform + @author a.stepanov + @run applet/manual=yesno InputMethodsTest.html +*/ + + +import java.applet.Applet; +import java.awt.*; +import javax.swing.*; +import java.awt.event.*; + + +public class InputMethodsTest extends Applet { + + TextArea txtArea = null; + TextField txtField = null; + JButton btnIM = null; + boolean inputMethodsEnabled = true; + + public void init() { + this.setLayout(new BorderLayout()); + } + + public void start() { + + setSize(350, 200); + + JPanel panel = new JPanel(); + panel.setLayout(new GridLayout(2, 1)); + + txtArea = new TextArea(); + panel.add(txtArea); + + txtField = new TextField(); + panel.add(txtField); + + add(panel, BorderLayout.CENTER); + + btnIM = new JButton(); + setBtnText(); + + btnIM.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + inputMethodsEnabled = !inputMethodsEnabled; + setBtnText(); + txtArea.enableInputMethods(inputMethodsEnabled); + txtField.enableInputMethods(inputMethodsEnabled); + } + }); + + add(btnIM, BorderLayout.SOUTH); + + validate(); + setVisible(true); + } + + private void setBtnText() { + String s = inputMethodsEnabled ? "Disable" : "Enable"; + btnIM.setText(s + " Input Methods"); + } +} +