1a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang/* 2a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang * Copyright (C) 2017 The Android Open Source Project 3a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang * 4a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang * Licensed under the Apache License, Version 2.0 (the "License"); 5a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang * you may not use this file except in compliance with the License. 6a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang * You may obtain a copy of the License at 7a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang * 8a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang * http://www.apache.org/licenses/LICENSE-2.0 9a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang * 10a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang * Unless required by applicable law or agreed to in writing, software 11a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang * distributed under the License is distributed on an "AS IS" BASIS, 12a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang * See the License for the specific language governing permissions and 14a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang * limitations under the License. 15a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang */ 16a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang 17a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhangpackage com.android.settings.testutils; 18a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang 19012028e3a320dd3eeca3c39f0e47c1c40697bdf6Fan Zhangimport android.content.Context; 20012028e3a320dd3eeca3c39f0e47c1c40697bdf6Fan Zhang 21a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhangimport com.android.settings.search.IndexDatabaseHelper; 22a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang 23a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhangimport java.lang.reflect.Field; 24a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang 25a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhangpublic class DatabaseTestUtils { 26a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang 27012028e3a320dd3eeca3c39f0e47c1c40697bdf6Fan Zhang public static void clearDb(Context context) { 28012028e3a320dd3eeca3c39f0e47c1c40697bdf6Fan Zhang IndexDatabaseHelper helper = IndexDatabaseHelper.getInstance(context); 29012028e3a320dd3eeca3c39f0e47c1c40697bdf6Fan Zhang helper.close(); 30012028e3a320dd3eeca3c39f0e47c1c40697bdf6Fan Zhang 31a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang Field instance; 32a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang Class clazz = IndexDatabaseHelper.class; 33a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang try { 34a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang instance = clazz.getDeclaredField("sSingleton"); 35a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang instance.setAccessible(true); 36a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang instance.set(null, null); 37a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang } catch (Exception e) { 38a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang throw new RuntimeException(); 39a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang } 40a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang } 41a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang} 42