PackageUserStateTest.java revision 13715d521f340d24f1de6e06ceaaf2a945910c0d
1/* 2 * Copyright (C) 2016 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 17package com.android.server.pm; 18 19import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED; 20import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ASK; 21 22import static org.hamcrest.CoreMatchers.is; 23import static org.junit.Assert.assertThat; 24 25import android.content.pm.PackageUserState; 26import android.support.test.runner.AndroidJUnit4; 27import android.test.suitebuilder.annotation.SmallTest; 28import android.util.ArraySet; 29 30import org.junit.Test; 31import org.junit.runner.RunWith; 32 33@RunWith(AndroidJUnit4.class) 34@SmallTest 35public class PackageUserStateTest { 36 37 @Test 38 public void testPackageUserState01() { 39 final PackageUserState testUserState = new PackageUserState(); 40 PackageUserState oldUserState; 41 42 oldUserState = new PackageUserState(); 43 assertThat(testUserState.equals(null), is(false)); 44 assertThat(testUserState.equals(testUserState), is(true)); 45 assertThat(testUserState.equals(oldUserState), is(true)); 46 47 oldUserState = new PackageUserState(); 48 oldUserState.appLinkGeneration = 6; 49 assertThat(testUserState.equals(oldUserState), is(false)); 50 51 oldUserState = new PackageUserState(); 52 oldUserState.blockUninstall = true; 53 assertThat(testUserState.equals(oldUserState), is(false)); 54 55 oldUserState = new PackageUserState(); 56 oldUserState.ceDataInode = 4000L; 57 assertThat(testUserState.equals(oldUserState), is(false)); 58 59 oldUserState = new PackageUserState(); 60 oldUserState.domainVerificationStatus = INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ASK; 61 assertThat(testUserState.equals(oldUserState), is(false)); 62 63 oldUserState = new PackageUserState(); 64 oldUserState.enabled = COMPONENT_ENABLED_STATE_ENABLED; 65 assertThat(testUserState.equals(oldUserState), is(false)); 66 67 oldUserState = new PackageUserState(); 68 oldUserState.hidden = true; 69 assertThat(testUserState.equals(oldUserState), is(false)); 70 71 oldUserState = new PackageUserState(); 72 oldUserState.installed = false; 73 assertThat(testUserState.equals(oldUserState), is(false)); 74 75 oldUserState = new PackageUserState(); 76 oldUserState.notLaunched = true; 77 assertThat(testUserState.equals(oldUserState), is(false)); 78 79 oldUserState = new PackageUserState(); 80 oldUserState.stopped = true; 81 assertThat(testUserState.equals(oldUserState), is(false)); 82 83 oldUserState = new PackageUserState(); 84 oldUserState.suspended = true; 85 assertThat(testUserState.equals(oldUserState), is(false)); 86 } 87 88 @Test 89 public void testPackageUserState02() { 90 final PackageUserState testUserState01 = new PackageUserState(); 91 PackageUserState oldUserState; 92 93 oldUserState = new PackageUserState(); 94 oldUserState.lastDisableAppCaller = "unit_test"; 95 assertThat(testUserState01.equals(oldUserState), is(false)); 96 97 final PackageUserState testUserState02 = new PackageUserState(); 98 testUserState02.lastDisableAppCaller = "unit_test"; 99 assertThat(testUserState02.equals(oldUserState), is(true)); 100 101 final PackageUserState testUserState03 = new PackageUserState(); 102 testUserState03.lastDisableAppCaller = "unit_test_00"; 103 assertThat(testUserState03.equals(oldUserState), is(false)); 104 } 105 106 @Test 107 public void testPackageUserState03() { 108 final PackageUserState oldUserState = new PackageUserState(); 109 110 // only new user state has array defined; different 111 final PackageUserState testUserState01 = new PackageUserState(); 112 testUserState01.disabledComponents = new ArraySet<>(); 113 assertThat(testUserState01.equals(oldUserState), is(false)); 114 115 // only old user state has array defined; different 116 final PackageUserState testUserState02 = new PackageUserState(); 117 oldUserState.disabledComponents = new ArraySet<>(); 118 assertThat(testUserState02.equals(oldUserState), is(false)); 119 120 // both states have array defined; not different 121 final PackageUserState testUserState03 = new PackageUserState(); 122 testUserState03.disabledComponents = new ArraySet<>(); 123 assertThat(testUserState03.equals(oldUserState), is(true)); 124 // fewer elements in old user state; different 125 testUserState03.disabledComponents.add("com.android.unit_test01"); 126 testUserState03.disabledComponents.add("com.android.unit_test02"); 127 testUserState03.disabledComponents.add("com.android.unit_test03"); 128 oldUserState.disabledComponents.add("com.android.unit_test03"); 129 oldUserState.disabledComponents.add("com.android.unit_test02"); 130 assertThat(testUserState03.equals(oldUserState), is(false)); 131 // same elements in old user state; not different 132 oldUserState.disabledComponents.add("com.android.unit_test01"); 133 assertThat(testUserState03.equals(oldUserState), is(true)); 134 // more elements in old user state; different 135 oldUserState.disabledComponents.add("com.android.unit_test04"); 136 assertThat(testUserState03.equals(oldUserState), is(false)); 137 // different elements in old user state; different 138 testUserState03.disabledComponents.add("com.android.unit_test_04"); 139 assertThat(testUserState03.equals(oldUserState), is(false)); 140 } 141 142 @Test 143 public void testPackageUserState04() { 144 final PackageUserState oldUserState = new PackageUserState(); 145 146 // only new user state has array defined; different 147 final PackageUserState testUserState01 = new PackageUserState(); 148 testUserState01.enabledComponents = new ArraySet<>(); 149 assertThat(testUserState01.equals(oldUserState), is(false)); 150 151 // only old user state has array defined; different 152 final PackageUserState testUserState02 = new PackageUserState(); 153 oldUserState.enabledComponents = new ArraySet<>(); 154 assertThat(testUserState02.equals(oldUserState), is(false)); 155 156 // both states have array defined; not different 157 final PackageUserState testUserState03 = new PackageUserState(); 158 testUserState03.enabledComponents = new ArraySet<>(); 159 assertThat(testUserState03.equals(oldUserState), is(true)); 160 // fewer elements in old user state; different 161 testUserState03.enabledComponents.add("com.android.unit_test01"); 162 testUserState03.enabledComponents.add("com.android.unit_test02"); 163 testUserState03.enabledComponents.add("com.android.unit_test03"); 164 oldUserState.enabledComponents.add("com.android.unit_test03"); 165 oldUserState.enabledComponents.add("com.android.unit_test02"); 166 assertThat(testUserState03.equals(oldUserState), is(false)); 167 // same elements in old user state; not different 168 oldUserState.enabledComponents.add("com.android.unit_test01"); 169 assertThat(testUserState03.equals(oldUserState), is(true)); 170 // more elements in old user state; different 171 oldUserState.enabledComponents.add("com.android.unit_test04"); 172 assertThat(testUserState03.equals(oldUserState), is(false)); 173 // different elements in old user state; different 174 testUserState03.enabledComponents.add("com.android.unit_test_04"); 175 assertThat(testUserState03.equals(oldUserState), is(false)); 176 } 177} 178