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