diff options
| author | 2017-05-05 15:43:52 +0100 | |
|---|---|---|
| committer | 2017-05-05 15:43:52 +0100 | |
| commit | 869dd39c5a9c1e55a1d7ab796a05e5e710dff348 (patch) | |
| tree | 2cb43354f97c5771b62155434f82fa7be9f445b5 | |
| parent | d14e67656f61d35ca4982cbee7aa9692f35fe9eb (diff) | |
Fix broken Backspace/ForwardDelete tests
* correctly use @Before to intstantiate
* get rid of useless KeyListenerTestCase class
* move to KeyUtils, refactor and document util method to generate
a KeyEvent
Bug: 37991689
Test: adb shell am instrument -w -e package android.text.method
com.android.frameworks.coretests/android.support.test.runner.AndroidJUnitRunner
Change-Id: Ibbce351f31eb62492cd1c7c920fdef44df89b683
4 files changed, 42 insertions, 45 deletions
diff --git a/core/tests/coretests/src/android/text/method/BackspaceTest.java b/core/tests/coretests/src/android/text/method/BackspaceTest.java index 6e418317ec98..8b5cc60ddaea 100644 --- a/core/tests/coretests/src/android/text/method/BackspaceTest.java +++ b/core/tests/coretests/src/android/text/method/BackspaceTest.java @@ -16,10 +16,13 @@ package android.text.method; +import android.support.test.InstrumentationRegistry; import android.support.test.filters.SmallTest; import android.support.test.runner.AndroidJUnit4; import android.text.InputType; +import android.util.KeyUtils; import android.view.KeyEvent; +import android.widget.EditText; import android.widget.TextView.BufferType; import org.junit.Before; import org.junit.Test; @@ -33,13 +36,21 @@ import org.junit.runner.RunWith; */ @SmallTest @RunWith(AndroidJUnit4.class) -public class BackspaceTest extends KeyListenerTestCase { +public class BackspaceTest { + private EditText mTextView; + private static final BaseKeyListener mKeyListener = new BaseKeyListener() { public int getInputType() { return InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_NORMAL; } }; + @Before + public void setup() { + mTextView = new EditText(InstrumentationRegistry.getInstrumentation().getContext()); + } + + // Sync the state to the TextView and call onKeyDown with KEYCODE_DEL key event. // Then update the state to the result of TextView. private void backspace(final EditorState state, int modifiers) { @@ -47,7 +58,8 @@ public class BackspaceTest extends KeyListenerTestCase { mTextView.setKeyListener(mKeyListener); mTextView.setSelection(state.mSelectionStart, state.mSelectionEnd); - final KeyEvent keyEvent = getKey(KeyEvent.KEYCODE_DEL, modifiers); + final KeyEvent keyEvent = KeyUtils.generateKeyEvent( + KeyEvent.KEYCODE_DEL, KeyEvent.ACTION_DOWN, modifiers); mTextView.onKeyDown(keyEvent.getKeyCode(), keyEvent); state.mText = mTextView.getText(); diff --git a/core/tests/coretests/src/android/text/method/ForwardDeleteTest.java b/core/tests/coretests/src/android/text/method/ForwardDeleteTest.java index 6914e217e2af..c3a5f800daf9 100644 --- a/core/tests/coretests/src/android/text/method/ForwardDeleteTest.java +++ b/core/tests/coretests/src/android/text/method/ForwardDeleteTest.java @@ -16,10 +16,13 @@ package android.text.method; +import android.support.test.InstrumentationRegistry; import android.support.test.filters.SmallTest; import android.support.test.runner.AndroidJUnit4; import android.text.InputType; +import android.util.KeyUtils; import android.view.KeyEvent; +import android.widget.EditText; import android.widget.TextView.BufferType; import org.junit.Before; @@ -34,13 +37,20 @@ import org.junit.runner.RunWith; */ @SmallTest @RunWith(AndroidJUnit4.class) -public class ForwardDeleteTest extends KeyListenerTestCase { +public class ForwardDeleteTest { + private EditText mTextView; + private static final BaseKeyListener mKeyListener = new BaseKeyListener() { public int getInputType() { return InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_NORMAL; } }; + @Before + public void setup() { + mTextView = new EditText(InstrumentationRegistry.getInstrumentation().getContext()); + } + // Sync the state to the TextView and call onKeyDown with KEYCODE_FORWARD_DEL key event. // Then update the state to the result of TextView. private void forwardDelete(final EditorState state, int modifiers) { @@ -48,7 +58,8 @@ public class ForwardDeleteTest extends KeyListenerTestCase { mTextView.setKeyListener(mKeyListener); mTextView.setSelection(state.mSelectionStart, state.mSelectionEnd); - final KeyEvent keyEvent = getKey(KeyEvent.KEYCODE_FORWARD_DEL, modifiers); + final KeyEvent keyEvent = KeyUtils.generateKeyEvent( + KeyEvent.KEYCODE_FORWARD_DEL, KeyEvent.ACTION_DOWN, modifiers); mTextView.onKeyDown(keyEvent.getKeyCode(), keyEvent); state.mText = mTextView.getText(); diff --git a/core/tests/coretests/src/android/text/method/KeyListenerTestCase.java b/core/tests/coretests/src/android/text/method/KeyListenerTestCase.java deleted file mode 100644 index 99a009104fee..000000000000 --- a/core/tests/coretests/src/android/text/method/KeyListenerTestCase.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (C) 2016 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package android.text.method; - -import android.app.Instrumentation; -import android.support.test.InstrumentationRegistry; -import android.view.KeyEvent; -import android.widget.EditText; - -public abstract class KeyListenerTestCase { - protected Instrumentation mInstrumentation; - protected EditText mTextView; - - public KeyListenerTestCase() { - } - - protected void setup() { - mInstrumentation = InstrumentationRegistry.getInstrumentation(); - mTextView = new EditText(mInstrumentation.getContext()); - } - - protected static KeyEvent getKey(int keycode, int metaState) { - long currentTime = System.currentTimeMillis(); - return new KeyEvent(currentTime, currentTime, KeyEvent.ACTION_DOWN, keycode, - 0 /* repeat */, metaState); - } -} diff --git a/core/tests/coretests/src/android/util/KeyUtils.java b/core/tests/coretests/src/android/util/KeyUtils.java index b58fda35ed6e..593f72742ea6 100644 --- a/core/tests/coretests/src/android/util/KeyUtils.java +++ b/core/tests/coretests/src/android/util/KeyUtils.java @@ -85,4 +85,19 @@ public class KeyUtils { } inst.sendKeySync(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DPAD_CENTER)); } + + /** + * Generates a {@link KeyEvent}. + * + * @param keycode The integer keycode for the event to be generated. + * @param keyEventAction The integer {@link KeyEvent} action code. + * @param metaState Flags indicating which meta keys are currently pressed. + * + * @return a new {@link KeyEvent} for current time. + */ + public static KeyEvent generateKeyEvent(int keycode, int keyEventAction, int metaState) { + long currentTime = System.currentTimeMillis(); + return new KeyEvent(currentTime, currentTime, keyEventAction, keycode, + 0 /* repeat */, metaState); + } } |