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