1 /* 2 * Copyright (C) 2021 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.settings.enterprise; 18 19 import static com.google.common.truth.Truth.assertThat; 20 21 import android.content.Context; 22 import android.provider.SearchIndexableResource; 23 24 import androidx.test.core.app.ApplicationProvider; 25 26 import com.android.settings.R; 27 import com.android.settings.widget.PreferenceCategoryController; 28 import com.android.settingslib.core.AbstractPreferenceController; 29 30 import org.junit.Before; 31 import org.junit.runner.RunWith; 32 import org.robolectric.RobolectricTestRunner; 33 34 import java.util.List; 35 36 @RunWith(RobolectricTestRunner.class) 37 public abstract class BasePrivacySettingsPreferenceTest { 38 39 protected Context mContext; 40 41 @Before setUp()42 public void setUp() { 43 mContext = ApplicationProvider.getApplicationContext(); 44 } 45 verifyEnterpriseSearchIndexableResources( List<SearchIndexableResource> searchIndexableResources)46 protected static void verifyEnterpriseSearchIndexableResources( 47 List<SearchIndexableResource> searchIndexableResources) { 48 assertThat(searchIndexableResources).isNotEmpty(); 49 assertThat(searchIndexableResources.size()).isEqualTo(1); 50 assertThat(searchIndexableResources.get(0).xmlResId) 51 .isEqualTo(R.xml.enterprise_privacy_settings); 52 } 53 verifyEnterprisePreferenceControllers( List<AbstractPreferenceController> controllers)54 protected static void verifyEnterprisePreferenceControllers( 55 List<AbstractPreferenceController> controllers) { 56 assertThat(controllers).isNotNull(); 57 assertThat(controllers.size()).isEqualTo(17); 58 int position = 0; 59 assertThat(controllers.get(position++)).isInstanceOf(NetworkLogsPreferenceController.class); 60 assertThat(controllers.get(position++)).isInstanceOf(BugReportsPreferenceController.class); 61 assertThat(controllers.get(position++)).isInstanceOf( 62 SecurityLogsPreferenceController.class); 63 assertThat(controllers.get(position++)).isInstanceOf( 64 EnterpriseInstalledPackagesPreferenceController.class); 65 assertThat(controllers.get(position++)).isInstanceOf( 66 AdminGrantedLocationPermissionsPreferenceController.class); 67 assertThat(controllers.get(position++)).isInstanceOf( 68 AdminGrantedMicrophonePermissionPreferenceController.class); 69 assertThat(controllers.get(position++)).isInstanceOf( 70 AdminGrantedCameraPermissionPreferenceController.class); 71 assertThat(controllers.get(position++)).isInstanceOf( 72 EnterpriseSetDefaultAppsPreferenceController.class); 73 assertThat(controllers.get(position++)).isInstanceOf( 74 AlwaysOnVpnCurrentUserPreferenceController.class); 75 assertThat(controllers.get(position++)).isInstanceOf( 76 AlwaysOnVpnManagedProfilePreferenceController.class); 77 assertThat(controllers.get(position++)).isInstanceOf(ImePreferenceController.class); 78 assertThat(controllers.get(position++)).isInstanceOf( 79 GlobalHttpProxyPreferenceController.class); 80 assertThat(controllers.get(position++)).isInstanceOf( 81 CaCertsCurrentUserPreferenceController.class); 82 assertThat(controllers.get(position++)).isInstanceOf( 83 CaCertsManagedProfilePreferenceController.class); 84 assertThat(controllers.get(position++)).isInstanceOf( 85 PreferenceCategoryController.class); 86 assertThat(controllers.get(position++)).isInstanceOf( 87 FailedPasswordWipeCurrentUserPreferenceController.class); 88 assertThat(controllers.get(position)).isInstanceOf( 89 FailedPasswordWipeManagedProfilePreferenceController.class); 90 } 91 verifyFinancedSearchIndexableResources( List<SearchIndexableResource> searchIndexableResources)92 protected static void verifyFinancedSearchIndexableResources( 93 List<SearchIndexableResource> searchIndexableResources) { 94 assertThat(searchIndexableResources).isNotEmpty(); 95 assertThat(searchIndexableResources.size()).isEqualTo(1); 96 assertThat(searchIndexableResources.get(0).xmlResId) 97 .isEqualTo(R.xml.financed_privacy_settings); 98 } 99 verifyFinancedPreferenceControllers( List<AbstractPreferenceController> controllers)100 protected static void verifyFinancedPreferenceControllers( 101 List<AbstractPreferenceController> controllers) { 102 assertThat(controllers).isNotNull(); 103 assertThat(controllers.size()).isEqualTo(6); 104 int position = 0; 105 assertThat(controllers.get(position++)).isInstanceOf(NetworkLogsPreferenceController.class); 106 assertThat(controllers.get(position++)).isInstanceOf(BugReportsPreferenceController.class); 107 assertThat(controllers.get(position++)).isInstanceOf( 108 SecurityLogsPreferenceController.class); 109 assertThat(controllers.get(position++)).isInstanceOf( 110 EnterpriseInstalledPackagesPreferenceController.class); 111 assertThat(controllers.get(position++)).isInstanceOf( 112 PreferenceCategoryController.class); 113 assertThat(controllers.get(position)).isInstanceOf( 114 FailedPasswordWipeCurrentUserPreferenceController.class); 115 } 116 } 117