UriIdlingResource

public class UriIdlingResource


An implementation of IdlingResource useful for monitoring idleness of network traffic.

This is similar to androidx.test.espresso.contrib.CountingIdlingResource, with the additional idleness constraint that the counter must be 0 for a set period of time before the resource becomes idle.

A network timeout is required to be reasonably sure that the webview has finished loading. Imagine the case where each response that comes back causes another request to be made until loading is complete. The counter will go from 0->1->0->1->0->1..., but we don't want to report the webview as idle each time this happens.

This API is currently in beta.

Summary

Nested types

public interface UriIdlingResource.HandlerIntf

Wraps a Handler object.

Public constructors

UriIdlingResource(String resourceName, long timeoutMs)

Public methods

void

Called when a request is made.

void

Called when a request is completed (ie the response is returned).

String
void
ignoreUri(Pattern pattern)

Add a regex pattern to the ignore list.

boolean
void
registerIdleTransitionCallback(ResourceCallback resourceCallback)

Public constructors

UriIdlingResource

public UriIdlingResource(String resourceName, long timeoutMs)

Public methods

beginLoad

public void beginLoad(String uri)

Called when a request is made.

If the URI is not blacklisted the idle counter is incremented.

endLoad

public void endLoad(String uri)

Called when a request is completed (ie the response is returned).

If the URI is not blacklisted the idle counter is decremented. Once the idle counter reaches 0, the idle update thread will set the resource as idle after the appropriate timeout.

getName

public String getName()

ignoreUri

public void ignoreUri(Pattern pattern)

Add a regex pattern to the ignore list.

All request URIs are checked against all patterns, and matches are ignored for the purposes of detecting when the webview is idle.

Ignored patterns can only be added when the webview is idle.

isIdleNow

public boolean isIdleNow()

registerIdleTransitionCallback

public void registerIdleTransitionCallback(ResourceCallback resourceCallback)