# WindowSdkExtensionsRule

Artifact: [androidx.window:window-testing](https://developer.android.com/jetpack/androidx/releases/window) [View Source](https://cs.android.com/search?q=file:androidx/window/testing/WindowSdkExtensionsRule.kt+class:androidx.window.testing.WindowSdkExtensionsRule) Added in [1.4.0](https://developer.android.com/jetpack/androidx/releases/window#1.4.0)

*** ** * ** ***


```
public final class WindowSdkExtensionsRule implements TestRule
```

<br />

*** ** * ** ***

`https://junit.org/junit4/javadoc/latest/org/junit/rules/TestRule.html` for overriding `https://developer.android.com/reference/androidx/window/WindowSdkExtensions` properties in unit tests.

The `https://junit.org/junit4/javadoc/latest/org/junit/rules/TestRule.html` is designed to only be used in unit tests. Users should use the actual `https://developer.android.com/reference/androidx/window/WindowSdkExtensions` properties for instrumentation tests. Overriding the device's extensions version to a higher version may lead to unexpected test failures or even app crash.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/window/testing/WindowSdkExtensionsRule#WindowSdkExtensionsRule()()` |

| ### Public methods |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://junit.org/junit4/javadoc/latest/org/junit/runners/model/Statement.html` | `https://developer.android.com/reference/androidx/window/testing/WindowSdkExtensionsRule#apply(org.junit.runners.model.Statement,org.junit.runner.Description)(@https://developer.android.com/reference/androidx/annotation/NonNull https://junit.org/junit4/javadoc/latest/org/junit/runners/model/Statement.html base, @https://developer.android.com/reference/androidx/annotation/NonNull https://junit.org/junit4/javadoc/latest/org/junit/runner/Description.html description)` |
| `final void` | `https://developer.android.com/reference/androidx/window/testing/WindowSdkExtensionsRule#overrideExtensionVersion(kotlin.Int)(@https://developer.android.com/reference/androidx/annotation/IntRange(from = 0) int version)` Overrides the `https://developer.android.com/reference/androidx/window/WindowSdkExtensions#extensionVersion()` for testing. |

## Public constructors

### WindowSdkExtensionsRule

Added in [1.4.0](https://developer.android.com/jetpack/androidx/releases/window#1.4.0)

```
public WindowSdkExtensionsRule()
```

## Public methods

### apply

Added in [1.4.0](https://developer.android.com/jetpack/androidx/releases/window#1.4.0)

```
public @NonNull Statement apply(@NonNull Statement base, @NonNull Description description)
```

### overrideExtensionVersion

Added in [1.4.0](https://developer.android.com/jetpack/androidx/releases/window#1.4.0)

```
public final void overrideExtensionVersion(@IntRange(from = 0) int version)
```

Overrides the `https://developer.android.com/reference/androidx/window/WindowSdkExtensions#extensionVersion()` for testing.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/IntRange(from = 0) int version` | The extension version to override. |