summaryrefslogtreecommitdiff
path: root/packages/SystemUI/tests
diff options
context:
space:
mode:
author Fabian Kozynski <kozynski@google.com> 2020-06-01 13:04:24 -0400
committer Fabian Kozynski <kozynski@google.com> 2020-06-10 13:23:29 -0400
commitd68d75be59cd6be3bdc35bd0982a9871ab089122 (patch)
treedec1e9d468b6cf1994d9f6b784a995de758d599f /packages/SystemUI/tests
parent50980050a631c8cab0e52f6805c4be7f40647b33 (diff)
Add logs for BroadcastDispatcher
Use SystemUIs internal buffer log. Test: manual Test: UserBroadcastDispatcherTest Bug: 157165818 Change-Id: Iafd467f7e212b4975f0d8e563388187183dcd747
Diffstat (limited to 'packages/SystemUI/tests')
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java3
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/broadcast/BroadcastDispatcherTest.kt7
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/broadcast/FakeBroadcastDispatcher.kt6
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/broadcast/UserBroadcastDispatcherTest.kt66
4 files changed, 77 insertions, 5 deletions
diff --git a/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java b/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java
index b2c35867e789..aa3f91a22208 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java
@@ -35,6 +35,7 @@ import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.broadcast.FakeBroadcastDispatcher;
+import com.android.systemui.broadcast.logging.BroadcastDispatcherLogger;
import com.android.systemui.classifier.FalsingManagerFake;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.plugins.FalsingManager;
@@ -73,7 +74,7 @@ public abstract class SysuiTestCase {
SystemUIFactory.createFromConfig(mContext);
mDependency = new TestableDependency(mContext);
mFakeBroadcastDispatcher = new FakeBroadcastDispatcher(mContext, mock(Handler.class),
- mock(Looper.class), mock(DumpManager.class));
+ mock(Looper.class), mock(DumpManager.class), mock(BroadcastDispatcherLogger.class));
mRealInstrumentation = InstrumentationRegistry.getInstrumentation();
Instrumentation inst = spy(mRealInstrumentation);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/broadcast/BroadcastDispatcherTest.kt b/packages/SystemUI/tests/src/com/android/systemui/broadcast/BroadcastDispatcherTest.kt
index 3357c5863d46..86ddb209f321 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/broadcast/BroadcastDispatcherTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/broadcast/BroadcastDispatcherTest.kt
@@ -27,6 +27,7 @@ import android.test.suitebuilder.annotation.SmallTest
import android.testing.AndroidTestingRunner
import android.testing.TestableLooper
import com.android.systemui.SysuiTestCase
+import com.android.systemui.broadcast.logging.BroadcastDispatcherLogger
import com.android.systemui.dump.DumpManager
import com.android.systemui.util.concurrency.FakeExecutor
import com.android.systemui.util.time.FakeSystemClock
@@ -76,6 +77,8 @@ class BroadcastDispatcherTest : SysuiTestCase() {
private lateinit var intentFilterOther: IntentFilter
@Mock
private lateinit var mockHandler: Handler
+ @Mock
+ private lateinit var logger: BroadcastDispatcherLogger
private lateinit var executor: Executor
@@ -96,6 +99,7 @@ class BroadcastDispatcherTest : SysuiTestCase() {
Handler(testableLooper.looper),
testableLooper.looper,
mock(DumpManager::class.java),
+ logger,
mapOf(0 to mockUBRUser0, 1 to mockUBRUser1))
// These should be valid filters
@@ -239,8 +243,9 @@ class BroadcastDispatcherTest : SysuiTestCase() {
mainHandler: Handler,
bgLooper: Looper,
dumpManager: DumpManager,
+ logger: BroadcastDispatcherLogger,
var mockUBRMap: Map<Int, UserBroadcastDispatcher>
- ) : BroadcastDispatcher(context, mainHandler, bgLooper, dumpManager) {
+ ) : BroadcastDispatcher(context, mainHandler, bgLooper, dumpManager, logger) {
override fun createUBRForUser(userId: Int): UserBroadcastDispatcher {
return mockUBRMap.getOrDefault(userId, mock(UserBroadcastDispatcher::class.java))
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/broadcast/FakeBroadcastDispatcher.kt b/packages/SystemUI/tests/src/com/android/systemui/broadcast/FakeBroadcastDispatcher.kt
index 9a5773a7a3b4..6e982e26b8cb 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/broadcast/FakeBroadcastDispatcher.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/broadcast/FakeBroadcastDispatcher.kt
@@ -24,6 +24,7 @@ import android.os.UserHandle
import android.util.ArraySet
import android.util.Log
import com.android.systemui.SysuiTestableContext
+import com.android.systemui.broadcast.logging.BroadcastDispatcherLogger
import com.android.systemui.dump.DumpManager
import java.util.concurrent.Executor
@@ -31,8 +32,9 @@ class FakeBroadcastDispatcher(
context: SysuiTestableContext,
handler: Handler,
looper: Looper,
- dumpManager: DumpManager
-) : BroadcastDispatcher(context, handler, looper, dumpManager) {
+ dumpManager: DumpManager,
+ logger: BroadcastDispatcherLogger
+) : BroadcastDispatcher(context, handler, looper, dumpManager, logger) {
private val registeredReceivers = ArraySet<BroadcastReceiver>()
diff --git a/packages/SystemUI/tests/src/com/android/systemui/broadcast/UserBroadcastDispatcherTest.kt b/packages/SystemUI/tests/src/com/android/systemui/broadcast/UserBroadcastDispatcherTest.kt
index 847e442f1a49..443357694f4d 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/broadcast/UserBroadcastDispatcherTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/broadcast/UserBroadcastDispatcherTest.kt
@@ -26,6 +26,7 @@ import android.test.suitebuilder.annotation.SmallTest
import android.testing.AndroidTestingRunner
import android.testing.TestableLooper
import com.android.systemui.SysuiTestCase
+import com.android.systemui.broadcast.logging.BroadcastDispatcherLogger
import com.android.systemui.util.concurrency.FakeExecutor
import com.android.systemui.util.time.FakeSystemClock
import junit.framework.Assert.assertEquals
@@ -40,6 +41,7 @@ import org.mockito.ArgumentMatchers.anyInt
import org.mockito.ArgumentMatchers.eq
import org.mockito.Captor
import org.mockito.Mock
+import org.mockito.Mockito
import org.mockito.Mockito.anyString
import org.mockito.Mockito.atLeastOnce
import org.mockito.Mockito.never
@@ -62,6 +64,8 @@ class UserBroadcastDispatcherTest : SysuiTestCase() {
private val USER_HANDLE = UserHandle.of(USER_ID)
fun <T> capture(argumentCaptor: ArgumentCaptor<T>): T = argumentCaptor.capture()
+ fun <T> any(): T = Mockito.any()
+ fun <T> eq(v: T) = Mockito.eq(v) ?: v
}
@Mock
@@ -72,6 +76,8 @@ class UserBroadcastDispatcherTest : SysuiTestCase() {
private lateinit var mockContext: Context
@Mock
private lateinit var mPendingResult: BroadcastReceiver.PendingResult
+ @Mock
+ private lateinit var logger: BroadcastDispatcherLogger
@Captor
private lateinit var argumentCaptor: ArgumentCaptor<IntentFilter>
@@ -91,7 +97,7 @@ class UserBroadcastDispatcherTest : SysuiTestCase() {
fakeExecutor = FakeExecutor(FakeSystemClock())
userBroadcastDispatcher = UserBroadcastDispatcher(
- mockContext, USER_ID, testableLooper.looper)
+ mockContext, USER_ID, testableLooper.looper, logger)
userBroadcastDispatcher.pendingResult = mPendingResult
}
@@ -106,6 +112,13 @@ class UserBroadcastDispatcherTest : SysuiTestCase() {
}
@Test
+ fun testNotRegisteredOnStart_logging() {
+ testableLooper.processAllMessages()
+
+ verify(logger, never()).logContextReceiverRegistered(anyInt(), any())
+ }
+
+ @Test
fun testSingleReceiverRegistered() {
intentFilter = IntentFilter(ACTION_1)
@@ -126,6 +139,18 @@ class UserBroadcastDispatcherTest : SysuiTestCase() {
}
@Test
+ fun testSingleReceiverRegistered_logging() {
+ intentFilter = IntentFilter(ACTION_1)
+
+ userBroadcastDispatcher.registerReceiver(
+ ReceiverData(broadcastReceiver, intentFilter, fakeExecutor, USER_HANDLE))
+ testableLooper.processAllMessages()
+
+ verify(logger).logReceiverRegistered(USER_HANDLE.identifier, broadcastReceiver)
+ verify(logger).logContextReceiverRegistered(eq(USER_HANDLE.identifier), any())
+ }
+
+ @Test
fun testSingleReceiverUnregistered() {
intentFilter = IntentFilter(ACTION_1)
@@ -145,6 +170,21 @@ class UserBroadcastDispatcherTest : SysuiTestCase() {
}
@Test
+ fun testSingleReceiverUnregistered_logger() {
+ intentFilter = IntentFilter(ACTION_1)
+
+ userBroadcastDispatcher.registerReceiver(
+ ReceiverData(broadcastReceiver, intentFilter, fakeExecutor, USER_HANDLE))
+ testableLooper.processAllMessages()
+
+ userBroadcastDispatcher.unregisterReceiver(broadcastReceiver)
+ testableLooper.processAllMessages()
+
+ verify(logger).logReceiverUnregistered(USER_HANDLE.identifier, broadcastReceiver)
+ verify(logger).logContextReceiverUnregistered(USER_HANDLE.identifier)
+ }
+
+ @Test
fun testFilterHasAllActionsAndCategories_twoReceivers() {
intentFilter = IntentFilter(ACTION_1)
intentFilterOther = IntentFilter(ACTION_2).apply {
@@ -196,6 +236,30 @@ class UserBroadcastDispatcherTest : SysuiTestCase() {
}
@Test
+ fun testDispatch_logger() {
+ intentFilter = IntentFilter(ACTION_1)
+ intentFilterOther = IntentFilter(ACTION_2)
+
+ userBroadcastDispatcher.registerReceiver(
+ ReceiverData(broadcastReceiver, intentFilter, fakeExecutor, USER_HANDLE))
+ userBroadcastDispatcher.registerReceiver(
+ ReceiverData(broadcastReceiverOther, intentFilterOther, fakeExecutor, USER_HANDLE))
+
+ val intent = Intent(ACTION_2)
+
+ userBroadcastDispatcher.onReceive(mockContext, intent)
+ testableLooper.processAllMessages()
+ fakeExecutor.runAllReady()
+
+ val captor = ArgumentCaptor.forClass(Int::class.java)
+ verify(logger)
+ .logBroadcastReceived(captor.capture(), eq(USER_HANDLE.identifier), eq(intent))
+ verify(logger).logBroadcastDispatched(captor.value, ACTION_2, broadcastReceiverOther)
+ verify(logger, never())
+ .logBroadcastDispatched(eq(captor.value), any(), eq(broadcastReceiver))
+ }
+
+ @Test
fun testDispatchToCorrectReceiver_differentFiltersSameReceiver() {
intentFilter = IntentFilter(ACTION_1)
intentFilterOther = IntentFilter(ACTION_2)