1 /* 2 * Copyright (C) 2024 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.extensions.appfunctions.tests 18 19 import android.app.appfunctions.AppFunctionException 20 import android.app.appfunctions.ExecuteAppFunctionRequest 21 import android.app.appfunctions.ExecuteAppFunctionResponse 22 import android.app.appsearch.GenericDocument 23 import android.os.Bundle 24 import androidx.test.ext.junit.runners.AndroidJUnit4 25 import com.android.extensions.appfunctions.SidecarConverter 26 import com.google.common.truth.Truth.assertThat 27 import org.junit.Test 28 import org.junit.runner.RunWith 29 30 @RunWith(AndroidJUnit4::class) 31 class SidecarConverterTest { 32 @Test getSidecarExecuteAppFunctionRequest_sameContentsnull33 fun getSidecarExecuteAppFunctionRequest_sameContents() { 34 val extras = Bundle() 35 extras.putString("extra", "value") 36 val parameters: GenericDocument = 37 GenericDocument.Builder<GenericDocument.Builder<*>>("", "", "") 38 .setPropertyLong("testLong", 23) 39 .build() 40 val platformRequest: ExecuteAppFunctionRequest = 41 ExecuteAppFunctionRequest.Builder("targetPkg", "targetFunctionId") 42 .setExtras(extras) 43 .setParameters(parameters) 44 .build() 45 46 val sidecarRequest = SidecarConverter.getSidecarExecuteAppFunctionRequest(platformRequest) 47 48 assertThat(sidecarRequest.targetPackageName).isEqualTo("targetPkg") 49 assertThat(sidecarRequest.functionIdentifier).isEqualTo("targetFunctionId") 50 assertThat(sidecarRequest.parameters).isEqualTo(parameters) 51 assertThat(sidecarRequest.extras.size()).isEqualTo(1) 52 assertThat(sidecarRequest.extras.getString("extra")).isEqualTo("value") 53 } 54 55 @Test getPlatformExecuteAppFunctionRequest_sameContentsnull56 fun getPlatformExecuteAppFunctionRequest_sameContents() { 57 val extras = Bundle() 58 extras.putString("extra", "value") 59 val parameters: GenericDocument = 60 GenericDocument.Builder<GenericDocument.Builder<*>>("", "", "") 61 .setPropertyLong("testLong", 23) 62 .build() 63 val sidecarRequest = 64 com.android.extensions.appfunctions.ExecuteAppFunctionRequest.Builder( 65 "targetPkg", 66 "targetFunctionId" 67 ) 68 .setExtras(extras) 69 .setParameters(parameters) 70 .build() 71 72 val platformRequest = SidecarConverter.getPlatformExecuteAppFunctionRequest(sidecarRequest) 73 74 assertThat(platformRequest.targetPackageName).isEqualTo("targetPkg") 75 assertThat(platformRequest.functionIdentifier).isEqualTo("targetFunctionId") 76 assertThat(platformRequest.parameters).isEqualTo(parameters) 77 assertThat(platformRequest.extras.size()).isEqualTo(1) 78 assertThat(platformRequest.extras.getString("extra")).isEqualTo("value") 79 } 80 81 @Test getSidecarExecuteAppFunctionResponse_successResponse_sameContentsnull82 fun getSidecarExecuteAppFunctionResponse_successResponse_sameContents() { 83 val resultGd: GenericDocument = 84 GenericDocument.Builder<GenericDocument.Builder<*>>("", "", "") 85 .setPropertyBoolean(ExecuteAppFunctionResponse.PROPERTY_RETURN_VALUE, true) 86 .build() 87 val platformResponse = ExecuteAppFunctionResponse(resultGd) 88 89 val sidecarResponse = SidecarConverter.getSidecarExecuteAppFunctionResponse( 90 platformResponse 91 ) 92 93 assertThat( 94 sidecarResponse.resultDocument.getProperty( 95 ExecuteAppFunctionResponse.PROPERTY_RETURN_VALUE 96 ) 97 ) 98 .isEqualTo(booleanArrayOf(true)) 99 } 100 101 @Test getSidecarAppFunctionException_sameContentsnull102 fun getSidecarAppFunctionException_sameContents() { 103 val bundle = Bundle() 104 bundle.putString("key", "value") 105 val platformException = 106 AppFunctionException( 107 AppFunctionException.ERROR_SYSTEM_ERROR, 108 "error", 109 bundle 110 ) 111 112 val sidecarException = SidecarConverter.getSidecarAppFunctionException( 113 platformException 114 ) 115 116 assertThat(sidecarException.errorCode).isEqualTo(AppFunctionException.ERROR_SYSTEM_ERROR) 117 assertThat(sidecarException.errorMessage).isEqualTo("error") 118 assertThat(sidecarException.extras.getString("key")).isEqualTo("value") 119 } 120 121 @Test getPlatformExecuteAppFunctionResponse_successResponse_sameContentsnull122 fun getPlatformExecuteAppFunctionResponse_successResponse_sameContents() { 123 val resultGd: GenericDocument = 124 GenericDocument.Builder<GenericDocument.Builder<*>>("", "", "") 125 .setPropertyBoolean(ExecuteAppFunctionResponse.PROPERTY_RETURN_VALUE, true) 126 .build() 127 val sidecarResponse = 128 com.android.extensions.appfunctions.ExecuteAppFunctionResponse(resultGd) 129 130 val platformResponse = SidecarConverter.getPlatformExecuteAppFunctionResponse( 131 sidecarResponse 132 ) 133 134 assertThat( 135 platformResponse.resultDocument.getProperty( 136 ExecuteAppFunctionResponse.PROPERTY_RETURN_VALUE 137 ) 138 ) 139 .isEqualTo(booleanArrayOf(true)) 140 } 141 142 @Test getPlatformAppFunctionException_sameContentsnull143 fun getPlatformAppFunctionException_sameContents() { 144 val bundle = Bundle() 145 bundle.putString("key", "value") 146 val sidecarException = 147 com.android.extensions.appfunctions.AppFunctionException( 148 AppFunctionException.ERROR_SYSTEM_ERROR, 149 "error", 150 bundle 151 ) 152 153 val platformException = SidecarConverter.getPlatformAppFunctionException( 154 sidecarException 155 ) 156 157 assertThat(platformException.errorCode) 158 .isEqualTo(AppFunctionException.ERROR_SYSTEM_ERROR) 159 assertThat(platformException.errorMessage).isEqualTo("error") 160 assertThat(platformException.extras.getString("key")).isEqualTo("value") 161 } 162 } 163