Use custom matcher for settings activity

pull/77/merge
Alinson S. Xavier 10 years ago
parent 62df660079
commit d176ea91fb

@ -19,10 +19,12 @@
package org.isoron.uhabits.ui; package org.isoron.uhabits.ui;
import android.preference.Preference;
import android.view.View; import android.view.View;
import android.widget.Adapter; import android.widget.Adapter;
import android.widget.AdapterView; import android.widget.AdapterView;
import org.hamcrest.BaseMatcher;
import org.hamcrest.Description; import org.hamcrest.Description;
import org.hamcrest.Matcher; import org.hamcrest.Matcher;
import org.hamcrest.TypeSafeMatcher; 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));
}
};
}
} }

@ -69,7 +69,7 @@ import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.instanceOf; import static org.hamcrest.Matchers.instanceOf;
import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.startsWith; 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.HabitMatchers.withName;
import static org.isoron.uhabits.ui.HabitViewActions.clickAtRandomLocations; import static org.isoron.uhabits.ui.HabitViewActions.clickAtRandomLocations;
import static org.isoron.uhabits.ui.HabitViewActions.toggleAllCheckmarks; import static org.isoron.uhabits.ui.HabitViewActions.toggleAllCheckmarks;
@ -312,14 +312,14 @@ public class MainTest
String date = DateHelper.getBackupDateFormat().format(DateHelper.getLocalTime()); String date = DateHelper.getBackupDateFormat().format(DateHelper.getLocalTime());
date = date.substring(0, date.length() - 2); 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)); intended(hasAction(Intent.ACTION_SEND));
deleteHabit(name); deleteHabit(name);
openActionBarOverflowOrOptionsMenu(targetContext); openActionBarOverflowOrOptionsMenu(targetContext);
onView(withText(R.string.settings)).perform(click()); 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"))) onData(allOf(is(instanceOf(String.class)), startsWith("Backups")))
.perform(click()); .perform(click());
@ -340,7 +340,7 @@ public class MainTest
addHabit(); addHabit();
openActionBarOverflowOrOptionsMenu(targetContext); openActionBarOverflowOrOptionsMenu(targetContext);
onView(withText(R.string.settings)).perform(click()); 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)); intended(hasAction(Intent.ACTION_SEND));
} }
} }

Loading…
Cancel
Save