# IdlingPolicies

Artifact: [androidx.test.espresso:espresso-core](https://developer.android.com/jetpack/androidx/releases/test-espresso) [View Source](https://cs.android.com/search?q=file:androidx/test/espresso/IdlingPolicies.java+class:androidx.test.espresso.IdlingPolicies)

*** ** * ** ***


```
public final class IdlingPolicies
```

<br />

*** ** * ** ***

Allows users fine grain control over idling policies.

Espresso's default idling policies are suitable for most usecases - however certain execution environments (like the ARM emulator) might be very slow. This class allows users the ability to adjust defaults to sensible values for their environments.

## Summary

| ### Public fields |
|---|---|
| `volatile static https://developer.android.com/reference/androidx/test/espresso/IdlingPolicy` | `https://developer.android.com/reference/androidx/test/espresso/IdlingPolicies#dynamicIdlingResourceErrorPolicy()` |
| `volatile static https://developer.android.com/reference/androidx/test/espresso/IdlingPolicy` | `https://developer.android.com/reference/androidx/test/espresso/IdlingPolicies#dynamicIdlingResourceWarningPolicy()` |
| `volatile static https://developer.android.com/reference/androidx/test/espresso/IdlingPolicy` | `https://developer.android.com/reference/androidx/test/espresso/IdlingPolicies#masterIdlingPolicy()` |

| ### Public methods |
|---|---|
| `static https://developer.android.com/reference/androidx/test/espresso/IdlingPolicy` | `https://developer.android.com/reference/androidx/test/espresso/IdlingPolicies#getDynamicIdlingResourceErrorPolicy()()` |
| `static https://developer.android.com/reference/androidx/test/espresso/IdlingPolicy` | `https://developer.android.com/reference/androidx/test/espresso/IdlingPolicies#getDynamicIdlingResourceWarningPolicy()()` |
| `static https://developer.android.com/reference/androidx/test/espresso/IdlingPolicy` | `https://developer.android.com/reference/androidx/test/espresso/IdlingPolicies#getMasterIdlingPolicy()()` |
| `static void` | `https://developer.android.com/reference/androidx/test/espresso/IdlingPolicies#setIdlingResourceTimeout(long,java.util.concurrent.TimeUnit)(long timeout, https://developer.android.com/reference/java/util/concurrent/TimeUnit.html unit)` Updates the IdlingPolicy used by IdlingResourceRegistry to determine when IdlingResources timeout. |
| `static void` | `https://developer.android.com/reference/androidx/test/espresso/IdlingPolicies#setMasterPolicyTimeout(long,java.util.concurrent.TimeUnit)(long timeout, https://developer.android.com/reference/java/util/concurrent/TimeUnit.html unit)` Updates the IdlingPolicy used in UiController.loopUntil to detect AppNotIdleExceptions. |
| `static void` | `https://developer.android.com/reference/androidx/test/espresso/IdlingPolicies#setMasterPolicyTimeoutWhenDebuggerAttached(boolean)( boolean timeoutWhenDebuggerAttached )` This method overrides Espresso's default behaviour of disabling timeouts when a step debugger is attached to the VM. |

## Public fields

### dynamicIdlingResourceErrorPolicy

```
volatile public static IdlingPolicy dynamicIdlingResourceErrorPolicy
```

### dynamicIdlingResourceWarningPolicy

```
volatile public static IdlingPolicy dynamicIdlingResourceWarningPolicy
```

### masterIdlingPolicy

```
volatile public static IdlingPolicy masterIdlingPolicy
```

## Public methods

### getDynamicIdlingResourceErrorPolicy

```
public static IdlingPolicy getDynamicIdlingResourceErrorPolicy()
```

### getDynamicIdlingResourceWarningPolicy

```
public static IdlingPolicy getDynamicIdlingResourceWarningPolicy()
```

### getMasterIdlingPolicy

```
public static IdlingPolicy getMasterIdlingPolicy()
```

### setIdlingResourceTimeout

```
public static void setIdlingResourceTimeout(long timeout, TimeUnit unit)
```

Updates the IdlingPolicy used by IdlingResourceRegistry to determine when IdlingResources timeout.

| Parameters |
|---|---|
| `long timeout` | the timeout before an IdlingResourceTimeoutException is created. |
| `https://developer.android.com/reference/java/util/concurrent/TimeUnit.html unit` | the unit of the timeout value. |

### setMasterPolicyTimeout

```
public static void setMasterPolicyTimeout(long timeout, TimeUnit unit)
```

Updates the IdlingPolicy used in UiController.loopUntil to detect AppNotIdleExceptions.

| Parameters |
|---|---|
| `long timeout` | the timeout before an AppNotIdleException is created. |
| `https://developer.android.com/reference/java/util/concurrent/TimeUnit.html unit` | the unit of the timeout value. |

### setMasterPolicyTimeoutWhenDebuggerAttached

```
public static void setMasterPolicyTimeoutWhenDebuggerAttached(
    boolean timeoutWhenDebuggerAttached
)
```

This method overrides Espresso's default behaviour of disabling timeouts when a step debugger is attached to the VM. Setting the timeout flag reenables the behaviour of throwing a timeout exception.