• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2022 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.systemui.media.taptotransfer.sender
18 
19 import androidx.test.filters.SmallTest
20 import com.android.internal.logging.InstanceId
21 import com.android.systemui.SysuiTestCase
22 import com.android.systemui.dump.DumpManager
23 import com.android.systemui.log.LogBuffer
24 import com.android.systemui.log.LogBufferFactory
25 import com.android.systemui.log.LogcatEchoTracker
26 import com.google.common.truth.Truth.assertThat
27 import java.io.PrintWriter
28 import java.io.StringWriter
29 import org.junit.Before
30 import org.junit.Test
31 import org.mockito.Mockito.mock
32 
33 @SmallTest
34 class MediaTttSenderLoggerTest : SysuiTestCase() {
35 
36     private lateinit var buffer: LogBuffer
37     private lateinit var logger: MediaTttSenderLogger
38 
39     @Before
setUpnull40     fun setUp() {
41         buffer =
42             LogBufferFactory(DumpManager(), mock(LogcatEchoTracker::class.java))
43                 .create("buffer", 10)
44         logger = MediaTttSenderLogger(buffer)
45     }
46 
47     @Test
logStateChange_bufferHasDeviceTypeTagAndParamInfonull48     fun logStateChange_bufferHasDeviceTypeTagAndParamInfo() {
49         val stateName = "test state name"
50         val id = "test id"
51         val packageName = "this.is.a.package"
52 
53         logger.logStateChange(stateName, id, packageName)
54 
55         val actualString = getStringFromBuffer()
56         assertThat(actualString).contains(stateName)
57         assertThat(actualString).contains(id)
58         assertThat(actualString).contains(packageName)
59     }
60 
61     @Test
logStateChangeError_hasStatenull62     fun logStateChangeError_hasState() {
63         logger.logStateChangeError(3456)
64 
65         val actualString = getStringFromBuffer()
66         assertThat(actualString).contains("3456")
67     }
68 
69     @Test
logPackageNotFound_bufferHasPackageNamenull70     fun logPackageNotFound_bufferHasPackageName() {
71         val packageName = "this.is.a.package"
72 
73         logger.logPackageNotFound(packageName)
74 
75         val actualString = getStringFromBuffer()
76         assertThat(actualString).contains(packageName)
77     }
78 
79     @Test
logRemovalBypass_bufferHasReasonsnull80     fun logRemovalBypass_bufferHasReasons() {
81         val removalReason = "fakeRemovalReason"
82         val bypassReason = "fakeBypassReason"
83 
84         logger.logRemovalBypass(removalReason, bypassReason)
85 
86         val actualString = getStringFromBuffer()
87         assertThat(actualString).contains(removalReason)
88         assertThat(actualString).contains(bypassReason)
89     }
90 
91     @Test
logStateMap_bufferHasInfonull92     fun logStateMap_bufferHasInfo() {
93         val map =
94             mapOf(
95                 "123" to
96                     Pair(
97                         InstanceId.fakeInstanceId(100),
98                         ChipStateSender.ALMOST_CLOSE_TO_START_CAST
99                     ),
100                 "456" to
101                     Pair(
102                         InstanceId.fakeInstanceId(200),
103                         ChipStateSender.TRANSFER_TO_THIS_DEVICE_TRIGGERED
104                     ),
105             )
106 
107         logger.logStateMap(map)
108 
109         val actualString = getStringFromBuffer()
110         assertThat(actualString).contains("123")
111         assertThat(actualString).contains(ChipStateSender.ALMOST_CLOSE_TO_START_CAST.name)
112         assertThat(actualString).contains("456")
113         assertThat(actualString).contains(ChipStateSender.TRANSFER_TO_THIS_DEVICE_TRIGGERED.name)
114     }
115 
116     @Test
logStateMapRemoval_bufferHasInfonull117     fun logStateMapRemoval_bufferHasInfo() {
118         logger.logStateMapRemoval("456", "testReason")
119 
120         val actualString = getStringFromBuffer()
121         assertThat(actualString).contains("456")
122         assertThat(actualString).contains("testReason")
123     }
124 
getStringFromBuffernull125     private fun getStringFromBuffer(): String {
126         val stringWriter = StringWriter()
127         buffer.dump(PrintWriter(stringWriter), tailLength = 0)
128         return stringWriter.toString()
129     }
130 }
131