Loading core/tests/coretests/src/android/widget/TextViewActivityMouseTest.java +24 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ package android.widget; import static android.widget.espresso.DragHandleUtils.assertNoSelectionHandles; import static android.widget.espresso.DragHandleUtils.onHandleView; import static android.widget.espresso.TextViewActions.mouseClickOnTextAtIndex; import static android.widget.espresso.TextViewActions.mouseDoubleClickOnTextAtIndex; import static android.widget.espresso.TextViewActions.mouseLongClickOnTextAtIndex; import static android.widget.espresso.TextViewActions.mouseDoubleClickAndDragOnText; Loading @@ -25,6 +28,8 @@ import static android.widget.espresso.TextViewAssertions.hasSelection; import static android.support.test.espresso.Espresso.onView; import static android.support.test.espresso.action.ViewActions.click; import static android.support.test.espresso.action.ViewActions.typeTextIntoFocusedView; import static android.support.test.espresso.assertion.ViewAssertions.matches; import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; import static android.support.test.espresso.matcher.ViewMatchers.withId; import com.android.frameworks.coretests.R; Loading @@ -48,10 +53,23 @@ public class TextViewActivityMouseTest extends ActivityInstrumentationTestCase2< final String helloWorld = "Hello world!"; onView(withId(R.id.textview)).perform(click()); onView(withId(R.id.textview)).perform(typeTextIntoFocusedView(helloWorld)); assertNoSelectionHandles(); onView(withId(R.id.textview)).perform( mouseDragOnText(helloWorld.indexOf("llo"), helloWorld.indexOf("ld!"))); onView(withId(R.id.textview)).check(hasSelection("llo wor")); onHandleView(com.android.internal.R.id.selection_start_handle) .check(matches(isDisplayed())); onHandleView(com.android.internal.R.id.selection_end_handle) .check(matches(isDisplayed())); onView(withId(R.id.textview)).perform(mouseClickOnTextAtIndex(helloWorld.indexOf("w"))); onView(withId(R.id.textview)).check(hasSelection("")); assertNoSelectionHandles(); } @SmallTest Loading Loading @@ -89,6 +107,9 @@ public class TextViewActivityMouseTest extends ActivityInstrumentationTestCase2< onView(withId(R.id.textview)).perform(mouseLongClickOnTextAtIndex( helloWorld.indexOf("rld"))); onView(withId(R.id.textview)).check(hasSelection("world")); onView(withId(R.id.textview)).perform(mouseLongClickOnTextAtIndex(helloWorld.length())); onView(withId(R.id.textview)).check(hasSelection("!")); } @SmallTest Loading @@ -113,6 +134,9 @@ public class TextViewActivityMouseTest extends ActivityInstrumentationTestCase2< onView(withId(R.id.textview)).perform(mouseDoubleClickOnTextAtIndex( helloWorld.indexOf("rld"))); onView(withId(R.id.textview)).check(hasSelection("world")); onView(withId(R.id.textview)).perform(mouseDoubleClickOnTextAtIndex(helloWorld.length())); onView(withId(R.id.textview)).check(hasSelection("!")); } @SmallTest Loading core/tests/coretests/src/android/widget/TextViewActivityTest.java +2 −28 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package android.widget; import static android.widget.espresso.DragHandleUtils.assertNoSelectionHandles; import static android.widget.espresso.DragHandleUtils.onHandleView; import static android.widget.espresso.TextViewActions.clickOnTextAtIndex; import static android.widget.espresso.TextViewActions.doubleTapAndDragOnText; import static android.widget.espresso.TextViewActions.doubleClickOnTextAtIndex; Loading @@ -31,19 +33,12 @@ import static android.support.test.espresso.action.ViewActions.click; import static android.support.test.espresso.action.ViewActions.pressKey; import static android.support.test.espresso.action.ViewActions.typeTextIntoFocusedView; import static android.support.test.espresso.assertion.ViewAssertions.matches; import static android.support.test.espresso.matcher.RootMatchers.withDecorView; import static android.support.test.espresso.matcher.ViewMatchers.hasDescendant; import static android.support.test.espresso.matcher.ViewMatchers.isAssignableFrom; import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; import static android.support.test.espresso.matcher.ViewMatchers.withId; import static android.support.test.espresso.matcher.ViewMatchers.withText; import static org.hamcrest.Matchers.allOf; import com.android.frameworks.coretests.R; import android.support.test.espresso.NoMatchingRootException; import android.support.test.espresso.NoMatchingViewException; import android.support.test.espresso.ViewInteraction; import android.test.ActivityInstrumentationTestCase2; import android.test.suitebuilder.annotation.SmallTest; import android.view.KeyEvent; Loading Loading @@ -342,25 +337,4 @@ public class TextViewActivityTest extends ActivityInstrumentationTestCase2<TextV .perform(dragHandle(textView, Handle.SELECTION_END, text.indexOf('i'))); onView(withId(R.id.textview)).check(hasSelection("hijk")); } private static void assertNoSelectionHandles() { try { onHandleView(com.android.internal.R.id.selection_start_handle) .check(matches(isDisplayed())); } catch (NoMatchingRootException | NoMatchingViewException | AssertionError e) { try { onHandleView(com.android.internal.R.id.selection_end_handle) .check(matches(isDisplayed())); } catch (NoMatchingRootException | NoMatchingViewException | AssertionError e1) { return; } } throw new AssertionError("Selection handle found"); } private static ViewInteraction onHandleView(int id) throws NoMatchingRootException, NoMatchingViewException, AssertionError { return onView(allOf(withId(id), isAssignableFrom(Editor.HandleView.class))) .inRoot(withDecorView(hasDescendant(withId(id)))); } } core/tests/coretests/src/android/widget/espresso/DragHandleUtils.java 0 → 100644 +58 −0 Original line number Diff line number Diff line /* * Copyright (C) 2015 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.widget.espresso; import static android.support.test.espresso.Espresso.onView; import static android.support.test.espresso.assertion.ViewAssertions.matches; import static android.support.test.espresso.matcher.RootMatchers.withDecorView; import static android.support.test.espresso.matcher.ViewMatchers.hasDescendant; import static android.support.test.espresso.matcher.ViewMatchers.isAssignableFrom; import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; import static android.support.test.espresso.matcher.ViewMatchers.withId; import static org.hamcrest.Matchers.allOf; import android.support.test.espresso.NoMatchingRootException; import android.support.test.espresso.NoMatchingViewException; import android.support.test.espresso.ViewInteraction; import android.widget.Editor; public class DragHandleUtils { private DragHandleUtils() { } public static void assertNoSelectionHandles() { try { onHandleView(com.android.internal.R.id.selection_start_handle) .check(matches(isDisplayed())); } catch (NoMatchingRootException | NoMatchingViewException | AssertionError e) { try { onHandleView(com.android.internal.R.id.selection_end_handle) .check(matches(isDisplayed())); } catch (NoMatchingRootException | NoMatchingViewException | AssertionError e1) { return; } } throw new AssertionError("Selection handle found"); } public static ViewInteraction onHandleView(int id) throws NoMatchingRootException, NoMatchingViewException, AssertionError { return onView(allOf(withId(id), isAssignableFrom(Editor.HandleView.class))) .inRoot(withDecorView(hasDescendant(withId(id)))); } } Loading
core/tests/coretests/src/android/widget/TextViewActivityMouseTest.java +24 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ package android.widget; import static android.widget.espresso.DragHandleUtils.assertNoSelectionHandles; import static android.widget.espresso.DragHandleUtils.onHandleView; import static android.widget.espresso.TextViewActions.mouseClickOnTextAtIndex; import static android.widget.espresso.TextViewActions.mouseDoubleClickOnTextAtIndex; import static android.widget.espresso.TextViewActions.mouseLongClickOnTextAtIndex; import static android.widget.espresso.TextViewActions.mouseDoubleClickAndDragOnText; Loading @@ -25,6 +28,8 @@ import static android.widget.espresso.TextViewAssertions.hasSelection; import static android.support.test.espresso.Espresso.onView; import static android.support.test.espresso.action.ViewActions.click; import static android.support.test.espresso.action.ViewActions.typeTextIntoFocusedView; import static android.support.test.espresso.assertion.ViewAssertions.matches; import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; import static android.support.test.espresso.matcher.ViewMatchers.withId; import com.android.frameworks.coretests.R; Loading @@ -48,10 +53,23 @@ public class TextViewActivityMouseTest extends ActivityInstrumentationTestCase2< final String helloWorld = "Hello world!"; onView(withId(R.id.textview)).perform(click()); onView(withId(R.id.textview)).perform(typeTextIntoFocusedView(helloWorld)); assertNoSelectionHandles(); onView(withId(R.id.textview)).perform( mouseDragOnText(helloWorld.indexOf("llo"), helloWorld.indexOf("ld!"))); onView(withId(R.id.textview)).check(hasSelection("llo wor")); onHandleView(com.android.internal.R.id.selection_start_handle) .check(matches(isDisplayed())); onHandleView(com.android.internal.R.id.selection_end_handle) .check(matches(isDisplayed())); onView(withId(R.id.textview)).perform(mouseClickOnTextAtIndex(helloWorld.indexOf("w"))); onView(withId(R.id.textview)).check(hasSelection("")); assertNoSelectionHandles(); } @SmallTest Loading Loading @@ -89,6 +107,9 @@ public class TextViewActivityMouseTest extends ActivityInstrumentationTestCase2< onView(withId(R.id.textview)).perform(mouseLongClickOnTextAtIndex( helloWorld.indexOf("rld"))); onView(withId(R.id.textview)).check(hasSelection("world")); onView(withId(R.id.textview)).perform(mouseLongClickOnTextAtIndex(helloWorld.length())); onView(withId(R.id.textview)).check(hasSelection("!")); } @SmallTest Loading @@ -113,6 +134,9 @@ public class TextViewActivityMouseTest extends ActivityInstrumentationTestCase2< onView(withId(R.id.textview)).perform(mouseDoubleClickOnTextAtIndex( helloWorld.indexOf("rld"))); onView(withId(R.id.textview)).check(hasSelection("world")); onView(withId(R.id.textview)).perform(mouseDoubleClickOnTextAtIndex(helloWorld.length())); onView(withId(R.id.textview)).check(hasSelection("!")); } @SmallTest Loading
core/tests/coretests/src/android/widget/TextViewActivityTest.java +2 −28 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package android.widget; import static android.widget.espresso.DragHandleUtils.assertNoSelectionHandles; import static android.widget.espresso.DragHandleUtils.onHandleView; import static android.widget.espresso.TextViewActions.clickOnTextAtIndex; import static android.widget.espresso.TextViewActions.doubleTapAndDragOnText; import static android.widget.espresso.TextViewActions.doubleClickOnTextAtIndex; Loading @@ -31,19 +33,12 @@ import static android.support.test.espresso.action.ViewActions.click; import static android.support.test.espresso.action.ViewActions.pressKey; import static android.support.test.espresso.action.ViewActions.typeTextIntoFocusedView; import static android.support.test.espresso.assertion.ViewAssertions.matches; import static android.support.test.espresso.matcher.RootMatchers.withDecorView; import static android.support.test.espresso.matcher.ViewMatchers.hasDescendant; import static android.support.test.espresso.matcher.ViewMatchers.isAssignableFrom; import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; import static android.support.test.espresso.matcher.ViewMatchers.withId; import static android.support.test.espresso.matcher.ViewMatchers.withText; import static org.hamcrest.Matchers.allOf; import com.android.frameworks.coretests.R; import android.support.test.espresso.NoMatchingRootException; import android.support.test.espresso.NoMatchingViewException; import android.support.test.espresso.ViewInteraction; import android.test.ActivityInstrumentationTestCase2; import android.test.suitebuilder.annotation.SmallTest; import android.view.KeyEvent; Loading Loading @@ -342,25 +337,4 @@ public class TextViewActivityTest extends ActivityInstrumentationTestCase2<TextV .perform(dragHandle(textView, Handle.SELECTION_END, text.indexOf('i'))); onView(withId(R.id.textview)).check(hasSelection("hijk")); } private static void assertNoSelectionHandles() { try { onHandleView(com.android.internal.R.id.selection_start_handle) .check(matches(isDisplayed())); } catch (NoMatchingRootException | NoMatchingViewException | AssertionError e) { try { onHandleView(com.android.internal.R.id.selection_end_handle) .check(matches(isDisplayed())); } catch (NoMatchingRootException | NoMatchingViewException | AssertionError e1) { return; } } throw new AssertionError("Selection handle found"); } private static ViewInteraction onHandleView(int id) throws NoMatchingRootException, NoMatchingViewException, AssertionError { return onView(allOf(withId(id), isAssignableFrom(Editor.HandleView.class))) .inRoot(withDecorView(hasDescendant(withId(id)))); } }
core/tests/coretests/src/android/widget/espresso/DragHandleUtils.java 0 → 100644 +58 −0 Original line number Diff line number Diff line /* * Copyright (C) 2015 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.widget.espresso; import static android.support.test.espresso.Espresso.onView; import static android.support.test.espresso.assertion.ViewAssertions.matches; import static android.support.test.espresso.matcher.RootMatchers.withDecorView; import static android.support.test.espresso.matcher.ViewMatchers.hasDescendant; import static android.support.test.espresso.matcher.ViewMatchers.isAssignableFrom; import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; import static android.support.test.espresso.matcher.ViewMatchers.withId; import static org.hamcrest.Matchers.allOf; import android.support.test.espresso.NoMatchingRootException; import android.support.test.espresso.NoMatchingViewException; import android.support.test.espresso.ViewInteraction; import android.widget.Editor; public class DragHandleUtils { private DragHandleUtils() { } public static void assertNoSelectionHandles() { try { onHandleView(com.android.internal.R.id.selection_start_handle) .check(matches(isDisplayed())); } catch (NoMatchingRootException | NoMatchingViewException | AssertionError e) { try { onHandleView(com.android.internal.R.id.selection_end_handle) .check(matches(isDisplayed())); } catch (NoMatchingRootException | NoMatchingViewException | AssertionError e1) { return; } } throw new AssertionError("Selection handle found"); } public static ViewInteraction onHandleView(int id) throws NoMatchingRootException, NoMatchingViewException, AssertionError { return onView(allOf(withId(id), isAssignableFrom(Editor.HandleView.class))) .inRoot(withDecorView(hasDescendant(withId(id)))); } }