# IntentMatchers

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

*** ** * ** ***


```
@CheckReturnValue
public final class IntentMatchers
```

<br />

*** ** * ** ***

A collection of hamcrest matchers for matching `https://developer.android.com/reference/android/content/Intent.html` objects.

## Summary

| ### Public methods |
|---|---|
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#anyIntent()()` |
| `static @https://developer.android.com/reference/androidx/annotation/NonNull https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#doesNotHaveExtraWithKey(org.hamcrest.Matcher<java.lang.String>)(@https://developer.android.com/reference/androidx/annotation/NonNull https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/java/lang/String.html> keyMatcher)` |
| `static @https://developer.android.com/reference/androidx/annotation/NonNull https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#doesNotHaveExtraWithKey(java.lang.String)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html key)` |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#doesNotHaveFlag(int)(int flag)` |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#doesNotHaveFlags(int...)(int[] flags)` |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#doesNotHaveFlags(int)(int flags)` |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#filterEquals(android.content.Intent)(https://developer.android.com/reference/android/content/Intent.html expectedIntent)` Matches an intent if it `https://developer.android.com/reference/android/content/Intent.html#filterEquals(android.content.Intent)` the expected intent. |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#hasAction(org.hamcrest.Matcher<java.lang.String>)(https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/java/lang/String.html> actionMatcher)` |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#hasAction(java.lang.String)(https://developer.android.com/reference/java/lang/String.html action)` |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#hasCategories(org.hamcrest.Matcher<? extends java.lang.Iterable<? extends java.lang.String>>)(https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/java/lang/Iterable.html<https://developer.android.com/reference/java/lang/String.html>> categoriesMatcher)` |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#hasCategories(java.util.Set<java.lang.String>)(https://developer.android.com/reference/java/util/Set.html<https://developer.android.com/reference/java/lang/String.html> categories)` |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#hasComponent(java.lang.String)(https://developer.android.com/reference/java/lang/String.html className)` Returns a matcher that will only match intents targeted to a single class by using `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/ComponentNameMatchers#hasClassName(java.lang.String)`. |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#hasComponent(org.hamcrest.Matcher<android.content.ComponentName>)(https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/ComponentName.html> componentMatcher)` Can match an intent by class name, package name or short class name. |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#hasComponent(android.content.ComponentName)(https://developer.android.com/reference/android/content/ComponentName.html componentName)` Returns a matcher that will only match intents targeted to the componentName's class, {@see \* ComponentName#getClassName}. |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#hasData(org.hamcrest.Matcher<android.net.Uri>)(https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/net/Uri.html> uriMatcher)` |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#hasData(java.lang.String)(https://developer.android.com/reference/java/lang/String.html uri)` |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#hasData(android.net.Uri)(https://developer.android.com/reference/android/net/Uri.html uri)` |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#hasDataString(org.hamcrest.Matcher<java.lang.String>)(https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/java/lang/String.html> stringMatcher)` |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#hasExtra(org.hamcrest.Matcher<java.lang.String>,org.hamcrest.Matcher<?>)(https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/java/lang/String.html> keyMatcher, https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> valueMatcher)` |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `<T> https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#hasExtra(java.lang.String,T)(https://developer.android.com/reference/java/lang/String.html key, T value)` |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#hasExtra(java.lang.String,org.hamcrest.Matcher<?>)(https://developer.android.com/reference/java/lang/String.html key, https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> valueMatcher)` |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#hasExtraWithKey(org.hamcrest.Matcher<java.lang.String>)(https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/java/lang/String.html> keyMatcher)` |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#hasExtraWithKey(java.lang.String)(https://developer.android.com/reference/java/lang/String.html key)` |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#hasExtras(org.hamcrest.Matcher<android.os.Bundle>)(https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/os/Bundle.html> bundleMatcher)` |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#hasFlag(int)(int flag)` |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#hasFlags(int...)(int[] flags)` |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#hasFlags(int)(int flags)` |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#hasPackage(org.hamcrest.Matcher<java.lang.String>)(https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/java/lang/String.html> packageMatcher)` |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#hasPackage(java.lang.String)(https://developer.android.com/reference/java/lang/String.html packageName)` |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#hasType(org.hamcrest.Matcher<java.lang.String>)(https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/java/lang/String.html> typeMatcher)` |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#hasType(java.lang.String)(https://developer.android.com/reference/java/lang/String.html type)` |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#isInternal()()` Matches an intent if its package is the same as the target package for the instrumentation test. |
| `static https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/Intent.html>` | `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/IntentMatchers#toPackage(java.lang.String)(https://developer.android.com/reference/java/lang/String.html packageName)` Matches an intent based on the package of activity which can handle the intent. |

## Public methods

### anyIntent

```
public static Matcher<Intent> anyIntent()
```

### doesNotHaveExtraWithKey

```
public static @NonNull Matcher<Intent> doesNotHaveExtraWithKey(@NonNull Matcher<String> keyMatcher)
```

### doesNotHaveExtraWithKey

```
public static @NonNull Matcher<Intent> doesNotHaveExtraWithKey(@NonNull String key)
```

### doesNotHaveFlag

```
public static Matcher<Intent> doesNotHaveFlag(int flag)
```

### doesNotHaveFlags

```
public static Matcher<Intent> doesNotHaveFlags(int[] flags)
```

### doesNotHaveFlags

```
public static Matcher<Intent> doesNotHaveFlags(int flags)
```

### filterEquals

```
public static Matcher<Intent> filterEquals(Intent expectedIntent)
```

Matches an intent if it `https://developer.android.com/reference/android/content/Intent.html#filterEquals(android.content.Intent)` the expected intent.

### hasAction

```
public static Matcher<Intent> hasAction(Matcher<String> actionMatcher)
```

### hasAction

```
public static Matcher<Intent> hasAction(String action)
```

### hasCategories

```
public static Matcher<Intent> hasCategories(Matcher<Iterable<String>> categoriesMatcher)
```

### hasCategories

```
public static Matcher<Intent> hasCategories(Set<String> categories)
```

### hasComponent

```
public static Matcher<Intent> hasComponent(String className)
```

Returns a matcher that will only match intents targeted to a single class by using `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/ComponentNameMatchers#hasClassName(java.lang.String)`. The input string must contain the package name + short class name. For example hasComponent("com.google.provider.NotePad").

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/lang/String.html className` | complete class path |

### hasComponent

```
public static Matcher<Intent> hasComponent(Matcher<ComponentName> componentMatcher)
```

Can match an intent by class name, package name or short class name.

| Parameters |
|---|---|
| `https://junit.org/junit4/javadoc/latest/org/hamcrest/Matcher.html<https://developer.android.com/reference/android/content/ComponentName.html> componentMatcher` | can be the value of `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/ComponentNameMatchers#hasClassName(java.lang.String)`, `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/ComponentNameMatchers#hasPackageName(java.lang.String)` or `https://developer.android.com/reference/androidx/test/espresso/intent/matcher/ComponentNameMatchers#hasShortClassName(java.lang.String)` |

### hasComponent

```
public static Matcher<Intent> hasComponent(ComponentName componentName)
```

Returns a matcher that will only match intents targeted to the componentName's class, {@see \* ComponentName#getClassName}. For example: Intent intent = new Intent() .setComponentName(new ComponentName("com.google.provider", "com.google.provider.Notepad")); will match all intents targeted to Notepad.java.

| Parameters |
|---|---|
| `https://developer.android.com/reference/android/content/ComponentName.html componentName` | a componentName that has the target class specified |

### hasData

```
public static Matcher<Intent> hasData(Matcher<Uri> uriMatcher)
```

### hasData

```
public static Matcher<Intent> hasData(String uri)
```

### hasData

```
public static Matcher<Intent> hasData(Uri uri)
```

### hasDataString

```
public static Matcher<Intent> hasDataString(Matcher<String> stringMatcher)
```

### hasExtra

```
public static Matcher<Intent> hasExtra(Matcher<String> keyMatcher, Matcher<@NonNull ?> valueMatcher)
```

### hasExtra

```
public static Matcher<Intent> <T> hasExtra(String key, T value)
```

### hasExtra

```
public static Matcher<Intent> hasExtra(String key, Matcher<@NonNull ?> valueMatcher)
```

### hasExtraWithKey

```
public static Matcher<Intent> hasExtraWithKey(Matcher<String> keyMatcher)
```

### hasExtraWithKey

```
public static Matcher<Intent> hasExtraWithKey(String key)
```

### hasExtras

```
public static Matcher<Intent> hasExtras(Matcher<Bundle> bundleMatcher)
```

### hasFlag

```
public static Matcher<Intent> hasFlag(int flag)
```

### hasFlags

```
public static Matcher<Intent> hasFlags(int[] flags)
```

### hasFlags

```
public static Matcher<Intent> hasFlags(int flags)
```

### hasPackage

```
public static Matcher<Intent> hasPackage(Matcher<String> packageMatcher)
```

### hasPackage

```
public static Matcher<Intent> hasPackage(String packageName)
```

### hasType

```
public static Matcher<Intent> hasType(Matcher<String> typeMatcher)
```

### hasType

```
public static Matcher<Intent> hasType(String type)
```

### isInternal

```
public static Matcher<Intent> isInternal()
```

Matches an intent if its package is the same as the target package for the instrumentation test.

### toPackage

```
public static Matcher<Intent> toPackage(String packageName)
```

Matches an intent based on the package of activity which can handle the intent.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/lang/String.html packageName` | packages of activity that can handle the intent |