Skip to content
This repository has been archived by the owner on Oct 11, 2022. It is now read-only.

Commit

Permalink
added support for string resource id in contains assertions (Adevinta…
Browse files Browse the repository at this point in the history
…Spain#305)

Thanks for your contribution @karadkar
  • Loading branch information
rohitkaradkar authored and alorma committed Jun 5, 2019
1 parent a3a9305 commit d6d47f8
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 0 deletions.
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -270,11 +270,15 @@ assertError(R.id.edittext, "Error message");
#### Check if text on screen contains given text
```java
assertContains("text");
assertContains(R.string.text);
assertContains(R.id.textview, "text");
assertContains(R.id.textview, R.string.text);

// ...or not?
assertNotContains("text");
assertNotContains(R.string.text);
assertNotContains(R.id.textview, "text");
assertNotContains(R.id.textview, R.string.text);
```

#### Check text is given color
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
import androidx.test.espresso.matcher.ViewMatchers.withId
import androidx.test.espresso.matcher.ViewMatchers.withText
import android.view.View
import androidx.test.platform.app.InstrumentationRegistry
import com.schibsted.spain.barista.internal.assertAny
import com.schibsted.spain.barista.internal.matcher.TextColorMatcher
import com.schibsted.spain.barista.internal.util.resourceMatcher
Expand Down Expand Up @@ -84,21 +85,45 @@ object BaristaVisibilityAssertions {
withText(containsString(text)).assertAny(isDisplayed())
}

@JvmStatic
fun assertContains(@StringRes stringId: Int) {
val resourceText = InstrumentationRegistry.getInstrumentation().targetContext.getString(stringId)
assertContains(resourceText)
}

@JvmStatic
fun assertContains(@IdRes viewId: Int, text: String) {
viewId.resourceMatcher().assertAny(withText(containsString(text)))
}

@JvmStatic
fun assertContains(@IdRes viewId: Int, @StringRes stringId: Int) {
val resourceText = InstrumentationRegistry.getInstrumentation().targetContext.getString(stringId)
assertContains(viewId, resourceText)
}

@JvmStatic
fun assertNotContains(text: String) {
onView(withText(containsString(text))).check(doesNotExist())
}

@JvmStatic
fun assertNotContains(@StringRes stringId: Int) {
val resourceText = InstrumentationRegistry.getInstrumentation().targetContext.getString(stringId)
assertNotContains(resourceText)
}

@JvmStatic
fun assertNotContains(@IdRes resId: Int, text: String) {
onView(allOf(withId(resId), withText(containsString(text)))).check(doesNotExist())
}

@JvmStatic
fun assertNotContains(@IdRes resId: Int, @StringRes stringId: Int) {
val resourceText = InstrumentationRegistry.getInstrumentation().targetContext.getString(stringId)
assertNotContains(resId, resourceText)
}

@JvmStatic
fun assertTextColorIs(@IdRes viewId: Int, @ColorRes colorRes: Int) {
viewId.resourceMatcher().assertAny(TextColorMatcher(colorRes))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -331,26 +331,39 @@ public void checkViewHasNotFocus() throws Exception {
@Test
public void checkTextViewContainsText_withViewId() {
assertContains(R.id.enabled_button, "Enabled");
assertContains(R.string.enabled);
}

@Test(expected = BaristaException.class)
public void checkTextViewContainsText_withViewId_failsWhenNeeded() {
assertContains(R.id.enabled_button, "Disabled");
}

@Test(expected = BaristaException.class)
public void checkTextViewContainsResourceText_withViewId_failsWhenNeeded() {
assertContains(R.id.enabled_button, R.string.unexising_text);
}

@Test
public void checkTextViewContainsText_withoutViewId() {
assertContains("Enabled");
assertContains(R.string.enabled);
}

@Test(expected = BaristaException.class)
public void checkTextViewContainsText_withoutViewId_failsWhenNeeded() {
assertContains("unexisting text");
}

@Test(expected = BaristaException.class)
public void checkTextViewContainsResourceText_withoutViewId_failsWhenNeeded() {
assertContains(R.string.unexising_text);
}

@Test
public void checkTextViewDoesntContainsText_withViewId() {
assertNotContains(R.id.enabled_button, "unexisting text");
assertNotContains(R.id.enabled_button, R.string.unexising_text);
}

@Test(expected = AssertionFailedError.class)
Expand All @@ -361,10 +374,16 @@ public void checkTextViewDoesntContainsText_withViewId_failsWhenNeeded() {
@Test
public void checkTextViewDoesntContainsText_withoutViewId() {
assertNotContains("unexisting text");
assertNotContains(R.string.unexising_text);
}

@Test(expected = AssertionFailedError.class)
public void checkTextViewDoesntContainsText_withoutViewId_failsWhenNeeded() {
assertNotContains("Enabled");
}

@Test(expected = AssertionFailedError.class)
public void checkTextViewDoesntContainsResourceText_withoutViewId_failsWhenNeeded() {
assertNotContains(R.string.enabled);
}
}
2 changes: 2 additions & 0 deletions sample/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,7 @@
<string name="not_there">NotThere</string>
<string name="missing">Missing</string>
<string name="this_text_must_not_be_displayed">This text must not be displayed on the view</string>
<string name="enabled">Enabled</string>
<string name="unexising_text">unexisting text</string>

</resources>

0 comments on commit d6d47f8

Please sign in to comment.