blob: 0821efa7d24870161b532aa8b089af23b620590a [file] [log] [blame]
/*
* Copyright 2000-2012 JetBrains s.r.o.
*
* 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 org.jetbrains.android;
import com.intellij.ide.projectWizard.NewProjectWizardTestCase;
import com.intellij.ide.util.projectWizard.ModuleWizardStep;
import com.intellij.ide.util.projectWizard.ProjectBuilder;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectManager;
import com.intellij.openapi.projectRoots.ProjectJdkTable;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.roots.ModuleRootManager;
import com.intellij.openapi.roots.ProjectRootManager;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.testFramework.IdeaTestUtil;
import com.intellij.util.Consumer;
import org.jetbrains.android.newProject.AndroidModuleBuilder;
import org.jetbrains.android.newProject.AndroidModuleWizardStep;
import org.jetbrains.android.newProject.AndroidProjectTemplatesFactory;
import org.jetbrains.android.sdk.AndroidSdkType;
/**
* @author Dmitry Avdeev
* Date: 11/8/12
*/
public class AndroidProjectWizardTest extends NewProjectWizardTestCase {
private static final String ANDROID = "Android";
public void testCreateLibrary() throws Exception {
createProjectFromTemplate(AndroidProjectTemplatesFactory.ANDROID, AndroidProjectTemplatesFactory.LIBRARY_MODULE,
new Consumer<ModuleWizardStep>() {
@Override
public void consume(ModuleWizardStep step) {
if (step instanceof AndroidModuleWizardStep) {
ProjectBuilder builder = myWizard.getProjectBuilder();
assertTrue(builder instanceof AndroidModuleBuilder);
String name = ((AndroidModuleBuilder)builder).getName();
assertTrue(name, StringUtil.isNotEmpty(name));
}
}
});
}
public void testCreateEmptyProject() throws Exception {
Project project = createProjectFromTemplate(AndroidProjectTemplatesFactory.ANDROID, AndroidProjectTemplatesFactory.EMPTY_MODULE, null);
assertEquals(ANDROID, ProjectRootManager.getInstance(project).getProjectSdkName());
Module module = ModuleManager.getInstance(project).getModules()[0];
assertTrue(ModuleRootManager.getInstance(module).isSdkInherited());
}
public void testAddAndroidModuleToJavaProject() throws Exception {
ProjectRootManager.getInstance(getProject()).setProjectSdk(IdeaTestUtil.getMockJdk17());
Module module = createModuleFromTemplate(AndroidProjectTemplatesFactory.ANDROID, AndroidProjectTemplatesFactory.EMPTY_MODULE, null);
assertNotNull(module);
Sdk moduleSdk = ModuleRootManager.getInstance(module).getSdk();
assertNotNull(moduleSdk);
assertEquals(ANDROID, moduleSdk.getName());
}
@Override
protected void setUp() throws Exception {
super.setUp();
ApplicationManager.getApplication().runWriteAction(new Runnable() {
@Override
public void run() {
ProjectJdkTable jdkTable = ProjectJdkTable.getInstance();
Sdk defaultJdk = jdkTable.createSdk(ANDROID, AndroidSdkType.getInstance());
jdkTable.addJdk(defaultJdk);
mySdks.add(defaultJdk);
Project defaultProject = ProjectManager.getInstance().getDefaultProject();
ProjectRootManager.getInstance(defaultProject).setProjectSdk(defaultJdk);
}
});
}
}