• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2017, 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 package com.android.managedprovisioning.model;
17 
18 import static android.app.admin.DevicePolicyManager.ACTION_PROVISION_MANAGED_DEVICE;
19 import static android.app.admin.DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE;
20 
21 import static com.android.managedprovisioning.model.CustomizationParams.DEFAULT_STATUS_BAR_COLOR_ID;
22 
23 import static org.hamcrest.MatcherAssert.assertThat;
24 import static org.hamcrest.Matchers.equalTo;
25 import static org.hamcrest.Matchers.nullValue;
26 import static org.mockito.ArgumentMatchers.any;
27 import static org.mockito.Mockito.when;
28 
29 import android.content.ComponentName;
30 import android.content.Context;
31 import android.graphics.Color;
32 import android.support.test.InstrumentationRegistry;
33 import android.support.test.filters.SmallTest;
34 
35 import com.android.managedprovisioning.common.Utils;
36 
37 import org.junit.Before;
38 import org.junit.Test;
39 import org.junit.runner.RunWith;
40 import org.mockito.Mock;
41 import org.mockito.junit.MockitoJUnitRunner;
42 
43 @SmallTest
44 @RunWith(MockitoJUnitRunner.class)
45 public class CustomizationParamsTest {
46     private static final Context mContext = InstrumentationRegistry.getTargetContext();
47     private static final ComponentName COMPONENT_NAME = new ComponentName("org.test", "ATestDPC");
48     private static final int SAMPLE_COLOR = Color.rgb(11, 22, 33);
49     private static final String SAMPLE_URL = "http://d.android.com";
50     private static final String SAMPLE_ORG_NAME = "Organization Inc.";
51     private static final int DEFAULT_MAIN_COLOR = Color.rgb(99, 99, 99);
52 
53     @Mock
54     private Utils mUtils;
55 
56     @Before
setup()57     public void setup() {
58         when(mUtils.getAccentColor(any())).thenReturn(DEFAULT_MAIN_COLOR);
59     }
60 
61     @Test
defaultColorManagedProfile()62     public void defaultColorManagedProfile() {
63         // given
64         ProvisioningParams params = createParams(ACTION_PROVISION_MANAGED_PROFILE, null, null,
65                 null);
66 
67         // when
68         CustomizationParams instance = createInstance(params);
69 
70         // then
71         assertThat(instance.statusBarColor, equalTo(getColor(DEFAULT_STATUS_BAR_COLOR_ID)));
72         assertThat(instance.mainColor, equalTo(DEFAULT_MAIN_COLOR));
73     }
74 
75     @Test
defaultColorDeviceOwner()76     public void defaultColorDeviceOwner() {
77         // given
78         ProvisioningParams params = createParams(ACTION_PROVISION_MANAGED_DEVICE, null, null, null);
79 
80         // when
81         CustomizationParams instance = createInstance(params);
82 
83         // then
84         assertThat(instance.statusBarColor, equalTo(getColor(DEFAULT_STATUS_BAR_COLOR_ID)));
85         assertThat(instance.mainColor, equalTo(DEFAULT_MAIN_COLOR));
86     }
87 
88     @Test
respectsMainColor()89     public void respectsMainColor() {
90         // given
91         ProvisioningParams params = createParams(null, SAMPLE_COLOR, null, null);
92 
93         // when
94         CustomizationParams instance = createInstance(params);
95 
96         // then
97         assertThat(instance.statusBarColor, equalTo(SAMPLE_COLOR));
98         assertThat(instance.mainColor, equalTo(SAMPLE_COLOR));
99     }
100 
101     @Test
orgNameDefaultsToNull()102     public void orgNameDefaultsToNull() {
103         // given
104         ProvisioningParams params = createParams(null, null, null, null);
105 
106         // when
107         CustomizationParams instance = createInstance(params);
108 
109         // then
110         assertThat(instance.orgName, nullValue());
111     }
112 
113     @Test
respectsOrgName()114     public void respectsOrgName() {
115         // given
116         ProvisioningParams params = createParams(null, null, null, SAMPLE_ORG_NAME);
117 
118         // when
119         CustomizationParams instance = createInstance(params);
120 
121         // then
122         assertThat(instance.orgName, equalTo(SAMPLE_ORG_NAME));
123     }
124 
125     @Test
respectsUrl()126     public void respectsUrl() {
127         // given
128         ProvisioningParams params = createParams(null, null, SAMPLE_URL, null);
129 
130         // when
131         CustomizationParams instance = createInstance(params);
132 
133         // then
134         assertThat(instance.supportUrl, equalTo(SAMPLE_URL));
135     }
136 
137     @Test
urlDefaultsToNull()138     public void urlDefaultsToNull() {
139         // given
140         ProvisioningParams params = createParams(null, null, null, null);
141 
142         // when
143         CustomizationParams instance = createInstance(params);
144 
145         // then
146         assertThat(instance.supportUrl, nullValue());
147     }
148 
149     @Test
ignoresInvalidUrl()150     public void ignoresInvalidUrl() {
151         // given
152         ProvisioningParams params = createParams(null, null, "not a valid web url", null);
153 
154         // when
155         CustomizationParams instance = createInstance(params);
156 
157         // then
158         assertThat(instance.supportUrl, nullValue());
159     }
160 
createInstance(ProvisioningParams params)161     private CustomizationParams createInstance(ProvisioningParams params) {
162         return CustomizationParams.createInstance(params, mContext, mUtils);
163     }
164 
createParams(String provisioningAction, Integer mainColor, String supportUrl, String orgName)165     private ProvisioningParams createParams(String provisioningAction, Integer mainColor,
166             String supportUrl, String orgName) {
167         ProvisioningParams.Builder builder =
168                 new ProvisioningParams.Builder().setDeviceAdminComponentName(COMPONENT_NAME);
169 
170         builder.setProvisioningAction(provisioningAction == null ? ACTION_PROVISION_MANAGED_DEVICE
171                 : provisioningAction);
172 
173         if (mainColor != null) {
174             builder.setMainColor(mainColor);
175         }
176 
177         if (supportUrl != null) {
178             builder.setSupportUrl(supportUrl);
179         }
180 
181         if (orgName != null) {
182             builder.setOrganizationName(orgName);
183         }
184 
185         return builder.build();
186     }
187 
getColor(int colorId)188     private int getColor(int colorId) {
189         return mContext.getColor(colorId);
190     }
191 }