blob: 41b8956f55d0622a3454e7ce5bf9a2cb722e9b03 [file] [log] [blame]
/*
* Copyright (C) 2014 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.android.multidexlegacytestapp;
import android.test.ActivityInstrumentationTestCase2;
/**
* Run the tests with: <code>adb shell am instrument -w
com.android.multidexlegacytestapp/android.test.InstrumentationTestRunner
</code>
*/
public class Test extends ActivityInstrumentationTestCase2<MainActivity> {
public Test() {
super(MainActivity.class);
}
public void testAllClassesAvailable() {
assertEquals(3366, getActivity().getValue());
}
public void testAnnotation() throws Exception {
assertEquals(ReferencedByAnnotation.B,
((AnnotationWithEnum) TestApplication.annotation).value());
assertEquals(ReferencedByAnnotation.B,
((AnnotationWithEnum) TestApplication.getAnnotationWithEnum()).value());
// Just to verify that it doesn't crash
getActivity().getAnnotation2Value();
assertEquals(ReferencedByClassInAnnotation.class,
((AnnotationWithClass) TestApplication.annotation3).value());
// Just to verify that it doesn't crash
ReferencedByClassInAnnotation.A.get();
// Tests about bug https://code.google.com/p/android/issues/detail?id=78144
// Dalvik may throw IllegalAccessError when a class is in a different dex than an enum
// used in its annotations.
String annotationPackage = "com.android.multidexlegacytestapp.annotation.";
Class<?> clazz = Class.forName(annotationPackage + "Annotated");
// Just to verify that it doesn't crash
clazz.getAnnotations();
clazz = Class.forName(annotationPackage + "Annotated2");
// Just to verify that it doesn't crash
clazz.getAnnotations();
clazz = Class.forName(annotationPackage + "Annotated3");
// Just to verify that it doesn't crash
clazz.getAnnotations();
}
public void testInterface() {
assertEquals(InterfaceWithEnum.class,
TestApplication.interfaceClass);
}
}