1 /*
2  * Copyright (C) 2024 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.providers.contactkeys;
18 
19 import android.platform.test.annotations.RequiresFlagsEnabled;
20 import android.provider.E2eeContactKeysManager;
21 import android.provider.Flags;
22 import android.test.ProviderTestCase2;
23 
24 import com.google.common.collect.ImmutableList;
25 
26 import java.util.List;
27 
28 @RequiresFlagsEnabled(Flags.FLAG_USER_KEYS)
29 public class E2eeContactKeysDatabaseHelperTest extends ProviderTestCase2<E2eeContactKeysProvider> {
30 
31     private static final String LOOKUP_KEY = "0r1-423A2E4644502A2E50";
32     private static final String LOOKUP_KEY_2 = "0r2-8T03DE4644502A2E50";
33     private static final String DEVICE_ID = "device_id_value";
34     private static final String DEVICE_ID_2 = "device_id_value_2";
35     private static final String ACCOUNT_ID = "+1 (555) 555-1234";
36     private static final String ACCOUNT_ID_2 = "+1 (123) 456-7895";
37     private static final byte[] KEY_VALUE = new byte[] { (byte) 0xba, (byte) 0x8a };
38     private static final byte[] KEY_VALUE_2 = new byte[] { (byte) 0x5c, (byte) 0xab };
39     private static final byte[] KEY_VALUE_3 = new byte[] { (byte) 0x4a, (byte) 0xa7 };
40     private static final String OWNER_PACKAGE_NAME = "com.package.app1";
41     private static final String OWNER_PACKAGE_NAME_2 = "com.package.app2";
42     private static final long TIME_UPDATED = 1701689265;
43     private static final String DISPLAY_NAME = "John";
44     private static final String PHONE_NUMBER = "(555) 555-1234";
45     private static final String EMAIL_ADDRESS = "example@gmail.com";
46 
47     private E2eeContactKeysDatabaseHelper mDbHelper;
48 
E2eeContactKeysDatabaseHelperTest()49     public E2eeContactKeysDatabaseHelperTest() {
50         super(E2eeContactKeysProvider.class, E2eeContactKeysProvider.AUTHORITY);
51     }
52 
53     /**
54      * Sets up the test environment before each test method.
55      */
setUp()56     public void setUp() throws Exception {
57         super.setUp();
58         mDbHelper = ((E2eeContactKeysProvider) getProvider()).mDbHelper;
59         mDbHelper.getWritableDatabase().execSQL("DROP TABLE IF EXISTS contactkeys");
60         mDbHelper.getWritableDatabase().execSQL("DROP TABLE IF EXISTS selfkeys");
61         mDbHelper.onCreate(mDbHelper.getWritableDatabase());
62     }
63 
64     /**
65      *  This method is called after each test method, to clean up the current fixture.
66      */
tearDown()67     public void tearDown() throws Exception {
68         super.tearDown();
69         mDbHelper.removeContactKey(LOOKUP_KEY, DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME);
70         mDbHelper.removeContactKey(LOOKUP_KEY, DEVICE_ID_2, ACCOUNT_ID, OWNER_PACKAGE_NAME);
71         mDbHelper.removeContactKey(LOOKUP_KEY, DEVICE_ID_2, ACCOUNT_ID, OWNER_PACKAGE_NAME_2);
72         mDbHelper.removeContactKey(LOOKUP_KEY_2, DEVICE_ID_2, ACCOUNT_ID_2, OWNER_PACKAGE_NAME);
73         mDbHelper.removeSelfKey(DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME);
74     }
75 
testInsertAndGetContactKey()76     public void testInsertAndGetContactKey() {
77         mDbHelper.updateOrInsertContactKey(LOOKUP_KEY, KEY_VALUE, DEVICE_ID, ACCOUNT_ID,
78                 OWNER_PACKAGE_NAME, TIME_UPDATED, DISPLAY_NAME, PHONE_NUMBER, EMAIL_ADDRESS);
79         E2eeContactKeysManager.E2eeContactKey contactKey =
80                 mDbHelper.getContactKey(LOOKUP_KEY, OWNER_PACKAGE_NAME, DEVICE_ID, ACCOUNT_ID);
81         E2eeContactKeysManager.E2eeContactKey expectedContactKey =
82                 new E2eeContactKeysManager.E2eeContactKey(DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME,
83                         TIME_UPDATED, KEY_VALUE,
84                         E2eeContactKeysManager.VERIFICATION_STATE_UNVERIFIED,
85                         E2eeContactKeysManager.VERIFICATION_STATE_UNVERIFIED, DISPLAY_NAME,
86                         PHONE_NUMBER, EMAIL_ADDRESS);
87 
88         assertEquals(expectedContactKey, contactKey);
89     }
90 
testInsertContactKeyNoBasicContactInfo()91     public void testInsertContactKeyNoBasicContactInfo() {
92         mDbHelper.updateOrInsertContactKey(LOOKUP_KEY, KEY_VALUE, DEVICE_ID, ACCOUNT_ID,
93                 OWNER_PACKAGE_NAME, TIME_UPDATED, null, null, null);
94         E2eeContactKeysManager.E2eeContactKey contactKey =
95                 mDbHelper.getContactKey(LOOKUP_KEY, OWNER_PACKAGE_NAME, DEVICE_ID, ACCOUNT_ID);
96         E2eeContactKeysManager.E2eeContactKey expectedContactKey =
97                 new E2eeContactKeysManager.E2eeContactKey(DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME,
98                         TIME_UPDATED, KEY_VALUE,
99                         E2eeContactKeysManager.VERIFICATION_STATE_UNVERIFIED,
100                         E2eeContactKeysManager.VERIFICATION_STATE_UNVERIFIED, null, null, null);
101 
102         assertEquals(expectedContactKey, contactKey);
103     }
104 
testUpdateContactKey()105     public void testUpdateContactKey() {
106         mDbHelper.updateOrInsertContactKey(LOOKUP_KEY, KEY_VALUE, DEVICE_ID, ACCOUNT_ID,
107                 OWNER_PACKAGE_NAME, TIME_UPDATED, DISPLAY_NAME, PHONE_NUMBER, EMAIL_ADDRESS);
108         int localVerificationState = E2eeContactKeysManager.VERIFICATION_STATE_VERIFIED;
109         int remoteVerificationState = E2eeContactKeysManager.VERIFICATION_STATE_VERIFIED;
110         mDbHelper.updateContactKeyLocalVerificationState(LOOKUP_KEY, OWNER_PACKAGE_NAME, DEVICE_ID,
111                 ACCOUNT_ID, localVerificationState, TIME_UPDATED + 1);
112         mDbHelper.updateContactKeyRemoteVerificationState(LOOKUP_KEY, OWNER_PACKAGE_NAME, DEVICE_ID,
113                 ACCOUNT_ID, remoteVerificationState, TIME_UPDATED + 2);
114 
115         long timeUpdated = TIME_UPDATED + 3;
116         mDbHelper.updateOrInsertContactKey(LOOKUP_KEY, KEY_VALUE_2, DEVICE_ID, ACCOUNT_ID,
117                 OWNER_PACKAGE_NAME, timeUpdated, DISPLAY_NAME, PHONE_NUMBER, EMAIL_ADDRESS);
118         E2eeContactKeysManager.E2eeContactKey contactKey =
119                 mDbHelper.getContactKey(LOOKUP_KEY, OWNER_PACKAGE_NAME, DEVICE_ID, ACCOUNT_ID);
120 
121         E2eeContactKeysManager.E2eeContactKey expectedContactKey =
122                 new E2eeContactKeysManager.E2eeContactKey(DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME,
123                         timeUpdated, KEY_VALUE_2, localVerificationState, remoteVerificationState,
124                         DISPLAY_NAME, PHONE_NUMBER, EMAIL_ADDRESS);
125 
126         assertEquals(expectedContactKey, contactKey);
127     }
128 
testRemoveContactKey()129     public void testRemoveContactKey() {
130         mDbHelper.updateOrInsertContactKey(LOOKUP_KEY, KEY_VALUE, DEVICE_ID, ACCOUNT_ID,
131                 OWNER_PACKAGE_NAME, TIME_UPDATED, DISPLAY_NAME, PHONE_NUMBER, EMAIL_ADDRESS);
132 
133         int rowsRemoved = mDbHelper.removeContactKey(LOOKUP_KEY, DEVICE_ID, ACCOUNT_ID,
134                 OWNER_PACKAGE_NAME);
135 
136         assertEquals(1, rowsRemoved);
137 
138         E2eeContactKeysManager.E2eeContactKey contactKey =
139                 mDbHelper.getContactKey(LOOKUP_KEY, OWNER_PACKAGE_NAME, DEVICE_ID, ACCOUNT_ID);
140 
141         assertNull(contactKey);
142     }
143 
testUpdateLocalVerificationStateContactKey()144     public void testUpdateLocalVerificationStateContactKey() {
145         mDbHelper.updateOrInsertContactKey(LOOKUP_KEY, KEY_VALUE, DEVICE_ID, ACCOUNT_ID,
146                 OWNER_PACKAGE_NAME, TIME_UPDATED, DISPLAY_NAME, PHONE_NUMBER, EMAIL_ADDRESS);
147 
148         int updatedLvs = E2eeContactKeysManager.VERIFICATION_STATE_VERIFIED;
149         mDbHelper.updateContactKeyLocalVerificationState(LOOKUP_KEY, OWNER_PACKAGE_NAME, DEVICE_ID,
150                 ACCOUNT_ID, updatedLvs, TIME_UPDATED);
151         E2eeContactKeysManager.E2eeContactKey contactKey =
152                 mDbHelper.getContactKey(LOOKUP_KEY, OWNER_PACKAGE_NAME, DEVICE_ID, ACCOUNT_ID);
153 
154         E2eeContactKeysManager.E2eeContactKey expectedContactKey =
155                 new E2eeContactKeysManager.E2eeContactKey(DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME,
156                         TIME_UPDATED, KEY_VALUE, updatedLvs,
157                         E2eeContactKeysManager.VERIFICATION_STATE_UNVERIFIED, DISPLAY_NAME,
158                         PHONE_NUMBER, EMAIL_ADDRESS);
159 
160         assertEquals(expectedContactKey, contactKey);
161     }
162 
testUpdateRemoteVerificationStateContactKey()163     public void testUpdateRemoteVerificationStateContactKey() {
164         mDbHelper.updateOrInsertContactKey(LOOKUP_KEY, KEY_VALUE, DEVICE_ID, ACCOUNT_ID,
165                 OWNER_PACKAGE_NAME, TIME_UPDATED, DISPLAY_NAME, PHONE_NUMBER, EMAIL_ADDRESS);
166 
167         int updatedRvs = E2eeContactKeysManager.VERIFICATION_STATE_VERIFIED;
168         mDbHelper.updateContactKeyRemoteVerificationState(LOOKUP_KEY, OWNER_PACKAGE_NAME, DEVICE_ID,
169                 ACCOUNT_ID, updatedRvs, TIME_UPDATED);
170         E2eeContactKeysManager.E2eeContactKey contactKey =
171                 mDbHelper.getContactKey(LOOKUP_KEY, OWNER_PACKAGE_NAME, DEVICE_ID, ACCOUNT_ID);
172 
173         E2eeContactKeysManager.E2eeContactKey expectedContactKey =
174                 new E2eeContactKeysManager.E2eeContactKey(DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME,
175                         TIME_UPDATED, KEY_VALUE,
176                         E2eeContactKeysManager.VERIFICATION_STATE_UNVERIFIED, updatedRvs,
177                         DISPLAY_NAME, PHONE_NUMBER, EMAIL_ADDRESS);
178 
179         assertEquals(expectedContactKey, contactKey);
180     }
181 
testGetAllContactKeys()182     public void testGetAllContactKeys() {
183         mDbHelper.updateOrInsertContactKey(LOOKUP_KEY, KEY_VALUE, DEVICE_ID, ACCOUNT_ID,
184                 OWNER_PACKAGE_NAME, TIME_UPDATED, DISPLAY_NAME, PHONE_NUMBER, EMAIL_ADDRESS);
185         mDbHelper.updateOrInsertContactKey(LOOKUP_KEY, KEY_VALUE_2, DEVICE_ID_2, ACCOUNT_ID,
186                 OWNER_PACKAGE_NAME_2,
187                 TIME_UPDATED, DISPLAY_NAME, null, null);
188         mDbHelper.updateOrInsertContactKey(LOOKUP_KEY_2, KEY_VALUE_3, DEVICE_ID_2, ACCOUNT_ID_2,
189                 OWNER_PACKAGE_NAME, TIME_UPDATED, "Bob", null, null);
190 
191         List<E2eeContactKeysManager.E2eeContactKey> contactKeys =
192                 mDbHelper.getAllContactKeys(LOOKUP_KEY);
193 
194         E2eeContactKeysManager.E2eeContactKey expectedContactKey1 =
195                 new E2eeContactKeysManager.E2eeContactKey(DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME,
196                         TIME_UPDATED, KEY_VALUE,
197                         E2eeContactKeysManager.VERIFICATION_STATE_UNVERIFIED,
198                         E2eeContactKeysManager.VERIFICATION_STATE_UNVERIFIED, DISPLAY_NAME,
199                         PHONE_NUMBER, EMAIL_ADDRESS);
200         E2eeContactKeysManager.E2eeContactKey expectedContactKey2 =
201                 new E2eeContactKeysManager.E2eeContactKey(DEVICE_ID_2, ACCOUNT_ID,
202                         OWNER_PACKAGE_NAME_2, TIME_UPDATED, KEY_VALUE_2,
203                         E2eeContactKeysManager.VERIFICATION_STATE_UNVERIFIED,
204                         E2eeContactKeysManager.VERIFICATION_STATE_UNVERIFIED,
205                         DISPLAY_NAME, null, null);
206         List<E2eeContactKeysManager.E2eeContactKey> expectedContactKeys = ImmutableList.of(
207                 expectedContactKey1, expectedContactKey2);
208 
209         assertEquals(expectedContactKeys.size(), contactKeys.size());
210         assertTrue(expectedContactKeys.containsAll(contactKeys));
211     }
212 
testGetContactKeysForOwnerPackageName()213     public void testGetContactKeysForOwnerPackageName() {
214         mDbHelper.updateOrInsertContactKey(LOOKUP_KEY, KEY_VALUE, DEVICE_ID, ACCOUNT_ID,
215                 OWNER_PACKAGE_NAME, TIME_UPDATED, DISPLAY_NAME, PHONE_NUMBER, EMAIL_ADDRESS);
216         mDbHelper.updateOrInsertContactKey(LOOKUP_KEY, KEY_VALUE_2, DEVICE_ID_2, ACCOUNT_ID,
217                 OWNER_PACKAGE_NAME, TIME_UPDATED, DISPLAY_NAME, null, null);
218         mDbHelper.updateOrInsertContactKey(LOOKUP_KEY, KEY_VALUE_3, DEVICE_ID_2, ACCOUNT_ID,
219                 OWNER_PACKAGE_NAME_2, TIME_UPDATED, "Bob", null, null);
220         mDbHelper.updateOrInsertContactKey(LOOKUP_KEY_2, KEY_VALUE_3, DEVICE_ID_2, ACCOUNT_ID_2,
221                 OWNER_PACKAGE_NAME, TIME_UPDATED, "Charlie", null, null);
222 
223         List<E2eeContactKeysManager.E2eeContactKey> contactKeys =
224                 mDbHelper.getContactKeysForOwnerPackageName(LOOKUP_KEY, OWNER_PACKAGE_NAME);
225 
226         E2eeContactKeysManager.E2eeContactKey expectedContactKey1 =
227                 new E2eeContactKeysManager.E2eeContactKey(DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME,
228                         TIME_UPDATED, KEY_VALUE,
229                         E2eeContactKeysManager.VERIFICATION_STATE_UNVERIFIED,
230                         E2eeContactKeysManager.VERIFICATION_STATE_UNVERIFIED,
231                         DISPLAY_NAME, PHONE_NUMBER, EMAIL_ADDRESS);
232         E2eeContactKeysManager.E2eeContactKey expectedContactKey2 =
233                 new E2eeContactKeysManager.E2eeContactKey(DEVICE_ID_2, ACCOUNT_ID,
234                         OWNER_PACKAGE_NAME, TIME_UPDATED, KEY_VALUE_2,
235                         E2eeContactKeysManager.VERIFICATION_STATE_UNVERIFIED,
236                         E2eeContactKeysManager.VERIFICATION_STATE_UNVERIFIED,
237                         DISPLAY_NAME, null, null);
238         List<E2eeContactKeysManager.E2eeContactKey> expectedContactKeys = ImmutableList.of(
239                 expectedContactKey1, expectedContactKey2);
240 
241         assertEquals(expectedContactKeys.size(), contactKeys.size());
242         assertTrue(expectedContactKeys.containsAll(contactKeys));
243     }
244 
testInsertAndGetSelfKey()245     public void testInsertAndGetSelfKey() {
246         mDbHelper.updateOrInsertSelfKey(KEY_VALUE, DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME,
247                 TIME_UPDATED);
248         E2eeContactKeysManager.E2eeSelfKey selfKey =
249                 mDbHelper.getSelfKey(DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME);
250         E2eeContactKeysManager.E2eeSelfKey expectedSelfKey =
251                 new E2eeContactKeysManager.E2eeSelfKey(DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME,
252                         TIME_UPDATED, KEY_VALUE,
253                         E2eeContactKeysManager.VERIFICATION_STATE_UNVERIFIED);
254 
255         assertEquals(expectedSelfKey, selfKey);
256     }
257 
testGetAllSelfKeys()258     public void testGetAllSelfKeys() {
259         mDbHelper.updateOrInsertSelfKey(KEY_VALUE, DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME,
260                 TIME_UPDATED);
261         mDbHelper.updateOrInsertSelfKey(KEY_VALUE_2, DEVICE_ID_2, ACCOUNT_ID_2,
262                 OWNER_PACKAGE_NAME_2, TIME_UPDATED);
263 
264         List<E2eeContactKeysManager.E2eeSelfKey> selfKeys =
265                 mDbHelper.getAllSelfKeys();
266 
267         E2eeContactKeysManager.E2eeSelfKey expectedSelfKey1 =
268                 new E2eeContactKeysManager.E2eeSelfKey(DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME,
269                         TIME_UPDATED, KEY_VALUE,
270                         E2eeContactKeysManager.VERIFICATION_STATE_UNVERIFIED);
271         E2eeContactKeysManager.E2eeSelfKey expectedSelfKey2 =
272                 new E2eeContactKeysManager.E2eeSelfKey(DEVICE_ID_2, ACCOUNT_ID_2,
273                         OWNER_PACKAGE_NAME_2, TIME_UPDATED, KEY_VALUE_2,
274                         E2eeContactKeysManager.VERIFICATION_STATE_UNVERIFIED);
275         List<E2eeContactKeysManager.E2eeSelfKey> expectedSelfKeys = ImmutableList.of(
276                 expectedSelfKey1, expectedSelfKey2);
277 
278         assertEquals(expectedSelfKeys.size(), selfKeys.size());
279         assertTrue(expectedSelfKeys.containsAll(selfKeys));
280     }
281 
testGetSelfKeysForOwnerPackageName()282     public void testGetSelfKeysForOwnerPackageName() {
283         mDbHelper.updateOrInsertSelfKey(KEY_VALUE, DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME,
284                 TIME_UPDATED);
285         mDbHelper.updateOrInsertSelfKey(KEY_VALUE_2, DEVICE_ID_2, ACCOUNT_ID_2,
286                 OWNER_PACKAGE_NAME_2, TIME_UPDATED);
287 
288         List<E2eeContactKeysManager.E2eeSelfKey> selfKeys =
289                 mDbHelper.getSelfKeysForOwnerPackageName(OWNER_PACKAGE_NAME);
290 
291         E2eeContactKeysManager.E2eeSelfKey expectedSelfKey1 =
292                 new E2eeContactKeysManager.E2eeSelfKey(DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME,
293                         TIME_UPDATED, KEY_VALUE,
294                         E2eeContactKeysManager.VERIFICATION_STATE_UNVERIFIED);
295         List<E2eeContactKeysManager.E2eeSelfKey> expectedSelfKeys =
296                 ImmutableList.of(expectedSelfKey1);
297 
298         assertEquals(expectedSelfKeys.size(), selfKeys.size());
299         assertTrue(expectedSelfKeys.containsAll(selfKeys));
300     }
301 
testUpdateSelfKey()302     public void testUpdateSelfKey() {
303         mDbHelper.updateOrInsertSelfKey(KEY_VALUE, DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME,
304                 TIME_UPDATED);
305 
306         long timeUpdated = TIME_UPDATED + 1;
307         mDbHelper.updateOrInsertSelfKey(KEY_VALUE_2, DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME,
308                 timeUpdated);
309         E2eeContactKeysManager.E2eeSelfKey selfKey =
310                 mDbHelper.getSelfKey(DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME);
311 
312         E2eeContactKeysManager.E2eeSelfKey expectedSelfKey =
313                 new E2eeContactKeysManager.E2eeSelfKey(DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME,
314                         timeUpdated, KEY_VALUE_2,
315                         E2eeContactKeysManager.VERIFICATION_STATE_UNVERIFIED);
316 
317         assertEquals(expectedSelfKey, selfKey);
318     }
319 
testUpdateRemoteVerificationStateSelfKey()320     public void testUpdateRemoteVerificationStateSelfKey() {
321         mDbHelper.updateOrInsertSelfKey(KEY_VALUE, DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME,
322                 TIME_UPDATED);
323 
324         long timeUpdated = TIME_UPDATED + 1;
325         int updatedRvs = E2eeContactKeysManager.VERIFICATION_STATE_VERIFIED;
326         mDbHelper.updateSelfKeyRemoteVerificationState(OWNER_PACKAGE_NAME, DEVICE_ID, ACCOUNT_ID,
327                 updatedRvs, timeUpdated);
328         E2eeContactKeysManager.E2eeSelfKey selfKey =
329                 mDbHelper.getSelfKey(DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME);
330 
331         E2eeContactKeysManager.E2eeSelfKey expectedSelfKey =
332                 new E2eeContactKeysManager.E2eeSelfKey(DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME,
333                         timeUpdated, KEY_VALUE, updatedRvs);
334 
335         assertEquals(expectedSelfKey, selfKey);
336     }
337 
testRemoveSelfKey()338     public void testRemoveSelfKey() {
339         mDbHelper.updateOrInsertSelfKey(KEY_VALUE, DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME,
340                 TIME_UPDATED);
341 
342         mDbHelper.removeSelfKey(DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME);
343         E2eeContactKeysManager.E2eeSelfKey selfKey =
344                 mDbHelper.getSelfKey(DEVICE_ID, ACCOUNT_ID, OWNER_PACKAGE_NAME);
345 
346         assertNull(selfKey);
347     }
348 }
349