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

Commit 1876a797 authored by Fabian Kozynski's avatar Fabian Kozynski Committed by Android (Google) Code Review
Browse files

Merge "Deflake tests due to real UserBroadcastDispatcher" into rvc-dev

parents 12ea0fe9 eca4d640
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -32,6 +32,8 @@ import com.android.internal.util.Preconditions
import com.android.systemui.Dumpable
import java.io.FileDescriptor
import java.io.PrintWriter
import java.lang.IllegalArgumentException
import java.lang.IllegalStateException
import java.util.concurrent.atomic.AtomicBoolean
import java.util.concurrent.atomic.AtomicInteger

@@ -211,7 +213,12 @@ class UserBroadcastDispatcher(
         */
        override fun run() {
            if (registered.get()) {
                try {
                    context.unregisterReceiver(this@UserBroadcastDispatcher)
                } catch (e: IllegalArgumentException) {
                    Log.e(TAG, "Trying to unregister unregistered receiver for user $userId",
                            IllegalStateException(e))
                }
                registered.set(false)
            }
            // Short interval without receiver, this can be problematic
+11 −1
Original line number Diff line number Diff line
@@ -25,6 +25,8 @@ import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.os.UserManager;
import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;
import android.testing.TestableLooper.RunWithLooper;
@@ -37,6 +39,7 @@ import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.logging.testing.UiEventLoggerFake;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.systemui.Dependency;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.dump.DumpManager;
@@ -46,6 +49,7 @@ import com.android.systemui.qs.customize.QSCustomizer;
import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.policy.SecurityController;
import com.android.systemui.util.concurrency.DelayableExecutor;

import org.junit.Before;
@@ -100,8 +104,14 @@ public class QSPanelTest extends SysuiTestCase {
    @Before
    public void setup() throws Exception {
        MockitoAnnotations.initMocks(this);

        mTestableLooper = TestableLooper.get(this);

        // Dependencies for QSSecurityFooter
        mDependency.injectTestDependency(ActivityStarter.class, mActivityStarter);
        mDependency.injectMockDependency(SecurityController.class);
        mDependency.injectTestDependency(Dependency.BG_LOOPER, mTestableLooper.getLooper());
        mContext.addMockSystemService(Context.USER_SERVICE, mock(UserManager.class));

        mUiEventLogger = new UiEventLoggerFake();
        mTestableLooper.runWithLooper(() -> {
            mMetricsLogger = mDependency.injectMockDependency(MetricsLogger.class);