diff options
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/tests/AdtTestData.java')
-rw-r--r-- | eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/tests/AdtTestData.java | 135 |
1 files changed, 0 insertions, 135 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/tests/AdtTestData.java b/eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/tests/AdtTestData.java deleted file mode 100644 index c86f4cf5f..000000000 --- a/eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/tests/AdtTestData.java +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright (C) 2008 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.tests; - -import com.android.SdkConstants; -import com.android.ide.eclipse.adt.AdtConstants; -import com.android.ide.eclipse.adt.AdtPlugin; - -import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.Platform; - -import java.io.File; -import java.io.IOException; -import java.net.URL; -import java.util.logging.Logger; - -/** - * Helper class for retrieving test data - * <p/> - * All tests which need to retrieve paths to test data files should go through this class. - */ -public class AdtTestData { - - /** singleton instance */ - private static AdtTestData sInstance = null; - private static final Logger sLogger = Logger.getLogger(AdtTestData.class.getName()); - - /** The prefered directory separator to use. */ - private static final String DIR_SEP_STR = "/"; - private static final char DIR_SEP_CHAR = '/'; - - /** The absolute file path to the plugin's contents. */ - private String mOsRootDataPath; - - private AdtTestData() { - // can set test_data env variable to override default behavior of - // finding data using class loader - // useful when running in plugin environment, where test data is inside - // bundled jar, and must be extracted to temp filesystem location to be - // accessed normally - mOsRootDataPath = System.getProperty("test_data"); - if (mOsRootDataPath == null) { - sLogger.info("Cannot find test_data environment variable, init to class loader"); - URL url = this.getClass().getClassLoader().getResource("."); //$NON-NLS-1$ - - if (Platform.isRunning()) { - sLogger.info("Running as an Eclipse Plug-in JUnit test, using FileLocator"); - try { - mOsRootDataPath = FileLocator.resolve(url).getFile(); - if (SdkConstants.currentPlatform() == SdkConstants.PLATFORM_WINDOWS) { - // Fix the path returned by the URL resolver - // so that it actually works on Windows. - - // First, Windows paths don't start with a / especially - // if they contain a drive spec such as C:/... - int pos = mOsRootDataPath.indexOf(':'); - if (pos > 0 && mOsRootDataPath.charAt(0) == '/') { - mOsRootDataPath = mOsRootDataPath.substring(1); - } - - // Looking for "." probably inserted a /./, so clean it up - mOsRootDataPath = mOsRootDataPath.replace("/./", "/"); - } - } catch (IOException e) { - sLogger.warning("IOException while using FileLocator, reverting to url"); - mOsRootDataPath = url.getFile(); - } - } else { - sLogger.info("Running as an plain JUnit test, using url as-is"); - mOsRootDataPath = url.getFile(); - } - } - - if (mOsRootDataPath.equals(AdtConstants.WS_SEP)) { - sLogger.warning("Resource data not found using class loader!, Defaulting to no path"); - } - - if (File.separatorChar == '\\') { - // On Windows, uniformize all separators to use the / convention - mOsRootDataPath.replace('\\', DIR_SEP_CHAR); - } - - if (!mOsRootDataPath.endsWith(File.separator) && !mOsRootDataPath.endsWith(DIR_SEP_STR)) { - sLogger.info("Fixing test_data env variable (does not end with path separator)"); - mOsRootDataPath += DIR_SEP_STR; - } - } - - /** Get the singleton instance of AdtTestData */ - public static AdtTestData getInstance() { - if (sInstance == null) { - sInstance = new AdtTestData(); - } - return sInstance; - } - - /** - * Returns the absolute file path to a file located in this plugin. - * - * @param osRelativePath {@link String} path to file contained in plugin. Must - * use path separators appropriate to host OS - * - * @return absolute OS path to test file - */ - public String getTestFilePath(String osRelativePath) { - File path = new File(mOsRootDataPath, osRelativePath); - - if (!path.exists()) { - // On Windows at least this ends up using the wrong plugin path. - String pkgAdt = AdtPlugin .class.getPackage().getName(); - String pkgTests = AdtTestData.class.getPackage().getName(); - - if (mOsRootDataPath.contains(pkgAdt)) { - path = new File(mOsRootDataPath.replace(pkgAdt, pkgTests), osRelativePath); - } - - assert path.exists(); - } - - return path.getAbsolutePath(); - } -} |