1f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project/*
2f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project * Copyright (C) 2008 The Android Open Source Project
3f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project *
4f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
5f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project * you may not use this file except in compliance with the License.
6f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project * You may obtain a copy of the License at
7f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project *
8f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
9f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project *
10f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software
11f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
12f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project * See the License for the specific language governing permissions and
14f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project * limitations under the License.
15f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project */
16f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project
17f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Projectpackage android.text.method.cts;
18f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project
193487313ff582d8a7ae2bf58e7379c4577522dd61Scott Suimport android.view.KeyEvent;
20f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project
21f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Projectimport junit.framework.Assert;
22f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project
23f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Projectpublic class TextMethodUtils {
24f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project    /**
25f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project     * Assert that two char arrays are equal.
26f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project     *
273487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su     * @param expected the expected char array.
283487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su     * @param actual the actual char array.
29f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project     */
303487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su    public static void assertEquals(char[] expected, char[] actual) {
313487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        if (expected != actual) {
323487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su            if (expected == null || actual == null) {
33f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project                Assert.fail("the char arrays are not equal");
34f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project            }
35f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project
363487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su            Assert.assertEquals(String.valueOf(expected), String.valueOf(actual));
37f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project        }
38f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project    }
39f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project
40f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project    /**
413487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su     * Get an unaccepted key code.
42f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project     *
433487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su     * @param acceptedChars accepted chars array.
443487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su     * @return return key code if we find unaccepted one, or return -1.
45f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project     */
463487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su    public static int getUnacceptedKeyCode(char[] acceptedChars) {
473487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        for (int keyCode = KeyEvent.KEYCODE_A; keyCode <= KeyEvent.KEYCODE_Z; keyCode++) {
483487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su            KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, keyCode);
493487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su            if ('\0' == event.getMatch(acceptedChars)) {
503487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su                return keyCode;
513487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su            }
52f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project        }
533487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        return -1;
54f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project    }
55f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project}
56