public final class

AppNotIdleException

extends java.lang.RuntimeException

implements EspressoException

 java.lang.Object

↳java.lang.Throwable

↳java.lang.Exception

↳java.lang.RuntimeException

↳androidx.test.espresso.AppNotIdleException

Gradle dependencies

compile group: 'androidx.test.espresso', name: 'espresso-core', version: '3.6.1'

  • groupId: androidx.test.espresso
  • artifactId: espresso-core
  • version: 3.6.1

Artifact androidx.test.espresso:espresso-core:3.6.1 it located at Google repository (https://maven.google.com/)

Androidx artifact mapping:

androidx.test.espresso:espresso-core com.android.support.test.espresso:espresso-core

Androidx class mapping:

androidx.test.espresso.AppNotIdleException android.support.test.espresso.AppNotIdleException

Overview

An exception which indicates that the App has not become idle even after the specified duration.

Summary

Methods
public static AppNotIdleExceptioncreate(java.util.List<java.lang.String> idleConditions, int loopCount, int seconds)

Creates a new AppNotIdleException suitable for erroring out a test case.

public static AppNotIdleExceptioncreate(java.util.List<java.lang.String> idleConditions, java.lang.String message)

Creates a new AppNotIdleException suitable for erroring out a test case.

from java.lang.ThrowableaddSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
from java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Methods

public static AppNotIdleException create(java.util.List<java.lang.String> idleConditions, int loopCount, int seconds)

Deprecated: use AppNotIdleException.create(List, String) instead

Creates a new AppNotIdleException suitable for erroring out a test case.

This should be called only from the main thread if the app does not idle out within the specified duration.

Parameters:

idleConditions: list of idleConditions that failed to become idle.
loopCount: number of times it was tried to check if they became idle.
seconds: number of seconds that was tried before giving up.

Returns:

a AppNotIdleException suitable to be thrown on the instrumentation thread.

public static AppNotIdleException create(java.util.List<java.lang.String> idleConditions, java.lang.String message)

Creates a new AppNotIdleException suitable for erroring out a test case.

This should be called only from the main thread if the app does not idle out within the specified duration.

Parameters:

idleConditions: list of idleConditions that failed to become idle.
message: a message about the failure.

Returns:

a AppNotIdleException suitable to be thrown on the instrumentation thread.

Source

/*
 * Copyright (C) 2014 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package androidx.test.espresso;

import static androidx.test.internal.util.Checks.checkState;

import android.os.Looper;
import androidx.test.espresso.util.StringJoinerKt;
import androidx.test.internal.platform.util.TestOutputEmitter;
import java.util.List;
import java.util.Locale;

/**
 * An exception which indicates that the App has not become idle even after the specified duration.
 */
public final class AppNotIdleException extends RuntimeException implements EspressoException {

  private AppNotIdleException(String description) {
    super(description);
    TestOutputEmitter.dumpThreadStates("ThreadState-AppNotIdleException.txt");
  }

  /**
   * Creates a new AppNotIdleException suitable for erroring out a test case.
   *
   * <p>This should be called only from the main thread if the app does not idle out within the
   * specified duration.
   *
   * @param idleConditions list of idleConditions that failed to become idle.
   * @param loopCount number of times it was tried to check if they became idle.
   * @param seconds number of seconds that was tried before giving up.
   * @return a AppNotIdleException suitable to be thrown on the instrumentation thread.
   * @deprecated use {@link #create(List, String)} instead
   */
  @Deprecated
  public static AppNotIdleException create(
      List<String> idleConditions, int loopCount, int seconds) {
    checkState(Looper.myLooper() == Looper.getMainLooper());
    String errorMessage =
        String.format(
            Locale.ROOT,
            "App not idle within timeout of %s seconds even"
                + "after trying for %s iterations. The following Idle Conditions failed %s",
            seconds,
            loopCount,
            StringJoinerKt.joinToString(idleConditions, ","));
    return new AppNotIdleException(errorMessage);
  }

  /**
   * Creates a new AppNotIdleException suitable for erroring out a test case.
   *
   * <p>This should be called only from the main thread if the app does not idle out within the
   * specified duration.
   *
   * @param idleConditions list of idleConditions that failed to become idle.
   * @param message a message about the failure.
   * @return a AppNotIdleException suitable to be thrown on the instrumentation thread.
   */
  public static AppNotIdleException create(List<String> idleConditions, String message) {
    String errorMessage =
        String.format(
            Locale.ROOT,
            "%s The following Idle Conditions failed %s.",
            message,
            StringJoinerKt.joinToString(idleConditions, ","));
    return new AppNotIdleException(errorMessage);
  }
}