aboutsummaryrefslogtreecommitdiff
path: root/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/launch/junit/AndroidJUnitPropertyTester.java
diff options
context:
space:
mode:
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/launch/junit/AndroidJUnitPropertyTester.java')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/launch/junit/AndroidJUnitPropertyTester.java131
1 files changed, 0 insertions, 131 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/launch/junit/AndroidJUnitPropertyTester.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/launch/junit/AndroidJUnitPropertyTester.java
deleted file mode 100644
index 5172e09a7..000000000
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/launch/junit/AndroidJUnitPropertyTester.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * Licensed under the Eclipse Public License, Version 1.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.eclipse.org/org/documents/epl-v10.php
- *
- * 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.ide.eclipse.adt.internal.launch.junit;
-
-import org.eclipse.core.expressions.PropertyTester;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jdt.core.IClassFile;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IMember;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.internal.junit.util.TestSearchEngine;
-
-/**
- * A {@link PropertyTester} that checks if selected elements can be run as Android
- * JUnit tests.
- * <p/>
- * Based on org.eclipse.jdt.internal.junit.JUnitPropertyTester. The only substantial difference in
- * this implementation is source folders cannot be run as Android JUnit.
- */
-@SuppressWarnings("restriction")
-public class AndroidJUnitPropertyTester extends PropertyTester {
- private static final String PROPERTY_IS_TEST = "isTest"; //$NON-NLS-1$
-
- private static final String PROPERTY_CAN_LAUNCH_AS_JUNIT_TEST = "canLaunchAsJUnit"; //$NON-NLS-1$
-
- /* (non-Javadoc)
- * @see org.eclipse.jdt.internal.corext.refactoring.participants.properties.IPropertyEvaluator#test(java.lang.Object, java.lang.String, java.lang.String)
- */
- @Override
- public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
- if (!(receiver instanceof IAdaptable)) {
- final String elementName = (receiver == null ? "null" : //$NON-NLS-1$
- receiver.getClass().getName());
- throw new IllegalArgumentException(
- String.format("Element must be of type IAdaptable, is %s", //$NON-NLS-1$
- elementName));
- }
-
- IJavaElement element;
- if (receiver instanceof IJavaElement) {
- element = (IJavaElement) receiver;
- } else if (receiver instanceof IResource) {
- element = JavaCore.create((IResource) receiver);
- if (element == null) {
- return false;
- }
- } else { // is IAdaptable
- element= (IJavaElement) ((IAdaptable) receiver).getAdapter(IJavaElement.class);
- if (element == null) {
- IResource resource = (IResource) ((IAdaptable) receiver).getAdapter(
- IResource.class);
- element = JavaCore.create(resource);
- if (element == null) {
- return false;
- }
- }
- }
- if (PROPERTY_IS_TEST.equals(property)) {
- return isJUnitTest(element);
- } else if (PROPERTY_CAN_LAUNCH_AS_JUNIT_TEST.equals(property)) {
- return canLaunchAsJUnitTest(element);
- }
- throw new IllegalArgumentException(
- String.format("Unknown test property '%s'", property)); //$NON-NLS-1$
- }
-
- private boolean canLaunchAsJUnitTest(IJavaElement element) {
- try {
- switch (element.getElementType()) {
- case IJavaElement.JAVA_PROJECT:
- return true; // can run, let JDT detect if there are tests
- case IJavaElement.PACKAGE_FRAGMENT_ROOT:
- return false; // not supported by Android test runner
- case IJavaElement.PACKAGE_FRAGMENT:
- return ((IPackageFragment) element).hasChildren();
- case IJavaElement.COMPILATION_UNIT:
- case IJavaElement.CLASS_FILE:
- case IJavaElement.TYPE:
- case IJavaElement.METHOD:
- return isJUnitTest(element);
- default:
- return false;
- }
- } catch (JavaModelException e) {
- return false;
- }
- }
-
- /**
- * Return whether the target resource is a JUnit test.
- */
- private boolean isJUnitTest(IJavaElement element) {
- try {
- IType testType = null;
- if (element instanceof ICompilationUnit) {
- testType = (((ICompilationUnit) element)).findPrimaryType();
- } else if (element instanceof IClassFile) {
- testType = (((IClassFile) element)).getType();
- } else if (element instanceof IType) {
- testType = (IType) element;
- } else if (element instanceof IMember) {
- testType = ((IMember) element).getDeclaringType();
- }
- if (testType != null && testType.exists()) {
- return TestSearchEngine.isTestOrTestSuite(testType);
- }
- } catch (CoreException e) {
- // ignore, return false
- }
- return false;
- }
-}