aboutsummaryrefslogtreecommitdiffstats
path: root/sdkmanager/libs/sdkuilib/tests/com/android/sdkuilib/internal/repository/UpdaterLogicTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'sdkmanager/libs/sdkuilib/tests/com/android/sdkuilib/internal/repository/UpdaterLogicTest.java')
-rwxr-xr-xsdkmanager/libs/sdkuilib/tests/com/android/sdkuilib/internal/repository/UpdaterLogicTest.java366
1 files changed, 0 insertions, 366 deletions
diff --git a/sdkmanager/libs/sdkuilib/tests/com/android/sdkuilib/internal/repository/UpdaterLogicTest.java b/sdkmanager/libs/sdkuilib/tests/com/android/sdkuilib/internal/repository/UpdaterLogicTest.java
deleted file mode 100755
index 7918885..0000000
--- a/sdkmanager/libs/sdkuilib/tests/com/android/sdkuilib/internal/repository/UpdaterLogicTest.java
+++ /dev/null
@@ -1,366 +0,0 @@
-/*
- * Copyright (C) 2009 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.sdkuilib.internal.repository;
-
-import com.android.sdklib.SdkManager;
-import com.android.sdklib.internal.avd.AvdManager;
-import com.android.sdklib.internal.repository.DownloadCache;
-import com.android.sdklib.internal.repository.ITaskFactory;
-import com.android.sdklib.internal.repository.archives.Archive;
-import com.android.sdklib.internal.repository.packages.MockAddonPackage;
-import com.android.sdklib.internal.repository.packages.MockBrokenPackage;
-import com.android.sdklib.internal.repository.packages.MockPlatformPackage;
-import com.android.sdklib.internal.repository.packages.MockPlatformToolPackage;
-import com.android.sdklib.internal.repository.packages.MockToolPackage;
-import com.android.sdklib.internal.repository.packages.Package;
-import com.android.sdklib.internal.repository.sources.SdkSource;
-import com.android.sdklib.internal.repository.sources.SdkSources;
-import com.android.sdkuilib.internal.repository.icons.ImageFactory;
-import com.android.utils.ILogger;
-
-import org.eclipse.swt.widgets.Shell;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-public class UpdaterLogicTest extends TestCase {
-
- private static class NullUpdaterData implements IUpdaterData {
-
- @Override
- public AvdManager getAvdManager() {
- return null;
- }
-
- @Override
- public ImageFactory getImageFactory() {
- return null;
- }
-
- @Override
- public ILogger getSdkLog() {
- return null;
- }
-
- @Override
- public DownloadCache getDownloadCache() {
- return null;
- }
-
- @Override
- public SdkManager getSdkManager() {
- return null;
- }
-
- @Override
- public SettingsController getSettingsController() {
- return null;
- }
-
- @Override
- public ITaskFactory getTaskFactory() {
- return null;
- }
-
- @Override
- public Shell getWindowShell() {
- return null;
- }
-
- }
-
- private static class MockUpdaterLogic extends SdkUpdaterLogic {
- private final Package[] mRemotePackages;
-
- public MockUpdaterLogic(IUpdaterData updaterData, Package[] remotePackages) {
- super(updaterData);
- mRemotePackages = remotePackages;
- }
-
- @Override
- protected void fetchRemotePackages(Collection<Package> remotePkgs,
- SdkSource[] remoteSources) {
- // Ignore remoteSources and instead uses the remotePackages list given to the
- // constructor.
- if (mRemotePackages != null) {
- remotePkgs.addAll(Arrays.asList(mRemotePackages));
- }
- }
- }
-
- /**
- * Addon packages depend on a base platform package.
- * This test checks that UpdaterLogic.findPlatformToolsDependency(...)
- * can find the base platform for a given addon.
- */
- public void testFindAddonDependency() {
- MockUpdaterLogic mul = new MockUpdaterLogic(new NullUpdaterData(), null);
-
- MockPlatformPackage p1 = new MockPlatformPackage(1, 1);
- MockPlatformPackage p2 = new MockPlatformPackage(2, 1);
-
- MockAddonPackage a1 = new MockAddonPackage(p1, 1);
- MockAddonPackage a2 = new MockAddonPackage(p2, 2);
-
- ArrayList<ArchiveInfo> out = new ArrayList<ArchiveInfo>();
- ArrayList<Archive> selected = new ArrayList<Archive>();
- ArrayList<Package> remote = new ArrayList<Package>();
-
- // a2 depends on p2, which is not in the locals
- Package[] localPkgs = { p1, a1 };
- ArchiveInfo[] locals = mul.createLocalArchives(localPkgs);
-
- SdkSource[] sources = null;
-
- // a2 now depends on a "fake" archive info with no newArchive that wraps the missing
- // underlying platform.
- ArchiveInfo fai = mul.findPlatformDependency(a2, out, selected, remote, sources, locals);
- assertNotNull(fai);
- assertNull(fai.getNewArchive());
- assertTrue(fai.isRejected());
- assertEquals(0, out.size());
-
- // p2 is now selected, and should be scheduled for install in out
- Archive p2_archive = p2.getArchives()[0];
- selected.add(p2_archive);
- ArchiveInfo ai2 = mul.findPlatformDependency(a2, out, selected, remote, sources, locals);
- assertNotNull(ai2);
- assertSame(p2_archive, ai2.getNewArchive());
- assertEquals(1, out.size());
- assertSame(p2_archive, out.get(0).getNewArchive());
- }
-
- /**
- * Broken add-on packages require an exact platform package to be present or installed.
- * This tests checks that findExactApiLevelDependency() can find a base
- * platform package for a given broken add-on package.
- */
- public void testFindExactApiLevelDependency() {
- MockUpdaterLogic mul = new MockUpdaterLogic(new NullUpdaterData(), null);
-
- MockPlatformPackage p1 = new MockPlatformPackage(1, 1);
- MockPlatformPackage p2 = new MockPlatformPackage(2, 1);
-
- MockBrokenPackage a1 = new MockBrokenPackage(0, 1);
- MockBrokenPackage a2 = new MockBrokenPackage(0, 2);
-
- ArrayList<ArchiveInfo> out = new ArrayList<ArchiveInfo>();
- ArrayList<Archive> selected = new ArrayList<Archive>();
- ArrayList<Package> remote = new ArrayList<Package>();
-
- // a2 depends on p2, which is not in the locals
- Package[] localPkgs = { p1, a1 };
- ArchiveInfo[] locals = mul.createLocalArchives(localPkgs);
-
- SdkSource[] sources = null;
-
- // a1 depends on p1, which can be found in the locals. p1 is already "installed"
- // so we donn't need to suggest it as a dependency to solve any problem.
- ArchiveInfo found = mul.findExactApiLevelDependency(
- a1, out, selected, remote, sources, locals);
- assertNull(found);
-
- // a2 now depends on a "fake" archive info with no newArchive that wraps the missing
- // underlying platform.
- found = mul.findExactApiLevelDependency(a2, out, selected, remote, sources, locals);
- assertNotNull(found);
- assertNull(found.getNewArchive());
- assertTrue(found.isRejected());
- assertEquals(0, out.size());
-
- // p2 is now selected, and should be scheduled for install in out
- Archive p2_archive = p2.getArchives()[0];
- selected.add(p2_archive);
- found = mul.findExactApiLevelDependency(a2, out, selected, remote, sources, locals);
- assertNotNull(found);
- assertSame(p2_archive, found.getNewArchive());
- assertEquals(1, out.size());
- assertSame(p2_archive, out.get(0).getNewArchive());
- }
-
- /**
- * Platform packages depend on a tool package.
- * This tests checks that UpdaterLogic.findToolsDependency() can find a base
- * tool package for a given platform package.
- */
- public void testFindPlatformDependency() {
- MockUpdaterLogic mul = new MockUpdaterLogic(new NullUpdaterData(), null);
-
- MockPlatformToolPackage pt1 = new MockPlatformToolPackage(1);
-
- MockToolPackage t1 = new MockToolPackage(1, 1);
- MockToolPackage t2 = new MockToolPackage(2, 1);
-
- MockPlatformPackage p2 = new MockPlatformPackage(2, 1, 2);
-
- ArrayList<ArchiveInfo> out = new ArrayList<ArchiveInfo>();
- ArrayList<Archive> selected = new ArrayList<Archive>();
- ArrayList<Package> remote = new ArrayList<Package>();
-
- // p2 depends on t2, which is not locally installed
- Package[] localPkgs = { t1, pt1 };
- ArchiveInfo[] locals = mul.createLocalArchives(localPkgs);
-
- SdkSource[] sources = null;
-
- // p2 now depends on a "fake" archive info with no newArchive that wraps the missing
- // underlying tool
- ArchiveInfo fai = mul.findToolsDependency(p2, out, selected, remote, sources, locals);
- assertNotNull(fai);
- assertNull(fai.getNewArchive());
- assertTrue(fai.isRejected());
- assertEquals(0, out.size());
-
- // t2 is now selected and can be used as a dependency
- Archive t2_archive = t2.getArchives()[0];
- selected.add(t2_archive);
- ArchiveInfo ai2 = mul.findToolsDependency(p2, out, selected, remote, sources, locals);
- assertNotNull(ai2);
- assertSame(t2_archive, ai2.getNewArchive());
- assertEquals(1, out.size());
- assertSame(t2_archive, out.get(0).getNewArchive());
- }
-
- /**
- * Tool packages require a platform-tool package to be present or installed.
- * This tests checks that UpdaterLogic.findPlatformToolsDependency() can find a base
- * platform-tool package for a given tool package.
- */
- public void testFindPlatformToolDependency() {
- MockUpdaterLogic mul = new MockUpdaterLogic(new NullUpdaterData(), null);
-
- MockPlatformToolPackage t1 = new MockPlatformToolPackage(1);
- MockPlatformToolPackage t2 = new MockPlatformToolPackage(2);
-
- MockToolPackage p2 = new MockToolPackage(2, 2);
-
- ArrayList<ArchiveInfo> out = new ArrayList<ArchiveInfo>();
- ArrayList<Archive> selected = new ArrayList<Archive>();
- ArrayList<Package> remote = new ArrayList<Package>();
-
- // p2 depends on t2, which is not locally installed
- Package[] localPkgs = { t1 };
- ArchiveInfo[] locals = mul.createLocalArchives(localPkgs);
-
- SdkSource[] sources = null;
-
- // p2 now depends on a "fake" archive info with no newArchive that wraps the missing
- // underlying tool
- ArchiveInfo fai = mul.findPlatformToolsDependency(
- p2, out, selected, remote, sources, locals);
- assertNotNull(fai);
- assertNull(fai.getNewArchive());
- assertTrue(fai.isRejected());
- assertEquals(0, out.size());
-
- // t2 is now selected and can be used as a dependency
- Archive t2_archive = t2.getArchives()[0];
- selected.add(t2_archive);
- ArchiveInfo ai2 = mul.findPlatformToolsDependency(
- p2, out, selected, remote, sources, locals);
- assertNotNull(ai2);
- assertSame(t2_archive, ai2.getNewArchive());
- assertEquals(1, out.size());
- assertSame(t2_archive, out.get(0).getNewArchive());
- }
-
- public void testComputeRevisionUpdate() {
- // Scenario:
- // - user has tools rev 7 installed + plat-tools rev 1 installed
- // - server has tools rev 8, depending on plat-tools rev 2
- // - server has tools rev 9, depending on plat-tools rev 3
- // - server has platform 9 that requires min-tools-rev 9
- //
- // If we do an update all, we want to the installer to pick up:
- // - the new platform 9
- // - the tools rev 9 (required by platform 9)
- // - the plat-tools rev 3 (required by tools rev 9)
-
- final MockPlatformToolPackage pt1 = new MockPlatformToolPackage(1);
- final MockPlatformToolPackage pt2 = new MockPlatformToolPackage(2);
- final MockPlatformToolPackage pt3 = new MockPlatformToolPackage(3);
-
- final MockToolPackage t7 = new MockToolPackage(7, 1 /*min-plat-tools*/);
- final MockToolPackage t8 = new MockToolPackage(8, 2 /*min-plat-tools*/);
- final MockToolPackage t9 = new MockToolPackage(9, 3 /*min-plat-tools*/);
-
- final MockPlatformPackage p9 = new MockPlatformPackage(9, 1, 9 /*min-tools*/);
-
- // Note: the mock updater logic gets the remotes packages from the array given
- // here and bypasses the source (to avoid fetching any actual URLs)
- MockUpdaterLogic mul = new MockUpdaterLogic(new NullUpdaterData(),
- new Package[] { t8, pt2, t9, pt3, p9 });
-
- SdkSources sources = new SdkSources();
- Package[] localPkgs = { t7, pt1 };
-
- List<ArchiveInfo> selected = mul.computeUpdates(
- null /*selectedArchives*/,
- sources,
- localPkgs,
- false /*includeObsoletes*/);
-
- assertEquals(
- "[Android SDK Platform-tools, revision 3, " +
- "Android SDK Tools, revision 9]",
- Arrays.toString(selected.toArray()));
-
- mul.addNewPlatforms(
- selected,
- sources,
- localPkgs,
- false /*includeObsoletes*/);
-
- assertEquals(
- "[Android SDK Platform-tools, revision 3, " +
- "Android SDK Tools, revision 9, " +
- "SDK Platform Android android-9, API 9, revision 1]",
- Arrays.toString(selected.toArray()));
-
- // Now try again but reverse the order of the remote package list.
-
- mul = new MockUpdaterLogic(new NullUpdaterData(),
- new Package[] { p9, t9, pt3, t8, pt2 });
-
- selected = mul.computeUpdates(
- null /*selectedArchives*/,
- sources,
- localPkgs,
- false /*includeObsoletes*/);
-
- assertEquals(
- "[Android SDK Platform-tools, revision 3, " +
- "Android SDK Tools, revision 9]",
- Arrays.toString(selected.toArray()));
-
- mul.addNewPlatforms(
- selected,
- sources,
- localPkgs,
- false /*includeObsoletes*/);
-
- assertEquals(
- "[Android SDK Platform-tools, revision 3, " +
- "Android SDK Tools, revision 9, " +
- "SDK Platform Android android-9, API 9, revision 1]",
- Arrays.toString(selected.toArray()));
- }
-}