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