/* * Copyright (C) 2012 uPhyca Inc. * * 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.uphyca.testing; import org.junit.After; import org.junit.Before; import org.junit.Test; import android.app.Application; import android.content.Context; import android.net.Uri; /** * @see android.test.ApplicationTestCase */ public abstract class ApplicationTestCase<T extends Application> { private final ApplicationTester<T> _tester; /** * @param applicationClass * @see android.test.ApplicationTestCase#ApplicationTestCase(Class) */ public ApplicationTestCase(Class<T> applicationClass) { _tester = new ApplicationTester<T>(this, applicationClass); } /** * @throws Exception * @see android.test.ApplicationTestCase#setUp() */ @Before public void setUp() throws Exception { _tester.setUp(); } /** * @throws Exception * @see android.test.ApplicationTestCase#tearDown() */ @After public void tearDown() throws Exception { _tester.tearDown(); } @Test public void testAndroidTestCaseSetupProperly() { _tester.testAndroidTestCaseSetupProperly(); } @Test public final void testApplicationTestCaseSetUpProperly() throws Exception { _tester.testApplicationTestCaseSetUpProperly(); } /** * @param context * @see android.test.AndroidTestCase#setContext(android.content.Context) */ public void setContext(Context context) { _tester.setContext(context); } /** * @return * @see android.test.AndroidTestCase#getContext() */ public Context getContext() { return _tester.getContext(); } /** * @param packageName * @param className * @param permission * @see android.test.AndroidTestCase#assertActivityRequiresPermission(java.lang.String, * java.lang.String, java.lang.String) */ public void assertActivityRequiresPermission(String packageName, String className, String permission) { AndroidTestCaseMethodInvoker invoker = AndroidTestCaseMethodInvoker.getInstance(); invoker.assertActivityRequiresPermission(_tester, packageName, className, permission); } /** * @param uri * @param permission * @see android.test.AndroidTestCase#assertReadingContentUriRequiresPermission(android.net.Uri, * java.lang.String) */ public void assertReadingContentUriRequiresPermission(Uri uri, String permission) { AndroidTestCaseMethodInvoker invoker = AndroidTestCaseMethodInvoker.getInstance(); invoker.assertReadingContentUriRequiresPermission(_tester, uri, permission); } /** * @param uri * @param permission * @see android.test.AndroidTestCase#assertWritingContentUriRequiresPermission(android.net.Uri, * java.lang.String) */ public void assertWritingContentUriRequiresPermission(Uri uri, String permission) { AndroidTestCaseMethodInvoker invoker = AndroidTestCaseMethodInvoker.getInstance(); invoker.assertWritingContentUriRequiresPermission(_tester, uri, permission); } /** * @return * @see android.test.ApplicationTestCase#getApplication() */ public T getApplication() { return _tester.getApplication(); } /** * @return * @see android.test.ApplicationTestCase#getSystemContext() */ public Context getSystemContext() { return _tester.getSystemContext(); } /** * @param testCaseClass * @throws IllegalAccessException * @see com.uphyca.testing.ApplicationTester#scrubClass(java.lang.Class) */ protected void scrubClass(Class<?> testCaseClass) throws IllegalAccessException { _tester.scrubClass(testCaseClass); } protected void createApplication() { _tester.doCreateApplication(); } }