1 /* 2 * Copyright (C) 2020 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.server.devicepolicy; 18 19 import static com.google.common.truth.Truth.assertThat; 20 21 import static org.testng.Assert.assertThrows; 22 23 import androidx.test.runner.AndroidJUnit4; 24 25 import org.junit.Before; 26 import org.junit.Test; 27 import org.junit.runner.RunWith; 28 29 @RunWith(AndroidJUnit4.class) 30 public class EnterpriseSpecificIdCalculatorTest { 31 private static final String SOME_IMEI = "56134231542345"; 32 private static final String SOME_SERIAL_NUMBER = "XZ663CCAJA7"; 33 private static final String SOME_MAC_ADDRESS = "65:ca:f3:fe:9d:b1"; 34 private static final String NO_MEID = null; 35 private static final String SOME_PACKAGE = "com.example.test.dpc"; 36 private static final String ANOTHER_PACKAGE = "org.example.test.another.dpc"; 37 private static final String SOME_ENTERPRISE_ID = "73456234"; 38 private static final String ANOTHER_ENTERPRISE_ID = "243441"; 39 40 private EnterpriseSpecificIdCalculator mEsidCalculator; 41 42 @Before createDefaultEsidCalculator()43 public void createDefaultEsidCalculator() { 44 mEsidCalculator = new EnterpriseSpecificIdCalculator(SOME_IMEI, NO_MEID, SOME_SERIAL_NUMBER, 45 SOME_MAC_ADDRESS); 46 } 47 48 @Test paddingOfIdentifiers()49 public void paddingOfIdentifiers() { 50 assertThat(mEsidCalculator.getPaddedImei()).isEqualTo(" 56134231542345"); 51 assertThat(mEsidCalculator.getPaddedMeid()).isEqualTo(" "); 52 assertThat(mEsidCalculator.getPaddedSerialNumber()).isEqualTo(" XZ663CCAJA7"); 53 } 54 55 @Test truncationOfLongIdentifier()56 public void truncationOfLongIdentifier() { 57 EnterpriseSpecificIdCalculator esidCalculator = new EnterpriseSpecificIdCalculator( 58 SOME_IMEI, NO_MEID, "XZ663CCAJA7XZ663CCAJA7XZ663CCAJA7", 59 SOME_MAC_ADDRESS); 60 assertThat(esidCalculator.getPaddedSerialNumber()).isEqualTo("XZ663CCAJA7XZ663"); 61 } 62 63 @Test paddingOfPackageName()64 public void paddingOfPackageName() { 65 assertThat(mEsidCalculator.getPaddedProfileOwnerName(SOME_PACKAGE)).isEqualTo( 66 " " + SOME_PACKAGE); 67 } 68 69 @Test paddingOfEnterpriseId()70 public void paddingOfEnterpriseId() { 71 assertThat(mEsidCalculator.getPaddedEnterpriseId(SOME_ENTERPRISE_ID)).isEqualTo( 72 " " + SOME_ENTERPRISE_ID); 73 } 74 75 @Test emptyEnterpriseIdYieldsEmptyEsid()76 public void emptyEnterpriseIdYieldsEmptyEsid() { 77 assertThrows(IllegalArgumentException.class, () -> 78 mEsidCalculator.calculateEnterpriseId(SOME_PACKAGE, "")); 79 } 80 81 @Test emptyDpcPackageYieldsEmptyEsid()82 public void emptyDpcPackageYieldsEmptyEsid() { 83 assertThrows(IllegalArgumentException.class, () -> 84 mEsidCalculator.calculateEnterpriseId("", SOME_ENTERPRISE_ID)); 85 } 86 87 // On upgrade, an ESID will be calculated with an empty Enterprise ID. This is signalled 88 // to the EnterpriseSpecificIdCalculator by passing in null. 89 @Test nullEnterpriseIdYieldsValidEsid()90 public void nullEnterpriseIdYieldsValidEsid() { 91 assertThat(mEsidCalculator.calculateEnterpriseId(SOME_PACKAGE, null)).isEqualTo( 92 "C4W7-VUJT-PHSA-HMY53-CLHX-L4HW-L"); 93 } 94 95 @Test knownValues()96 public void knownValues() { 97 assertThat( 98 mEsidCalculator.calculateEnterpriseId(SOME_PACKAGE, SOME_ENTERPRISE_ID)).isEqualTo( 99 "FP7B-RXQW-Q77F-7J6FC-5RXZ-UJI6-6"); 100 assertThat(mEsidCalculator.calculateEnterpriseId(SOME_PACKAGE, 101 ANOTHER_ENTERPRISE_ID)).isEqualTo("ATAL-VPIX-GBNZ-NE3TF-TDEV-3OVO-C"); 102 assertThat(mEsidCalculator.calculateEnterpriseId(ANOTHER_PACKAGE, 103 SOME_ENTERPRISE_ID)).isEqualTo("JHU3-6SHH-YLHC-ZGETD-PWNI-7NPQ-S"); 104 assertThat(mEsidCalculator.calculateEnterpriseId(ANOTHER_PACKAGE, 105 ANOTHER_ENTERPRISE_ID)).isEqualTo("LEF3-QBEC-UQ6O-RIOCX-TQF6-GRLV-F"); 106 } 107 } 108