From d176ea91fb5e515442b7e016d63180990c88b59c Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Fri, 25 Mar 2016 09:04:07 -0400 Subject: [PATCH] Use custom matcher for settings activity --- .../org/isoron/uhabits/ui/HabitMatchers.java | 21 +++++++++++++++++++ .../java/org/isoron/uhabits/ui/MainTest.java | 8 +++---- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/app/src/androidTest/java/org/isoron/uhabits/ui/HabitMatchers.java b/app/src/androidTest/java/org/isoron/uhabits/ui/HabitMatchers.java index 0fbb13f34..ee8b810b8 100644 --- a/app/src/androidTest/java/org/isoron/uhabits/ui/HabitMatchers.java +++ b/app/src/androidTest/java/org/isoron/uhabits/ui/HabitMatchers.java @@ -19,10 +19,12 @@ package org.isoron.uhabits.ui; +import android.preference.Preference; import android.view.View; import android.widget.Adapter; import android.widget.AdapterView; +import org.hamcrest.BaseMatcher; import org.hamcrest.Description; import org.hamcrest.Matcher; import org.hamcrest.TypeSafeMatcher; @@ -76,4 +78,23 @@ public class HabitMatchers } }; } + + public static Matcher isPreferenceWithText(final String text) + { + return (Matcher) new BaseMatcher() + { + @Override + public boolean matches(Object o) + { + if(!(o instanceof Preference)) return false; + return o.toString().contains(text); + } + + @Override + public void describeTo(Description description) + { + description.appendText(String.format("is preference with text '%s'", text)); + } + }; + } } diff --git a/app/src/androidTest/java/org/isoron/uhabits/ui/MainTest.java b/app/src/androidTest/java/org/isoron/uhabits/ui/MainTest.java index 0dc698227..4d2066501 100644 --- a/app/src/androidTest/java/org/isoron/uhabits/ui/MainTest.java +++ b/app/src/androidTest/java/org/isoron/uhabits/ui/MainTest.java @@ -69,7 +69,7 @@ import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.instanceOf; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.startsWith; -import static org.hamcrest.core.AnyOf.anyOf; +import static org.isoron.uhabits.ui.HabitMatchers.isPreferenceWithText; import static org.isoron.uhabits.ui.HabitMatchers.withName; import static org.isoron.uhabits.ui.HabitViewActions.clickAtRandomLocations; import static org.isoron.uhabits.ui.HabitViewActions.toggleAllCheckmarks; @@ -312,14 +312,14 @@ public class MainTest String date = DateHelper.getBackupDateFormat().format(DateHelper.getLocalTime()); date = date.substring(0, date.length() - 2); - onView(withText(R.string.export_full_backup)).perform(click()); + onData(isPreferenceWithText("Export full backup")).perform(click()); intended(hasAction(Intent.ACTION_SEND)); deleteHabit(name); openActionBarOverflowOrOptionsMenu(targetContext); onView(withText(R.string.settings)).perform(click()); - onView(withText(R.string.import_data)).perform(click()); + onData(isPreferenceWithText("Import data")).perform(click()); onData(allOf(is(instanceOf(String.class)), startsWith("Backups"))) .perform(click()); @@ -340,7 +340,7 @@ public class MainTest addHabit(); openActionBarOverflowOrOptionsMenu(targetContext); onView(withText(R.string.settings)).perform(click()); - onView(withText(R.string.export_to_csv)).perform(click()); + onData(isPreferenceWithText("Export as CSV")).perform(click()); intended(hasAction(Intent.ACTION_SEND)); } }