Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cd8b1238 authored by David Saff's avatar David Saff Committed by Android (Google) Code Review
Browse files

Merge "Extract SysuiTestDependency as reusable kotlin method" into main

parents e5d0112c 288377c6
Loading
Loading
Loading
Loading
+1 −16
Original line number Diff line number Diff line
@@ -15,8 +15,6 @@
 */
package com.android.systemui;

import static com.android.systemui.animation.FakeDialogLaunchAnimatorKt.fakeDialogLaunchAnimator;

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
@@ -37,14 +35,11 @@ import androidx.core.animation.AndroidXAnimatorIsolationRule;
import androidx.test.InstrumentationRegistry;
import androidx.test.uiautomator.UiDevice;

import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.systemui.animation.DialogLaunchAnimator;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.broadcast.FakeBroadcastDispatcher;
import com.android.systemui.broadcast.logging.BroadcastDispatcherLogger;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.settings.UserTracker;
import com.android.systemui.statusbar.phone.SystemUIDialogManager;

import org.junit.After;
import org.junit.AfterClass;
@@ -93,10 +88,7 @@ public abstract class SysuiTestCase {
        if (isRobolectricTest()) {
            mContext = mContext.createDefaultDisplayContext();
        }
        SystemUIInitializer initializer = new SystemUIInitializerImpl(mContext);
        initializer.init(true);
        mDependency = new TestableDependency(initializer.getSysUIComponent().createDependency());
        Dependency.setInstance(mDependency);
        mDependency = SysuiTestDependencyKt.installSysuiTestDependency(mContext);
        mFakeBroadcastDispatcher = new FakeBroadcastDispatcher(
                mContext,
                mContext.getMainExecutor(),
@@ -123,13 +115,6 @@ public abstract class SysuiTestCase {
        // reference and are never sent to the Context. This will also prevent a real
        // BroadcastDispatcher from actually registering receivers.
        mDependency.injectTestDependency(BroadcastDispatcher.class, mFakeBroadcastDispatcher);
        mDependency.injectMockDependency(KeyguardUpdateMonitor.class);

        // Make sure that all tests on any SystemUIDialog does not crash because this dependency
        // is missing (constructing the actual one would throw).
        // TODO(b/219008720): Remove this.
        mDependency.injectMockDependency(SystemUIDialogManager.class);
        mDependency.injectTestDependency(DialogLaunchAnimator.class, fakeDialogLaunchAnimator());
    }

    protected boolean shouldFailOnLeakedReceiver() {
+26 −0
Original line number Diff line number Diff line
package com.android.systemui

import android.annotation.SuppressLint
import android.content.Context
import com.android.keyguard.KeyguardUpdateMonitor
import com.android.systemui.animation.DialogLaunchAnimator
import com.android.systemui.animation.fakeDialogLaunchAnimator
import com.android.systemui.statusbar.phone.SystemUIDialogManager

@SuppressLint("VisibleForTests")
fun installSysuiTestDependency(context: Context): TestableDependency {
    val initializer: SystemUIInitializer = SystemUIInitializerImpl(context)
    initializer.init(true)

    val dependency = TestableDependency(initializer.sysUIComponent.createDependency())
    Dependency.setInstance(dependency)

    dependency.injectMockDependency(KeyguardUpdateMonitor::class.java)

    // Make sure that all tests on any SystemUIDialog does not crash because this dependency
    // is missing (constructing the actual one would throw).
    // TODO(b/219008720): Remove this.
    dependency.injectMockDependency(SystemUIDialogManager::class.java)
    dependency.injectTestDependency(DialogLaunchAnimator::class.java, fakeDialogLaunchAnimator())
    return dependency
}