blob: 57c0a11b6371a339a5971366fc82535cd441c659 [file] [log] [blame]
/*
* Copyright (C) 2013 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.tools.idea.sdk;
import com.android.tools.idea.AndroidTestCaseHelper;
import com.google.common.collect.Lists;
import com.intellij.openapi.projectRoots.JavaSdkVersion;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.pom.java.LanguageLevel;
import com.intellij.testFramework.IdeaTestCase;
import java.util.List;
/**
* Tests for {@link Jdks}.
*/
public class JdksTest extends IdeaTestCase {
private String myJdk6HomePath;
private String myJdk7HomePath;
@Override
protected void setUp() throws Exception {
super.setUp();
myJdk6HomePath = AndroidTestCaseHelper.getSystemPropertyOrEnvironmentVariable("JAVA6_HOME");
assertNotNull("Path to JDK 1.6 not set, please set JAVA6_HOME", myJdk6HomePath);
myJdk7HomePath = AndroidTestCaseHelper.getSystemPropertyOrEnvironmentVariable("JAVA7_HOME");
assertNotNull("Path to JDK 1.7 not set, please set JAVA7_HOME", myJdk7HomePath);
}
public void testGetBestJdkHomePathWithLangLevel1dot6() {
List<String> jdkHomePaths = Lists.newArrayList(myJdk6HomePath, myJdk7HomePath);
String best = Jdks.getBestJdkHomePath(jdkHomePaths, LanguageLevel.JDK_1_6);
assertTrue("Expected: " + myJdk6HomePath + ", actual: " + best, FileUtil.pathsEqual(myJdk6HomePath, best));
}
public void testGetBestJdkHomePathWithLangLevel1dot7() {
List<String> jdkHomePaths = Lists.newArrayList(myJdk6HomePath, myJdk7HomePath);
String best = Jdks.getBestJdkHomePath(jdkHomePaths, LanguageLevel.JDK_1_7);
assertTrue("Expected: " + myJdk7HomePath + ", Actual: " + best, FileUtil.pathsEqual(myJdk7HomePath, best));
}
// These tests verify that LanguageLevel#isAtLeast does what we think it does (this is IntelliJ code.) Leaving these tests here as a way
// ensure that regressions are not introduced later.
public void testHasMatchingLangLevelWithLangLevel1dot6AndJdk7() {
assertTrue(Jdks.hasMatchingLangLevel(JavaSdkVersion.JDK_1_7, LanguageLevel.JDK_1_6));
}
public void testHasMatchingLangLevelWithLangLevel1dot7AndJdk7() {
assertTrue(Jdks.hasMatchingLangLevel(JavaSdkVersion.JDK_1_7, LanguageLevel.JDK_1_7));
}
public void testHasMatchingLangLevelWithLangLevel1dot7AndJdk6() {
assertFalse(Jdks.hasMatchingLangLevel(JavaSdkVersion.JDK_1_6, LanguageLevel.JDK_1_7));
}
}