13487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su/*
23487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su * Copyright (C) 2008 The Android Open Source Project
33487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su *
43487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su * Licensed under the Apache License, Version 2.0 (the "License");
53487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su * you may not use this file except in compliance with the License.
63487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su * You may obtain a copy of the License at
73487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su *
83487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su *      http://www.apache.org/licenses/LICENSE-2.0
93487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su *
103487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su * Unless required by applicable law or agreed to in writing, software
113487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su * distributed under the License is distributed on an "AS IS" BASIS,
123487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
133487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su * See the License for the specific language governing permissions and
143487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su * limitations under the License.
153487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su */
163487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
173487313ff582d8a7ae2bf58e7379c4577522dd61Scott Supackage android.text.method.cts;
183487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
193487313ff582d8a7ae2bf58e7379c4577522dd61Scott Suimport com.android.cts.stub.R;
203487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
213487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
223487313ff582d8a7ae2bf58e7379c4577522dd61Scott Suimport android.app.Activity;
233487313ff582d8a7ae2bf58e7379c4577522dd61Scott Suimport android.app.Instrumentation;
243487313ff582d8a7ae2bf58e7379c4577522dd61Scott Suimport android.test.ActivityInstrumentationTestCase2;
253487313ff582d8a7ae2bf58e7379c4577522dd61Scott Suimport android.text.InputType;
263487313ff582d8a7ae2bf58e7379c4577522dd61Scott Suimport android.text.Selection;
273487313ff582d8a7ae2bf58e7379c4577522dd61Scott Suimport android.text.Spannable;
283487313ff582d8a7ae2bf58e7379c4577522dd61Scott Suimport android.text.SpannableStringBuilder;
293487313ff582d8a7ae2bf58e7379c4577522dd61Scott Suimport android.text.method.QwertyKeyListener;
303487313ff582d8a7ae2bf58e7379c4577522dd61Scott Suimport android.text.method.TextKeyListener;
313487313ff582d8a7ae2bf58e7379c4577522dd61Scott Suimport android.text.method.TextKeyListener.Capitalize;
323487313ff582d8a7ae2bf58e7379c4577522dd61Scott Suimport android.view.KeyEvent;
333487313ff582d8a7ae2bf58e7379c4577522dd61Scott Suimport android.widget.TextView;
343487313ff582d8a7ae2bf58e7379c4577522dd61Scott Suimport android.widget.TextView.BufferType;
353487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
363487313ff582d8a7ae2bf58e7379c4577522dd61Scott Supublic class QwertyKeyListenerTest extends
373487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        ActivityInstrumentationTestCase2<KeyListenerStubActivity> {
383487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su    private Activity mActivity;
393487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su    private Instrumentation mInstrumentation;
403487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su    private TextView mTextView;
413487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
423487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su    public QwertyKeyListenerTest() {
433487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        super("com.android.cts.stub", KeyListenerStubActivity.class);
443487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su    }
453487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
463487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su    @Override
473487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su    protected void setUp() throws Exception {
483487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        super.setUp();
493487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        mActivity = getActivity();
503487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        mInstrumentation = getInstrumentation();
513487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        mTextView = (TextView) mActivity.findViewById(R.id.keylistener_textview);
523487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su    }
533487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
543487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su    public void testConstructor() {
553487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        new QwertyKeyListener(Capitalize.NONE, false);
563487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
573487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        new QwertyKeyListener(Capitalize.WORDS, true);
583487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
593487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        new QwertyKeyListener(null, true);
603487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su    }
613487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
628301a50347223c940cf4775497d92eac1935532fBrian Muramatsu    public void testOnKeyDown_capitalizeNone() {
638301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        QwertyKeyListener keyListener = QwertyKeyListener.getInstance(false, Capitalize.NONE);
643487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
658301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        prepareEmptyTextView();
663487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
678301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        callOnKeyDown(keyListener, KeyEvent.KEYCODE_H);
683487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        assertEquals("h", mTextView.getText().toString());
693487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
708301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        callOnKeyDown(keyListener, KeyEvent.KEYCODE_E);
713487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        assertEquals("he", mTextView.getText().toString());
723487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
738301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        callOnKeyDown(keyListener, KeyEvent.KEYCODE_L);
743487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        assertEquals("hel", mTextView.getText().toString());
753487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
768301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        callOnKeyDown(keyListener, KeyEvent.KEYCODE_L);
773487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        assertEquals("hell", mTextView.getText().toString());
783487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
798301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        callOnKeyDown(keyListener, KeyEvent.KEYCODE_O);
808301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        assertEquals("hello", mTextView.getText().toString());
813487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su    }
823487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
838301a50347223c940cf4775497d92eac1935532fBrian Muramatsu    public void testOnKeyDown_capitalizeCharacters() {
848301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        QwertyKeyListener keyListener = QwertyKeyListener.getInstance(false,
858301a50347223c940cf4775497d92eac1935532fBrian Muramatsu                Capitalize.CHARACTERS);
863487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
878301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        prepareEmptyTextView();
883487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
898301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        callOnKeyDown(keyListener, KeyEvent.KEYCODE_H);
908301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        assertEquals("H", mTextView.getText().toString());
913487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
928301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        callOnKeyDown(keyListener, KeyEvent.KEYCODE_E);
938301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        assertEquals("HE", mTextView.getText().toString());
943487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
958301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        callOnKeyDown(keyListener, KeyEvent.KEYCODE_L);
968301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        assertEquals("HEL", mTextView.getText().toString());
973487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
988301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        callOnKeyDown(keyListener, KeyEvent.KEYCODE_L);
998301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        assertEquals("HELL", mTextView.getText().toString());
1003487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
1018301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        callOnKeyDown(keyListener, KeyEvent.KEYCODE_O);
1028301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        assertEquals("HELLO", mTextView.getText().toString());
1033487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su    }
1043487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
1058301a50347223c940cf4775497d92eac1935532fBrian Muramatsu    public void testOnKeyDown_capitalizeSentences() {
1068301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        QwertyKeyListener keyListener = QwertyKeyListener.getInstance(false,
1078301a50347223c940cf4775497d92eac1935532fBrian Muramatsu                Capitalize.SENTENCES);
1083487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
1098301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        prepareEmptyTextView();
1103487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
1118301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        callOnKeyDown(keyListener, KeyEvent.KEYCODE_H);
1123487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        assertEquals("H", mTextView.getText().toString());
1133487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
1148301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        callOnKeyDown(keyListener, KeyEvent.KEYCODE_I);
1158301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        assertEquals("Hi", mTextView.getText().toString());
1163487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
1178301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        callOnKeyDown(keyListener, KeyEvent.KEYCODE_PERIOD);
1188301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        assertEquals("Hi.", mTextView.getText().toString());
1193487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
1208301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        callOnKeyDown(keyListener, KeyEvent.KEYCODE_SPACE);
1218301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        assertEquals("Hi. ", mTextView.getText().toString());
1223487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
1238301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        callOnKeyDown(keyListener, KeyEvent.KEYCODE_B);
1248301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        assertEquals("Hi. B", mTextView.getText().toString());
1253487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
1268301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        callOnKeyDown(keyListener, KeyEvent.KEYCODE_Y);
1278301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        assertEquals("Hi. By", mTextView.getText().toString());
1283487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
1298301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        callOnKeyDown(keyListener, KeyEvent.KEYCODE_E);
1308301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        assertEquals("Hi. Bye", mTextView.getText().toString());
1313487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su    }
1323487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
1338301a50347223c940cf4775497d92eac1935532fBrian Muramatsu    public void testOnKeyDown_capitalizeWords() {
1348301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        QwertyKeyListener keyListener = QwertyKeyListener.getInstance(false,
1358301a50347223c940cf4775497d92eac1935532fBrian Muramatsu                Capitalize.WORDS);
1363487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
1378301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        prepareEmptyTextView();
1383487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
1398301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        callOnKeyDown(keyListener, KeyEvent.KEYCODE_H);
1403487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        assertEquals("H", mTextView.getText().toString());
1413487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
1428301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        callOnKeyDown(keyListener, KeyEvent.KEYCODE_I);
1438301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        assertEquals("Hi", mTextView.getText().toString());
1443487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
1458301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        callOnKeyDown(keyListener, KeyEvent.KEYCODE_SPACE);
1468301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        assertEquals("Hi ", mTextView.getText().toString());
1473487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
1488301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        callOnKeyDown(keyListener, KeyEvent.KEYCODE_B);
1498301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        assertEquals("Hi B", mTextView.getText().toString());
1503487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
1518301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        callOnKeyDown(keyListener, KeyEvent.KEYCODE_Y);
1528301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        assertEquals("Hi By", mTextView.getText().toString());
1533487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
1548301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        callOnKeyDown(keyListener, KeyEvent.KEYCODE_E);
1558301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        assertEquals("Hi Bye", mTextView.getText().toString());
1563487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su    }
1573487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
1588301a50347223c940cf4775497d92eac1935532fBrian Muramatsu    private void prepareEmptyTextView() {
1593487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        mActivity.runOnUiThread(new Runnable() {
1603487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su            public void run() {
1613487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su                mTextView.setText("", BufferType.EDITABLE);
1628301a50347223c940cf4775497d92eac1935532fBrian Muramatsu                Selection.setSelection(mTextView.getEditableText(), 0, 0);
1633487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su            }
1643487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        });
1653487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        mInstrumentation.waitForIdleSync();
1663487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        assertEquals("", mTextView.getText().toString());
1678301a50347223c940cf4775497d92eac1935532fBrian Muramatsu    }
1683487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
1698301a50347223c940cf4775497d92eac1935532fBrian Muramatsu    private void callOnKeyDown(final QwertyKeyListener keyListener, final int keyCode) {
1708301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        mActivity.runOnUiThread(new Runnable() {
1718301a50347223c940cf4775497d92eac1935532fBrian Muramatsu            public void run() {
1728301a50347223c940cf4775497d92eac1935532fBrian Muramatsu                keyListener.onKeyDown(mTextView, mTextView.getEditableText(), keyCode,
1738301a50347223c940cf4775497d92eac1935532fBrian Muramatsu                        new KeyEvent(KeyEvent.ACTION_DOWN, keyCode));
1748301a50347223c940cf4775497d92eac1935532fBrian Muramatsu            }
1758301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        });
1768301a50347223c940cf4775497d92eac1935532fBrian Muramatsu        mInstrumentation.waitForIdleSync();
1773487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su    }
1783487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
1793487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su    public void testGetInstance() {
1803487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        QwertyKeyListener listener1 = QwertyKeyListener.getInstance(true, Capitalize.WORDS);
1813487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        QwertyKeyListener listener2 = QwertyKeyListener.getInstance(true, Capitalize.WORDS);
1823487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        QwertyKeyListener listener3 = QwertyKeyListener.getInstance(false, Capitalize.WORDS);
1833487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        QwertyKeyListener listener4 = QwertyKeyListener.getInstance(true, Capitalize.SENTENCES);
1843487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
1853487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        assertNotNull(listener1);
1863487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        assertNotNull(listener2);
1873487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        assertSame(listener1, listener2);
1883487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
1893487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        assertNotSame(listener1, listener3);
1903487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        assertNotSame(listener1, listener4);
1913487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        assertNotSame(listener4, listener3);
1923487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su    }
1933487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
1943487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su    public void testMarkAsReplaced() {
1953487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        SpannableStringBuilder content = new SpannableStringBuilder("123456");
1963487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
1973487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        Object[] repl = content.getSpans(0, content.length(), Object.class);
1983487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        assertEquals(0, repl.length);
1993487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
2003487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        QwertyKeyListener.markAsReplaced(content, 0, content.length(), "abcd");
2013487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        repl = content.getSpans(0, content.length(), Object.class);
2023487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        assertEquals(1, repl.length);
2033487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        assertEquals(0, content.getSpanStart(repl[0]));
2043487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        assertEquals(content.length(), content.getSpanEnd(repl[0]));
2053487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        assertEquals(Spannable.SPAN_EXCLUSIVE_EXCLUSIVE, content.getSpanFlags(repl[0]));
2063487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
2073487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        QwertyKeyListener.markAsReplaced(content, 1, 2, "abcd");
2083487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        repl = content.getSpans(0, content.length(), Object.class);
2093487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        assertEquals(1, repl.length);
2103487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        assertEquals(1, content.getSpanStart(repl[0]));
2113487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        assertEquals(2, content.getSpanEnd(repl[0]));
2123487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        assertEquals(Spannable.SPAN_EXCLUSIVE_EXCLUSIVE, content.getSpanFlags(repl[0]));
2133487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
2143487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        try {
2153487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su            QwertyKeyListener.markAsReplaced(null, 1, 2, "abcd");
2163487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su            fail("should throw NullPointerException.");
2173487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        } catch (NullPointerException e) {
2183487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        }
2193487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
2203487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        try {
2213487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su            QwertyKeyListener.markAsReplaced(content, 1, 2, null);
2223487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su            fail("should throw NullPointerException.");
2233487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        } catch (NullPointerException e) {
2243487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        }
2253487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su    }
2263487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
2273487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su    public void testGetInputType() {
2283487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        QwertyKeyListener listener = QwertyKeyListener.getInstance(false, Capitalize.NONE);
2293487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        int expected = InputType.TYPE_CLASS_TEXT;
2303487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        assertEquals(expected, listener.getInputType());
2313487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su
2323487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        listener = QwertyKeyListener.getInstance(false, Capitalize.CHARACTERS);
2333487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        expected = InputType.TYPE_CLASS_TEXT
2343487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su                | InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS;
2353487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su        assertEquals(expected, listener.getInputType());
2363487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su    }
2373487313ff582d8a7ae2bf58e7379c4577522dd61Scott Su}
238