1/*
2 * Copyright (C) 2014 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5 * use this file except in compliance with the License. You may obtain a copy of
6 * 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, WITHOUT
12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 * License for the specific language governing permissions and limitations under
14 * the License.
15 */
16package com.android.multidexlegacyandexception;
17
18/**
19 * Run the tests with: <code>adb shell am instrument -w
20 com.android.multidexlegacyandexception/android.test.InstrumentationTestRunner
21</code>
22 */
23@SuppressWarnings("deprecation")
24public class Test extends android.test.ActivityInstrumentationTestCase2<MainActivity> {
25    public Test() {
26        super(MainActivity.class);
27    }
28
29    public void testExceptionInMainDex() {
30        assertEquals(10, TestApplication.get(true));
31    }
32
33    public void testExceptionInSecondaryDex() {
34        assertEquals(10, getActivity().get1(true));
35        assertEquals(11, getActivity().get2(true));
36    }
37
38    public void testExceptionInIntermediate() {
39        assertEquals(11, IntermediateClass.get3(true));
40        assertEquals(11, MiniIntermediateClass.get3(true));
41        assertEquals(11, IntermediateClass.get4(true));
42        assertEquals(1, IntermediateClass.get5(null));
43        assertEquals(10, IntermediateClass.get5(new ExceptionInMainDex()));
44        assertEquals(11, IntermediateClass.get5(new ExceptionInSecondaryDex()));
45        assertEquals(12, IntermediateClass.get5(new ExceptionInMainDex2()));
46        assertEquals(13, IntermediateClass.get5(new ExceptionInSecondaryDex2()));
47        assertEquals(14, IntermediateClass.get5(new OutOfMemoryError()));
48        assertEquals(17, IntermediateClass.get5(new CaughtOnlyException()));
49        assertEquals(39, IntermediateClass.get5(new ExceptionInSecondaryDexWithSuperInMain()));
50        assertEquals(23, IntermediateClass.get5(new SuperExceptionInSecondaryDex()));
51        assertEquals(23, IntermediateClass.get5(new SuperExceptionInMainDex()));
52        assertEquals(23, IntermediateClass.get5(new CaughtOnlyByIntermediateException()));
53        assertEquals(37, IntermediateClass.get5(new ArrayIndexOutOfBoundsException()));
54    }
55
56}
57