10da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos/* 20da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos * Copyright (C) 2017 The Android Open Source Project 30da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos * 40da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos * Licensed under the Apache License, Version 2.0 (the "License"); 50da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos * you may not use this file except in compliance with the License. 60da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos * You may obtain a copy of the License at 70da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos * 80da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos * http://www.apache.org/licenses/LICENSE-2.0 90da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos * 100da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos * Unless required by applicable law or agreed to in writing, software 110da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos * distributed under the License is distributed on an "AS IS" BASIS, 120da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos * See the License for the specific language governing permissions and 140da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos * limitations under the License. 150da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos */ 160da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos 170da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roospackage com.android.server.am; 180da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos 190da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roosimport android.content.Context; 200da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roosimport android.os.Handler; 210da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roosimport android.support.test.InstrumentationRegistry; 220da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roosimport android.support.test.annotation.UiThreadTest; 230da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roosimport android.support.test.filters.SmallTest; 240da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roosimport android.support.test.runner.AndroidJUnit4; 250da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos 260da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roosimport com.android.server.AppOpsService; 270da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos 280da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roosimport org.junit.Before; 290da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roosimport org.junit.Test; 300da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roosimport org.junit.runner.RunWith; 310da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos 320da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roosimport java.io.File; 330da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos 340da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos/** 350da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos * runtest -c com.android.server.am.AppErrorDialogTest frameworks-services 360da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos */ 370da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos@RunWith(AndroidJUnit4.class) 380da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos@SmallTest 390da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roospublic class AppErrorDialogTest { 400da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos 410da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos private Context mContext; 420da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos private ActivityManagerService mService; 430da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos 440da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos @Before 450da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos public void setUp() throws Exception { 460da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos mContext = InstrumentationRegistry.getTargetContext(); 470da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos mService = new ActivityManagerService(new ActivityManagerService.Injector() { 480da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos @Override 490da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos public AppOpsService getAppOpsService(File file, Handler handler) { 500da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos return null; 510da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos } 520da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos 530da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos @Override 540da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos public Handler getUiHandler(ActivityManagerService service) { 550da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos return null; 560da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos } 570da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos 580da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos @Override 590da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos public boolean isNetworkRestrictedForUid(int uid) { 600da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos return false; 610da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos } 620da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos }); 630da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos } 640da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos 650da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos @Test 660da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos @UiThreadTest 670da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos public void testCreateWorks() throws Exception { 680da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos AppErrorDialog.Data data = new AppErrorDialog.Data(); 69e9d9b4b9a27f419fbd6096698f692b474939cb48Dianne Hackborn data.proc = new ProcessRecord(null, null, mContext.getApplicationInfo(), "name", 12345); 700da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos data.result = new AppErrorResult(); 710da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos 720da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos AppErrorDialog dialog = new AppErrorDialog(mContext, mService, data); 730da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos 740da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos dialog.create(); 750da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos } 760da67d661e20a3361f0ee4f10a19d1b8edf5e73dAdrian Roos} 77