153196f43b44ff02da07c243798168d7e5614ec34Brett Chabot/* 253196f43b44ff02da07c243798168d7e5614ec34Brett Chabot * Copyright (C) 2012 The Android Open Source Project 353196f43b44ff02da07c243798168d7e5614ec34Brett Chabot * 453196f43b44ff02da07c243798168d7e5614ec34Brett Chabot * Licensed under the Apache License, Version 2.0 (the "License"); 553196f43b44ff02da07c243798168d7e5614ec34Brett Chabot * you may not use this file except in compliance with the License. 653196f43b44ff02da07c243798168d7e5614ec34Brett Chabot * You may obtain a copy of the License at 753196f43b44ff02da07c243798168d7e5614ec34Brett Chabot * 853196f43b44ff02da07c243798168d7e5614ec34Brett Chabot * http://www.apache.org/licenses/LICENSE-2.0 953196f43b44ff02da07c243798168d7e5614ec34Brett Chabot * 1053196f43b44ff02da07c243798168d7e5614ec34Brett Chabot * Unless required by applicable law or agreed to in writing, software 1153196f43b44ff02da07c243798168d7e5614ec34Brett Chabot * distributed under the License is distributed on an "AS IS" BASIS, 1253196f43b44ff02da07c243798168d7e5614ec34Brett Chabot * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1353196f43b44ff02da07c243798168d7e5614ec34Brett Chabot * See the License for the specific language governing permissions and 1453196f43b44ff02da07c243798168d7e5614ec34Brett Chabot * limitations under the License. 1553196f43b44ff02da07c243798168d7e5614ec34Brett Chabot */ 163604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabotpackage com.android.test.runner.junit3; 1753196f43b44ff02da07c243798168d7e5614ec34Brett Chabot 1853196f43b44ff02da07c243798168d7e5614ec34Brett Chabotimport junit.framework.Test; 1953196f43b44ff02da07c243798168d7e5614ec34Brett Chabotimport junit.framework.TestResult; 2053196f43b44ff02da07c243798168d7e5614ec34Brett Chabotimport junit.framework.TestSuite; 2153196f43b44ff02da07c243798168d7e5614ec34Brett Chabot 2253196f43b44ff02da07c243798168d7e5614ec34Brett Chabotimport org.junit.Ignore; 2353196f43b44ff02da07c243798168d7e5614ec34Brett Chabot 241379df175a8ff337bae4d98da87219dda721012cBrett Chabotimport android.app.Instrumentation; 251379df175a8ff337bae4d98da87219dda721012cBrett Chabotimport android.content.Context; 261379df175a8ff337bae4d98da87219dda721012cBrett Chabotimport android.os.Bundle; 271379df175a8ff337bae4d98da87219dda721012cBrett Chabotimport android.test.AndroidTestCase; 281379df175a8ff337bae4d98da87219dda721012cBrett Chabotimport android.test.InstrumentationTestCase; 291379df175a8ff337bae4d98da87219dda721012cBrett Chabot 301379df175a8ff337bae4d98da87219dda721012cBrett Chabotimport com.android.test.BundleTest; 311379df175a8ff337bae4d98da87219dda721012cBrett Chabot 3253196f43b44ff02da07c243798168d7e5614ec34Brett Chabot/** 3353196f43b44ff02da07c243798168d7e5614ec34Brett Chabot * A {@link TestSuite} used to pass {@link Context} and {@link Instrumentation} references to child 3453196f43b44ff02da07c243798168d7e5614ec34Brett Chabot * tests. 3553196f43b44ff02da07c243798168d7e5614ec34Brett Chabot */ 3653196f43b44ff02da07c243798168d7e5614ec34Brett Chabot@Ignore 3753196f43b44ff02da07c243798168d7e5614ec34Brett Chabotclass AndroidTestSuite extends TestSuite { 3853196f43b44ff02da07c243798168d7e5614ec34Brett Chabot 3916522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot private final Instrumentation mInstr; 401379df175a8ff337bae4d98da87219dda721012cBrett Chabot private final Bundle mBundle; 4153196f43b44ff02da07c243798168d7e5614ec34Brett Chabot 421379df175a8ff337bae4d98da87219dda721012cBrett Chabot AndroidTestSuite(Class<?> clazz, Bundle bundle, Instrumentation instrumentation) { 4353196f43b44ff02da07c243798168d7e5614ec34Brett Chabot super(clazz); 441379df175a8ff337bae4d98da87219dda721012cBrett Chabot mBundle = bundle; 4553196f43b44ff02da07c243798168d7e5614ec34Brett Chabot mInstr = instrumentation; 4653196f43b44ff02da07c243798168d7e5614ec34Brett Chabot } 4753196f43b44ff02da07c243798168d7e5614ec34Brett Chabot 481379df175a8ff337bae4d98da87219dda721012cBrett Chabot AndroidTestSuite(String name, Bundle bundle, Instrumentation instrumentation) { 4916522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot super(name); 501379df175a8ff337bae4d98da87219dda721012cBrett Chabot mBundle = bundle; 5116522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot mInstr = instrumentation; 5216522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot } 5316522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot 5453196f43b44ff02da07c243798168d7e5614ec34Brett Chabot @Override 5553196f43b44ff02da07c243798168d7e5614ec34Brett Chabot public void runTest(Test test, TestResult result) { 5653196f43b44ff02da07c243798168d7e5614ec34Brett Chabot if (test instanceof AndroidTestCase) { 573c941fb7233210b06245f52cd9630b33da15d344Brett Chabot ((AndroidTestCase)test).setContext(mInstr.getTargetContext()); 5853196f43b44ff02da07c243798168d7e5614ec34Brett Chabot } 5953196f43b44ff02da07c243798168d7e5614ec34Brett Chabot if (test instanceof InstrumentationTestCase) { 6053196f43b44ff02da07c243798168d7e5614ec34Brett Chabot ((InstrumentationTestCase)test).injectInstrumentation(mInstr); 6153196f43b44ff02da07c243798168d7e5614ec34Brett Chabot } 621379df175a8ff337bae4d98da87219dda721012cBrett Chabot if (test instanceof BundleTest) { 631379df175a8ff337bae4d98da87219dda721012cBrett Chabot ((BundleTest)test).injectBundle(mBundle); 641379df175a8ff337bae4d98da87219dda721012cBrett Chabot } 6553196f43b44ff02da07c243798168d7e5614ec34Brett Chabot super.runTest(test, result); 6653196f43b44ff02da07c243798168d7e5614ec34Brett Chabot } 6716522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot 6816522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot Instrumentation getInstrumentation() { 6916522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot return mInstr; 7016522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot } 711379df175a8ff337bae4d98da87219dda721012cBrett Chabot 721379df175a8ff337bae4d98da87219dda721012cBrett Chabot Bundle getBundle() { 731379df175a8ff337bae4d98da87219dda721012cBrett Chabot return mBundle; 741379df175a8ff337bae4d98da87219dda721012cBrett Chabot } 7553196f43b44ff02da07c243798168d7e5614ec34Brett Chabot} 76