diff options
Diffstat (limited to 'espresso/espresso-lib-tests/src/androidTest/java/com/google/android/apps/common/testing/ui/espresso/matcher/ViewMatchersTest.java')
-rw-r--r-- | espresso/espresso-lib-tests/src/androidTest/java/com/google/android/apps/common/testing/ui/espresso/matcher/ViewMatchersTest.java | 456 |
1 files changed, 0 insertions, 456 deletions
diff --git a/espresso/espresso-lib-tests/src/androidTest/java/com/google/android/apps/common/testing/ui/espresso/matcher/ViewMatchersTest.java b/espresso/espresso-lib-tests/src/androidTest/java/com/google/android/apps/common/testing/ui/espresso/matcher/ViewMatchersTest.java deleted file mode 100644 index 5000e46..0000000 --- a/espresso/espresso-lib-tests/src/androidTest/java/com/google/android/apps/common/testing/ui/espresso/matcher/ViewMatchersTest.java +++ /dev/null @@ -1,456 +0,0 @@ -/* - * Copyright (C) 2014 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 com.google.android.apps.common.testing.ui.espresso.matcher; - -import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.hasContentDescription; -import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.hasDescendant; -import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.hasImeAction; -import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.hasSibling; -import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.isAssignableFrom; -import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.isChecked; -import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.isClickable; -import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.isDescendantOfA; -import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.isEnabled; -import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.isFocusable; -import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.isNotChecked; -import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.isRoot; -import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.supportsInputMethods; -import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.withChild; -import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.withContentDescription; -import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.withEffectiveVisibility; -import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.withId; -import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.withParent; -import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.withTagKey; -import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.withTagValue; -import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.withText; -import static org.hamcrest.Matchers.is; - -import com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.Visibility; -import com.google.android.apps.common.testing.ui.testapp.test.R; - -import android.test.InstrumentationTestCase; -import android.view.View; -import android.view.ViewGroup; -import android.view.inputmethod.EditorInfo; -import android.widget.Button; -import android.widget.CheckBox; -import android.widget.Checkable; -import android.widget.CheckedTextView; -import android.widget.EditText; -import android.widget.LinearLayout; -import android.widget.RadioButton; -import android.widget.RelativeLayout; -import android.widget.ScrollView; -import android.widget.Spinner; -import android.widget.TextView; - -import org.hamcrest.Matcher; -import org.hamcrest.Matchers; - -/** - * Unit tests for {@link ViewMatchers}. - */ -public class ViewMatchersTest extends InstrumentationTestCase { - public void testIsAssignableFrom_notAnInstance() { - View v = new View(getInstrumentation().getTargetContext()); - assertFalse(isAssignableFrom(Spinner.class).matches(v)); - } - - public void testIsAssignableFrom_plainView() { - View v = new View(getInstrumentation().getTargetContext()); - assertTrue(isAssignableFrom(View.class).matches(v)); - } - - public void testIsAssignableFrom_superclass() { - View v = new RadioButton(getInstrumentation().getTargetContext()); - assertTrue(isAssignableFrom(Button.class).matches(v)); - } - - @SuppressWarnings("cast") - public void testWithContentDescriptionCharSequence() { - View view = new View(getInstrumentation().getTargetContext()); - view.setContentDescription(null); - assertTrue(withContentDescription(Matchers.<CharSequence>nullValue()).matches(view)); - CharSequence testText = "test text!"; - view.setContentDescription(testText); - assertTrue(withContentDescription(is(testText)).matches(view)); - assertFalse(withContentDescription(is((CharSequence) "blah")).matches(view)); - assertFalse(withContentDescription(is((CharSequence) "")).matches(view)); - } - - public void testWithContentDescriptionNull() { - try { - withContentDescription((Matcher<CharSequence>) null); - fail("Should of thrown NPE"); - } catch (NullPointerException e) { - // Good, this is expected. - } - } - - public void testHasContentDescription() { - View view = new View(getInstrumentation().getTargetContext()); - view.setContentDescription(null); - assertFalse(hasContentDescription().matches(view)); - CharSequence testText = "test text!"; - view.setContentDescription(testText); - assertTrue(hasContentDescription().matches(view)); - } - - public void testWithContentDescriptionString() { - View view = new View(getInstrumentation().getTargetContext()); - view.setContentDescription(null); - assertTrue(withContentDescription(Matchers.<String>nullValue()).matches(view)); - String testText = "test text!"; - view.setContentDescription(testText); - assertTrue(withContentDescription(is(testText)).matches(view)); - assertFalse(withContentDescription(is("blah")).matches(view)); - assertFalse(withContentDescription(is("")).matches(view)); - } - - public void testWithId() { - View view = new View(getInstrumentation().getTargetContext()); - view.setId(R.id.testId1); - assertTrue(withId(is(R.id.testId1)).matches(view)); - assertFalse(withId(is(R.id.testId2)).matches(view)); - assertFalse(withId(is(1234)).matches(view)); - } - - public void testWithTagNull() { - try { - withTagKey(0, null); - fail("Should of thrown NPE"); - } catch (NullPointerException e) { - // Good, this is expected. - } - - try { - withTagValue(null); - fail("Should of thrown NPE"); - } catch (NullPointerException e) { - // Good, this is expected. - } - } - - public void testWithTagObject() { - View view = new View(getInstrumentation().getTargetContext()); - view.setTag(null); - assertTrue(withTagValue(Matchers.<Object>nullValue()).matches(view)); - String testObjectText = "test text!"; - view.setTag(testObjectText); - assertFalse(withTagKey(R.id.testId1).matches(view)); - assertTrue(withTagValue(is((Object) testObjectText)).matches(view)); - assertFalse(withTagValue(is((Object) "blah")).matches(view)); - assertFalse(withTagValue(is((Object) "")).matches(view)); - } - - public void testWithTagKey() { - View view = new View(getInstrumentation().getTargetContext()); - assertFalse(withTagKey(R.id.testId1).matches(view)); - view.setTag(R.id.testId1, "blah"); - assertFalse(withTagValue(is((Object) "blah")).matches(view)); - assertTrue(withTagKey(R.id.testId1).matches(view)); - assertFalse(withTagKey(R.id.testId2).matches(view)); - assertFalse(withTagKey(R.id.testId3).matches(view)); - assertFalse(withTagKey(65535).matches(view)); - - view.setTag(R.id.testId2, "blah2"); - assertTrue(withTagKey(R.id.testId1).matches(view)); - assertTrue(withTagKey(R.id.testId2).matches(view)); - assertFalse(withTagKey(R.id.testId3).matches(view)); - assertFalse(withTagKey(65535).matches(view)); - assertFalse(withTagValue(is((Object) "blah")).matches(view)); - } - - public void testWithTagKeyObject() { - View view = new View(getInstrumentation().getTargetContext()); - String testObjectText1 = "test text1!"; - String testObjectText2 = "test text2!"; - assertFalse(withTagKey(R.id.testId1, is((Object) testObjectText1)).matches(view)); - view.setTag(R.id.testId1, testObjectText1); - assertTrue(withTagKey(R.id.testId1, is((Object) testObjectText1)).matches(view)); - assertFalse(withTagKey(R.id.testId1, is((Object) testObjectText2)).matches(view)); - assertFalse(withTagKey(R.id.testId2, is((Object) testObjectText1)).matches(view)); - assertFalse(withTagKey(R.id.testId3, is((Object) testObjectText1)).matches(view)); - assertFalse(withTagKey(65535, is((Object) testObjectText1)).matches(view)); - assertFalse(withTagValue(is((Object) "blah")).matches(view)); - - view.setTag(R.id.testId2, testObjectText2); - assertTrue(withTagKey(R.id.testId1, is((Object) testObjectText1)).matches(view)); - assertFalse(withTagKey(R.id.testId1, is((Object) testObjectText2)).matches(view)); - assertTrue(withTagKey(R.id.testId2, is((Object) testObjectText2)).matches(view)); - assertFalse(withTagKey(R.id.testId2, is((Object) testObjectText1)).matches(view)); - assertFalse(withTagKey(R.id.testId3, is((Object) testObjectText1)).matches(view)); - assertFalse(withTagKey(65535, is((Object) testObjectText1)).matches(view)); - assertFalse(withTagValue(is((Object) "blah")).matches(view)); - } - - public void testWithTextNull() { - try { - withText((Matcher<String>) null); - fail("Should of thrown NPE"); - } catch (NullPointerException e) { - // Good, this is expected. - } - } - - public void testCheckBoxMatchers() { - assertFalse(isChecked().matches(new Spinner(getInstrumentation().getTargetContext()))); - assertFalse(isNotChecked().matches(new Spinner(getInstrumentation().getTargetContext()))); - - CheckBox checkBox = new CheckBox(getInstrumentation().getTargetContext()); - checkBox.setChecked(true); - assertTrue(isChecked().matches(checkBox)); - assertFalse(isNotChecked().matches(checkBox)); - - checkBox.setChecked(false); - assertFalse(isChecked().matches(checkBox)); - assertTrue(isNotChecked().matches(checkBox)); - - RadioButton radioButton = new RadioButton(getInstrumentation().getTargetContext()); - radioButton.setChecked(false); - assertFalse(isChecked().matches(radioButton)); - assertTrue(isNotChecked().matches(radioButton)); - - radioButton.setChecked(true); - assertTrue(isChecked().matches(radioButton)); - assertFalse(isNotChecked().matches(radioButton)); - - CheckedTextView checkedText = new CheckedTextView(getInstrumentation().getTargetContext()); - checkedText.setChecked(false); - assertFalse(isChecked().matches(checkedText)); - assertTrue(isNotChecked().matches(checkedText)); - - checkedText.setChecked(true); - assertTrue(isChecked().matches(checkedText)); - assertFalse(isNotChecked().matches(checkedText)); - - Checkable checkable = new Checkable() { - @Override - public boolean isChecked() { return true; } - @Override - public void setChecked(boolean ignored) {} - @Override - public void toggle() {} - }; - - assertFalse(isChecked().matches(checkable)); - assertFalse(isNotChecked().matches(checkable)); - } - - public void testWithTextString() { - TextView textView = new TextView(getInstrumentation().getTargetContext()); - textView.setText(null); - assertTrue(withText(is("")).matches(textView)); - String testText = "test text!"; - textView.setText(testText); - assertTrue(withText(is(testText)).matches(textView)); - assertFalse(withText(is("blah")).matches(textView)); - assertFalse(withText(is("")).matches(textView)); - } - - public void testHasDescendant() { - View v = new TextView(getInstrumentation().getTargetContext()); - ViewGroup parent = new RelativeLayout(getInstrumentation().getTargetContext()); - ViewGroup grany = new ScrollView(getInstrumentation().getTargetContext()); - grany.addView(parent); - parent.addView(v); - assertTrue(hasDescendant(isAssignableFrom(TextView.class)).matches(grany)); - assertTrue(hasDescendant(isAssignableFrom(TextView.class)).matches(parent)); - assertFalse(hasDescendant(isAssignableFrom(ScrollView.class)).matches(parent)); - assertFalse(hasDescendant(isAssignableFrom(TextView.class)).matches(v)); - } - - public void testIsDescendantOfA() { - View v = new TextView(getInstrumentation().getTargetContext()); - ViewGroup parent = new RelativeLayout(getInstrumentation().getTargetContext()); - ViewGroup grany = new ScrollView(getInstrumentation().getTargetContext()); - grany.addView(parent); - parent.addView(v); - assertTrue(isDescendantOfA(isAssignableFrom(RelativeLayout.class)).matches(v)); - assertTrue(isDescendantOfA(isAssignableFrom(ScrollView.class)).matches(v)); - assertFalse(isDescendantOfA(isAssignableFrom(LinearLayout.class)).matches(v)); - } - - public void testIsVisible() { - View visible = new View(getInstrumentation().getTargetContext()); - visible.setVisibility(View.VISIBLE); - View invisible = new View(getInstrumentation().getTargetContext()); - invisible.setVisibility(View.INVISIBLE); - assertTrue(withEffectiveVisibility(Visibility.VISIBLE).matches(visible)); - assertFalse(withEffectiveVisibility(Visibility.VISIBLE).matches(invisible)); - - // Make the visible view invisible by giving it an invisible parent. - ViewGroup parent = new RelativeLayout(getInstrumentation().getTargetContext()); - parent.addView(visible); - parent.setVisibility(View.INVISIBLE); - assertFalse(withEffectiveVisibility(Visibility.VISIBLE).matches(visible)); - } - - public void testIsInvisible() { - View visible = new View(getInstrumentation().getTargetContext()); - visible.setVisibility(View.VISIBLE); - View invisible = new View(getInstrumentation().getTargetContext()); - invisible.setVisibility(View.INVISIBLE); - assertFalse(withEffectiveVisibility(Visibility.INVISIBLE).matches(visible)); - assertTrue(withEffectiveVisibility(Visibility.INVISIBLE).matches(invisible)); - - // Make the visible view invisible by giving it an invisible parent. - ViewGroup parent = new RelativeLayout(getInstrumentation().getTargetContext()); - parent.addView(visible); - parent.setVisibility(View.INVISIBLE); - assertTrue(withEffectiveVisibility(Visibility.INVISIBLE).matches(visible)); - } - - public void testIsGone() { - View gone = new View(getInstrumentation().getTargetContext()); - gone.setVisibility(View.GONE); - View visible = new View(getInstrumentation().getTargetContext()); - visible.setVisibility(View.VISIBLE); - assertFalse(withEffectiveVisibility(Visibility.GONE).matches(visible)); - assertTrue(withEffectiveVisibility(Visibility.GONE).matches(gone)); - - // Make the gone view gone by giving it a gone parent. - ViewGroup parent = new RelativeLayout(getInstrumentation().getTargetContext()); - parent.addView(visible); - parent.setVisibility(View.GONE); - assertTrue(withEffectiveVisibility(Visibility.GONE).matches(visible)); - } - - public void testIsClickable() { - View clickable = new View(getInstrumentation().getTargetContext()); - clickable.setClickable(true); - View notClickable = new View(getInstrumentation().getTargetContext()); - notClickable.setClickable(false); - assertTrue(isClickable().matches(clickable)); - assertFalse(isClickable().matches(notClickable)); - } - - public void testIsEnabled() { - View enabled = new View(getInstrumentation().getTargetContext()); - enabled.setEnabled(true); - View notEnabled = new View(getInstrumentation().getTargetContext()); - notEnabled.setEnabled(false); - assertTrue(isEnabled().matches(enabled)); - assertFalse(isEnabled().matches(notEnabled)); - } - - public void testIsFocusable() { - View focusable = new View(getInstrumentation().getTargetContext()); - focusable.setFocusable(true); - View notFocusable = new View(getInstrumentation().getTargetContext()); - notFocusable.setFocusable(false); - assertTrue(isFocusable().matches(focusable)); - assertFalse(isFocusable().matches(notFocusable)); - } - - public void testWithTextResourceId() { - TextView textView = new TextView(getInstrumentation().getTargetContext()); - textView.setText(R.string.something); - assertTrue(withText(R.string.something).matches(textView)); - assertFalse(withText(R.string.other_string).matches(textView)); - } - - public void testWithParent() { - View view1 = new TextView(getInstrumentation().getTargetContext()); - View view2 = new TextView(getInstrumentation().getTargetContext()); - View view3 = new TextView(getInstrumentation().getTargetContext()); - ViewGroup tiptop = new RelativeLayout(getInstrumentation().getTargetContext()); - ViewGroup secondLevel = new RelativeLayout(getInstrumentation().getTargetContext()); - secondLevel.addView(view2); - secondLevel.addView(view3); - tiptop.addView(secondLevel); - tiptop.addView(view1); - assertTrue(withParent(is((View) tiptop)).matches(view1)); - assertTrue(withParent(is((View) tiptop)).matches(secondLevel)); - assertFalse(withParent(is((View) tiptop)).matches(view2)); - assertFalse(withParent(is((View) tiptop)).matches(view3)); - assertFalse(withParent(is((View) secondLevel)).matches(view1)); - - assertTrue(withParent(is((View) secondLevel)).matches(view2)); - assertTrue(withParent(is((View) secondLevel)).matches(view3)); - - assertFalse(withParent(is(view3)).matches(view3)); - } - - public void testWithChild() { - View view1 = new TextView(getInstrumentation().getTargetContext()); - View view2 = new TextView(getInstrumentation().getTargetContext()); - View view3 = new TextView(getInstrumentation().getTargetContext()); - ViewGroup tiptop = new RelativeLayout(getInstrumentation().getTargetContext()); - ViewGroup secondLevel = new RelativeLayout(getInstrumentation().getTargetContext()); - secondLevel.addView(view2); - secondLevel.addView(view3); - tiptop.addView(secondLevel); - tiptop.addView(view1); - assertTrue(withChild(is(view1)).matches(tiptop)); - assertTrue(withChild(is((View) secondLevel)).matches(tiptop)); - assertFalse(withChild(is((View) tiptop)).matches(view1)); - assertFalse(withChild(is(view2)).matches(tiptop)); - assertFalse(withChild(is(view1)).matches(secondLevel)); - - assertTrue(withChild(is(view2)).matches(secondLevel)); - - assertFalse(withChild(is(view3)).matches(view3)); - } - - public void testIsRootView() { - ViewGroup rootView = new ViewGroup(getInstrumentation().getTargetContext()) { - @Override - protected void onLayout(boolean changed, int l, int t, int r, int b) { - } - }; - - View view = new View(getInstrumentation().getTargetContext()); - rootView.addView(view); - - assertTrue(isRoot().matches(rootView)); - assertFalse(isRoot().matches(view)); - } - - public void testHasSibling() { - TextView v1 = new TextView(getInstrumentation().getTargetContext()); - v1.setText("Bill Odama"); - Button v2 = new Button(getInstrumentation().getTargetContext()); - View v3 = new View(getInstrumentation().getTargetContext()); - ViewGroup parent = new LinearLayout(getInstrumentation().getTargetContext()); - parent.addView(v1); - parent.addView(v2); - parent.addView(v3); - assertTrue(hasSibling(withText("Bill Odama")).matches(v2)); - assertFalse(hasSibling(is(v3)).matches(parent)); - } - - public void testHasImeAction() { - EditText editText = new EditText(getInstrumentation().getTargetContext()); - assertFalse(hasImeAction(EditorInfo.IME_ACTION_GO).matches(editText)); - editText.setImeOptions(EditorInfo.IME_ACTION_NEXT); - assertFalse(hasImeAction(EditorInfo.IME_ACTION_GO).matches(editText)); - assertTrue(hasImeAction(EditorInfo.IME_ACTION_NEXT).matches(editText)); - } - - public void testHasImeActionNoInputConnection() { - Button button = new Button(getInstrumentation().getTargetContext()); - assertFalse(hasImeAction(0).matches(button)); - } - - public void testSupportsInputMethods() { - Button button = new Button(getInstrumentation().getTargetContext()); - EditText editText = new EditText(getInstrumentation().getTargetContext()); - assertFalse(supportsInputMethods().matches(button)); - assertTrue(supportsInputMethods().matches(editText)); - } -} |