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