aboutsummaryrefslogtreecommitdiffstats
path: root/sdkmanager/app/tests/com/android/sdkmanager/MainTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'sdkmanager/app/tests/com/android/sdkmanager/MainTest.java')
-rw-r--r--sdkmanager/app/tests/com/android/sdkmanager/MainTest.java174
1 files changed, 133 insertions, 41 deletions
diff --git a/sdkmanager/app/tests/com/android/sdkmanager/MainTest.java b/sdkmanager/app/tests/com/android/sdkmanager/MainTest.java
index 29516e3..4a17e32 100644
--- a/sdkmanager/app/tests/com/android/sdkmanager/MainTest.java
+++ b/sdkmanager/app/tests/com/android/sdkmanager/MainTest.java
@@ -17,60 +17,63 @@
package com.android.sdkmanager;
-import static java.io.File.createTempFile;
-
import com.android.sdklib.IAndroidTarget;
-import com.android.sdklib.SdkManager;
-import com.android.sdklib.internal.avd.AvdManager;
-import com.android.sdklib.mock.MockLog;
+import com.android.sdklib.SdkConstants;
+import com.android.sdklib.internal.avd.AvdInfo;
+import com.android.sdklib.repository.SdkAddonConstants;
+import com.android.sdklib.repository.SdkRepoConstants;
+import com.android.util.Pair;
import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Set;
+import java.util.TreeSet;
-import junit.framework.TestCase;
-
-public class MainTest extends TestCase {
+public class MainTest extends SdkManagerTestCase {
- private File mFakeSdk;
- private MockLog mLog;
- private SdkManager mSdkManager;
- private AvdManager mAvdManager;
- private File mAvdFolder;
private IAndroidTarget mTarget;
- private File fakeSdkDir;
+ private File mAvdFolder;
@Override
public void setUp() throws Exception {
- mLog = new MockLog();
- fakeSdkDir = createTempFile(this.getClass().getSimpleName() + "_" + this.getName(), null);
- mFakeSdk = SdkManagerTestUtil.makeFakeSdk(fakeSdkDir);
- mSdkManager = SdkManager.createManager(mFakeSdk.getAbsolutePath(), mLog);
- assertNotNull("sdkManager location was invalid", mSdkManager);
-
- mAvdManager = new AvdManager(mSdkManager, mLog);
- mAvdFolder = new File(mFakeSdk, "avdData");
- mTarget = mSdkManager.getTargets()[0];
+ super.setUp();
+
+ mTarget = getSdkManager().getTargets()[0];
+ mAvdFolder = AvdInfo.getDefaultAvdFolder(getAvdManager(), getName());
}
@Override
public void tearDown() throws Exception {
- SdkManagerTestUtil.deleteDir(mFakeSdk);
+ super.tearDown();
}
- public void txestDisplayEmptyAvdList() {
+ public void testDisplayEmptyAvdList() {
Main main = new Main();
- main.setLogger(mLog);
- mLog.clear();
- main.displayAvdList(mAvdManager);
- assertEquals("P Available Android Virtual Devices:\n", mLog.toString());
+ main.setLogger(getLog());
+ getLog().clear();
+ main.displayAvdList(getAvdManager());
+ assertEquals("[P Available Android Virtual Devices:\n]", getLog().toString());
}
public void testDisplayAvdListOfOneNonSnapshot() {
Main main = new Main();
- main.setLogger(mLog);
- mAvdManager.createAvd(
- mAvdFolder, this.getName(), mTarget, null, null, null, false, false, mLog);
- mLog.clear();
- main.displayAvdList(mAvdManager);
+ main.setLogger(getLog());
+ getAvdManager().createAvd(
+ mAvdFolder,
+ this.getName(),
+ mTarget,
+ SdkConstants.ABI_ARMEABI,
+ null, // skinName
+ null, // sdName
+ null, // properties
+ false, // createSnapshot
+ false, // removePrevious
+ false, // editExisting
+ getLog());
+
+ getLog().clear();
+ main.displayAvdList(getAvdManager());
assertEquals(
"[P Available Android Virtual Devices:\n"
+ ", P Name: " + this.getName() + "\n"
@@ -78,16 +81,28 @@ public class MainTest extends TestCase {
+ ", P Target: Android 0.0 (API level 0)\n"
+ ", P Skin: HVGA\n"
+ "]",
- mLog.toString());
+ getLog().toString());
}
public void testDisplayAvdListOfOneSnapshot() {
Main main = new Main();
- main.setLogger(mLog);
- mAvdManager.createAvd(
- mAvdFolder, this.getName(), mTarget, null, null, null, false, true, mLog);
- mLog.clear();
- main.displayAvdList(mAvdManager);
+ main.setLogger(getLog());
+
+ getAvdManager().createAvd(
+ mAvdFolder,
+ this.getName(),
+ mTarget,
+ SdkConstants.ABI_ARMEABI,
+ null, // skinName
+ null, // sdName
+ null, // properties
+ true, // createSnapshot
+ false, // removePrevious
+ false, // editExisting
+ getLog());
+
+ getLog().clear();
+ main.displayAvdList(getAvdManager());
assertEquals(
"[P Available Android Virtual Devices:\n"
+ ", P Name: " + this.getName() + "\n"
@@ -96,6 +111,83 @@ public class MainTest extends TestCase {
+ ", P Skin: HVGA\n"
+ ", P Snapshot: true\n"
+ "]",
- mLog.toString());
+ getLog().toString());
+ }
+
+ public void testCheckFilterValues() {
+ // These are the values we expect checkFilterValues() to match.
+ String[] expectedValues = {
+ "platform",
+ "tool",
+ "platform-tool",
+ "doc",
+ "sample",
+ "add-on",
+ "extra"
+ };
+
+ Set<String> expectedSet = new TreeSet<String>(Arrays.asList(expectedValues));
+
+ // First check the values are actually defined in the proper arrays
+ // in the Sdk*Constants.NODES
+ for (String node : SdkRepoConstants.NODES) {
+ assertTrue(
+ String.format(
+ "Error: value '%1$s' from SdkRepoConstants.NODES should be used in unit-test",
+ node),
+ expectedSet.contains(node));
+ }
+ for (String node : SdkAddonConstants.NODES) {
+ assertTrue(
+ String.format(
+ "Error: value '%1$s' from SdkAddonConstants.NODES should be used in unit-test",
+ node),
+ expectedSet.contains(node));
+ }
+
+ // Now check none of these values are NOT present in the NODES arrays
+ for (String node : SdkRepoConstants.NODES) {
+ expectedSet.remove(node);
+ }
+ for (String node : SdkAddonConstants.NODES) {
+ expectedSet.remove(node);
+ }
+ assertTrue(
+ String.format(
+ "Error: values %1$s are missing from Sdk[Repo|Addons]Constants.NODES",
+ Arrays.toString(expectedSet.toArray())),
+ expectedSet.isEmpty());
+
+ // We're done with expectedSet now
+ expectedSet = null;
+
+ // Finally check that checkFilterValues accepts all these values, one by one.
+ Main main = new Main();
+ main.setLogger(getLog());
+
+ for (int step = 0; step < 3; step++) {
+ for (String value : expectedValues) {
+ switch(step) {
+ // step 0: use value as-is
+ case 1:
+ // add some whitespace before and after
+ value = " " + value + " ";
+ break;
+ case 2:
+ // same with some empty arguments that should get ignored
+ value = " ," + value + " , ";
+ break;
+ }
+
+ Pair<String, ArrayList<String>> result = main.checkFilterValues(value);
+ assertNull(
+ String.format("Expected error to be null for value '%1$s', got: %2$s",
+ value, result.getFirst()),
+ result.getFirst());
+ assertEquals(
+ String.format("[%1$s]", value.replace(',', ' ').trim()),
+ Arrays.toString(result.getSecond().toArray()));
+ }
+ }
}
}