aboutsummaryrefslogtreecommitdiffstats
path: root/sdkmanager/app
diff options
context:
space:
mode:
authorRaphael Moll <ralf@android.com>2011-08-18 15:09:57 -0700
committerRaphael Moll <ralf@android.com>2011-08-18 15:52:24 -0700
commitaed3bf34d3f5e62757b076e8b403b3b33fe05e34 (patch)
tree487bee7fc4ab1f1e46470e7d0ef90919674e5130 /sdkmanager/app
parent969eb605ac08c49b2c1994b5d60502b1ae5b4310 (diff)
downloadsdk-aed3bf34d3f5e62757b076e8b403b3b33fe05e34.zip
sdk-aed3bf34d3f5e62757b076e8b403b3b33fe05e34.tar.gz
sdk-aed3bf34d3f5e62757b076e8b403b3b33fe05e34.tar.bz2
SDK: Expose Layoutlib Version through IAndroidTarget.
This changes PlatformTarget to parse the Layoutlib Version (API + revision) stored by the SDK Manager in the source.properties of the platform on disk. Then this introduces an helper method in SdkManager to find the highest available layoutlib version. Change-Id: I94990dabed6c7e5ad3f8f06ff3b16696edca8653
Diffstat (limited to 'sdkmanager/app')
-rw-r--r--sdkmanager/app/tests/com/android/sdkmanager/AvdManagerTest.java1
-rw-r--r--sdkmanager/app/tests/com/android/sdkmanager/MainTest.java1
-rwxr-xr-xsdkmanager/app/tests/com/android/sdkmanager/SdkManagerTestCase.java182
3 files changed, 2 insertions, 182 deletions
diff --git a/sdkmanager/app/tests/com/android/sdkmanager/AvdManagerTest.java b/sdkmanager/app/tests/com/android/sdkmanager/AvdManagerTest.java
index a5a8289..93b12c1 100644
--- a/sdkmanager/app/tests/com/android/sdkmanager/AvdManagerTest.java
+++ b/sdkmanager/app/tests/com/android/sdkmanager/AvdManagerTest.java
@@ -19,6 +19,7 @@ package com.android.sdkmanager;
import com.android.io.FileWrapper;
import com.android.sdklib.IAndroidTarget;
import com.android.sdklib.SdkConstants;
+import com.android.sdklib.SdkManagerTestCase;
import com.android.sdklib.internal.avd.AvdInfo;
import com.android.sdklib.internal.project.ProjectProperties;
diff --git a/sdkmanager/app/tests/com/android/sdkmanager/MainTest.java b/sdkmanager/app/tests/com/android/sdkmanager/MainTest.java
index 4a17e32..ef5a715 100644
--- a/sdkmanager/app/tests/com/android/sdkmanager/MainTest.java
+++ b/sdkmanager/app/tests/com/android/sdkmanager/MainTest.java
@@ -19,6 +19,7 @@ package com.android.sdkmanager;
import com.android.sdklib.IAndroidTarget;
import com.android.sdklib.SdkConstants;
+import com.android.sdklib.SdkManagerTestCase;
import com.android.sdklib.internal.avd.AvdInfo;
import com.android.sdklib.repository.SdkAddonConstants;
import com.android.sdklib.repository.SdkRepoConstants;
diff --git a/sdkmanager/app/tests/com/android/sdkmanager/SdkManagerTestCase.java b/sdkmanager/app/tests/com/android/sdkmanager/SdkManagerTestCase.java
deleted file mode 100755
index 9fdd852..0000000
--- a/sdkmanager/app/tests/com/android/sdkmanager/SdkManagerTestCase.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Copyright (C) 2011 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.sdkmanager;
-
-
-import com.android.prefs.AndroidLocation;
-import com.android.prefs.AndroidLocation.AndroidLocationException;
-import com.android.sdklib.ISdkLog;
-import com.android.sdklib.SdkConstants;
-import com.android.sdklib.SdkManager;
-import com.android.sdklib.internal.avd.AvdManager;
-import com.android.sdklib.mock.MockLog;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-
-import junit.framework.TestCase;
-
-/**
- * Test case that allocates a temporary SDK, a temporary AVD base folder
- * with an SdkManager and an AvdManager that points to them.
- */
-public abstract class SdkManagerTestCase extends TestCase {
-
- private File mFakeSdk;
- private MockLog mLog;
- private SdkManager mSdkManager;
- private TmpAvdManager mAvdManager;
-
- /** Returns the {@link MockLog} for this test case. */
- public MockLog getLog() {
- return mLog;
- }
-
- /** Returns the {@link SdkManager} for this test case. */
- public SdkManager getSdkManager() {
- return mSdkManager;
- }
-
- /** Returns the {@link AvdManager} for this test case. */
- public TmpAvdManager getAvdManager() {
- return mAvdManager;
- }
-
- /**
- * Sets up a {@link MockLog}, a fake SDK in a temporary directory
- * and an AVD Manager pointing to an initially-empty AVD directory.
- */
- @Override
- public void setUp() throws Exception {
- mLog = new MockLog();
- mFakeSdk = makeFakeSdk();
- mSdkManager = SdkManager.createManager(mFakeSdk.getAbsolutePath(), mLog);
- assertNotNull("SdkManager location was invalid", mSdkManager);
-
- mAvdManager = new TmpAvdManager(mSdkManager, mLog);
- }
-
- /**
- * Removes the temporary SDK and AVD directories.
- */
- @Override
- public void tearDown() throws Exception {
- deleteDir(mFakeSdk);
- }
-
- /**
- * An {@link AvdManager} that uses a temporary directory
- * located <em>inside</em> the SDK directory for testing.
- * The AVD list should be initially empty.
- */
- protected static class TmpAvdManager extends AvdManager {
-
- /*
- * Implementation detail:
- * - When the super.AvdManager constructor is invoked, it will invoke
- * the buildAvdFilesList() to fill the initial AVD list, which will in
- * turn call getBaseAvdFolder().
- * - That's why mTmpAvdRoot is initialized in getAvdRoot() rather than
- * in the constructor, since we can't initialize fields before the super()
- * call.
- */
-
- /**
- * AVD Root, initialized "lazily" when the AVD root is first requested.
- */
- private File mTmpAvdRoot;
-
- public TmpAvdManager(SdkManager sdkManager, ISdkLog log) throws AndroidLocationException {
- super(sdkManager, log);
- }
-
- @Override
- public String getBaseAvdFolder() throws AndroidLocationException {
- if (mTmpAvdRoot == null) {
- mTmpAvdRoot = new File(getSdkManager().getLocation(), "tmp_avds");
- mTmpAvdRoot.mkdirs();
- }
- return mTmpAvdRoot.getAbsolutePath();
- }
- }
-
- /**
- * Build enough of a skeleton SDK to make the tests pass.
- * <p/>
- * Ideally this wouldn't touch the file system but the current
- * structure of the SdkManager and AvdManager makes this difficult.
- *
- * @return Path to the temporary SDK root
- * @throws IOException
- */
- private File makeFakeSdk() throws IOException {
-
- File tmpFile = File.createTempFile(
- this.getClass().getSimpleName() + '_' + this.getName(), null);
- tmpFile.delete();
- tmpFile.mkdirs();
-
- AndroidLocation.resetFolder();
- System.setProperty("user.home", tmpFile.getAbsolutePath());
- File addonsDir = new File(tmpFile, SdkConstants.FD_ADDONS);
- addonsDir.mkdir();
- File toolsLibEmuDir = new File(tmpFile, SdkConstants.OS_SDK_TOOLS_LIB_FOLDER + "emulator");
- toolsLibEmuDir.mkdirs();
- new File(toolsLibEmuDir, "snapshots.img").createNewFile();
- File platformsDir = new File(tmpFile, SdkConstants.FD_PLATFORMS);
-
- // Creating a fake target here on down
- File targetDir = new File(platformsDir, "v0_0");
- targetDir.mkdirs();
- new File(targetDir, SdkConstants.FN_FRAMEWORK_LIBRARY).createNewFile();
- new File(targetDir, SdkConstants.FN_FRAMEWORK_AIDL).createNewFile();
- new File(targetDir, SdkConstants.FN_SOURCE_PROP).createNewFile();
- File buildProp = new File(targetDir, SdkConstants.FN_BUILD_PROP);
- FileWriter out = new FileWriter(buildProp);
- out.write(SdkManager.PROP_VERSION_RELEASE + "=0.0\n");
- out.write(SdkManager.PROP_VERSION_SDK + "=0\n");
- out.write(SdkManager.PROP_VERSION_CODENAME + "=REL\n");
- out.close();
- File imagesDir = new File(targetDir, "images");
- imagesDir.mkdirs();
- new File(imagesDir, "userdata.img").createNewFile();
- File skinsDir = new File(targetDir, "skins");
- File hvgaDir = new File(skinsDir, "HVGA");
- hvgaDir.mkdirs();
- return tmpFile;
- }
-
- /**
- * Recursive delete directory. Mostly for fake SDKs.
- *
- * @param root directory to delete
- */
- private void deleteDir(File root) {
- if (root.exists()) {
- for (File file : root.listFiles()) {
- if (file.isDirectory()) {
- deleteDir(file);
- } else {
- file.delete();
- }
- }
- root.delete();
- }
- }
-
-}