30 lines
1.0 KiB
Kotlin
30 lines
1.0 KiB
Kotlin
package org.mozilla.fenix.helpers.matchers
|
|
|
|
import android.view.View
|
|
import androidx.recyclerview.widget.RecyclerView
|
|
import androidx.test.espresso.matcher.BoundedMatcher
|
|
import org.hamcrest.Description
|
|
import org.hamcrest.Matcher
|
|
|
|
fun hasItem(matcher: Matcher<View?>): Matcher<View?>? {
|
|
return object : BoundedMatcher<View?, RecyclerView>(RecyclerView::class.java) {
|
|
override fun describeTo(description: Description) {
|
|
description.appendText("has item: ")
|
|
matcher.describeTo(description)
|
|
}
|
|
|
|
override fun matchesSafely(view: RecyclerView): Boolean {
|
|
val adapter = view.adapter
|
|
for (position in 0 until adapter!!.itemCount) {
|
|
val type = adapter.getItemViewType(position)
|
|
val holder = adapter.createViewHolder(view, type)
|
|
adapter.onBindViewHolder(holder, position)
|
|
if (matcher.matches(holder.itemView)) {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
}
|
|
}
|