| /* |
| * Copyright (C) 2014 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.ide.common.repository; |
| |
| import com.android.annotations.Nullable; |
| import com.android.sdklib.SdkManager; |
| import com.android.sdklib.repository.local.LocalSdk; |
| import com.android.utils.ILogger; |
| import com.android.utils.StdLogger; |
| |
| import junit.framework.TestCase; |
| |
| import java.io.File; |
| |
| public class SdkMavenRepositoryTest extends TestCase { |
| |
| public void testGetLocation() { |
| assertNull(SdkMavenRepository.ANDROID.getRepositoryLocation(null, false)); |
| |
| File sdkHome = getTestSdk(); |
| if (sdkHome == null) { |
| return; |
| } |
| |
| File android = SdkMavenRepository.ANDROID.getRepositoryLocation(sdkHome, true); |
| assertNotNull(android); |
| |
| File google = SdkMavenRepository.GOOGLE.getRepositoryLocation(sdkHome, true); |
| assertNotNull(google); |
| } |
| |
| public void testGetBestMatch() { |
| assertNull(SdkMavenRepository.ANDROID.getHighestInstalledVersion( |
| null, "com.android.support", "support-v4", "19", false)); |
| |
| File sdkHome = getTestSdk(); |
| if (sdkHome == null) { |
| return; |
| } |
| |
| GradleCoordinate gc1 = SdkMavenRepository.ANDROID.getHighestInstalledVersion( |
| sdkHome, "com.android.support", "support-v4", "19", false); |
| assertEquals(GradleCoordinate.parseCoordinateString( |
| "com.android.support:support-v4:19.1.0"), gc1); |
| |
| GradleCoordinate gc2 = SdkMavenRepository.ANDROID.getHighestInstalledVersion( |
| sdkHome, "com.android.support", "support-v4", "20", false); |
| assertEquals(GradleCoordinate.parseCoordinateString( |
| "com.android.support:support-v4:20.0.0"), gc2); |
| |
| /* These tests only applied when 21 was marked as a preview release; it no longer |
| is. Re-enable when we get another preview platform. |
| GradleCoordinate gc3 = SdkMavenRepository.ANDROID.getHighestInstalledVersion( |
| sdkHome, "com.android.support", "support-v4", "22", false); |
| assertNull(gc3); |
| |
| GradleCoordinate gc4 = SdkMavenRepository.ANDROID.getHighestInstalledVersion( |
| sdkHome, "com.android.support", "support-v4", "21", true); |
| assertEquals(GradleCoordinate.parseCoordinateString( |
| "com.android.support:support-v4:21.0.0-rc1"), gc4); |
| */ |
| } |
| |
| public void testIsInstalled() { |
| assertFalse(SdkMavenRepository.ANDROID.isInstalled((File)null)); |
| assertFalse(SdkMavenRepository.ANDROID.isInstalled((LocalSdk)null)); |
| |
| File sdkHome = getTestSdk(); |
| if (sdkHome == null) { |
| return; |
| } |
| |
| assertTrue(SdkMavenRepository.ANDROID.isInstalled(sdkHome)); |
| assertTrue(SdkMavenRepository.GOOGLE.isInstalled(sdkHome)); |
| |
| ILogger logger = new StdLogger(StdLogger.Level.INFO); |
| SdkManager sdkManager = SdkManager.createManager(sdkHome.getPath(), logger); |
| assertNotNull(sdkManager); |
| assertTrue(SdkMavenRepository.ANDROID.isInstalled(sdkManager.getLocalSdk())); |
| assertTrue(SdkMavenRepository.GOOGLE.isInstalled(sdkManager.getLocalSdk())); |
| } |
| |
| public void testGetDirName() { |
| assertEquals("android", SdkMavenRepository.ANDROID.getDirName()); |
| assertEquals("google", SdkMavenRepository.GOOGLE.getDirName()); |
| } |
| |
| /** |
| * Environment variable or system property containing the full path to an SDK install |
| */ |
| public static final String SDK_PATH_PROPERTY = "ADT_TEST_SDK_PATH"; |
| |
| @Nullable |
| private static File getTestSdk() { |
| String sdkHome = getTestSdkPath(); |
| if (sdkHome != null) { |
| File file = new File(sdkHome); |
| assertTrue(file.getPath(), file.isDirectory()); |
| return file; |
| } |
| |
| return null; |
| } |
| |
| @Nullable |
| private static String getTestSdkPath() { |
| String override = System.getProperty(SDK_PATH_PROPERTY); |
| if (override != null) { |
| assertTrue(override, new File(override).exists()); |
| return override; |
| } |
| override = System.getenv(SDK_PATH_PROPERTY); |
| if (override != null) { |
| return override; |
| } |
| |
| return null; |
| } |
| } |