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