1 /* 2 * Copyright (C) 2023 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.healthconnect.controller.tests 18 19 import android.content.Intent 20 import android.content.pm.PackageManager 21 import androidx.test.platform.app.InstrumentationRegistry 22 import com.android.healthconnect.controller.migration.MigrationActivity 23 import com.android.healthconnect.controller.onboarding.OnboardingActivity 24 import com.android.healthconnect.controller.route.RouteRequestActivity 25 import com.google.common.truth.Truth.assertThat 26 import org.junit.Test 27 28 class ManifestTest { 29 30 private val context = InstrumentationRegistry.getInstrumentation().context 31 32 @Test onboardingActivity_shouldNotBeExportednull33 fun onboardingActivity_shouldNotBeExported() { 34 val intent = Intent(context, OnboardingActivity::class.java) 35 val info = intent.resolveActivityInfo(context.packageManager, PackageManager.MATCH_ALL) 36 assertThat(info.exported).isFalse() 37 } 38 39 @Test migrationActivity_shouldBeExportednull40 fun migrationActivity_shouldBeExported() { 41 val intent = Intent(context, MigrationActivity::class.java) 42 val info = intent.resolveActivityInfo(context.packageManager, PackageManager.MATCH_ALL) 43 assertThat(info.exported).isTrue() 44 } 45 46 @Test routeActivity_shouldBeProtectedByPermissionReadExercisenull47 fun routeActivity_shouldBeProtectedByPermissionReadExercise() { 48 val intent = Intent(context, RouteRequestActivity::class.java) 49 val info = intent.resolveActivityInfo(context.packageManager, PackageManager.MATCH_ALL) 50 assertThat(info.permission).isEqualTo("android.permission.health.READ_EXERCISE") 51 } 52 53 54 @Test routeRequestActivity_shouldBeExportednull55 fun routeRequestActivity_shouldBeExported() { 56 val intent = Intent(context, RouteRequestActivity::class.java) 57 val info = intent.resolveActivityInfo(context.packageManager, PackageManager.MATCH_ALL) 58 assertThat(info.exported).isTrue() 59 } 60 } 61