Search in sources :

Example 6 with JavaModuleFixtureBuilder

use of com.intellij.testFramework.builders.JavaModuleFixtureBuilder in project intellij-community by JetBrains.

the class ConfigurationsTest method setUp.

@BeforeMethod
public void setUp() throws Exception {
    // registers Java module fixture builder
    JavaTestFixtureFactory.getFixtureFactory();
    final IdeaTestFixtureFactory fixtureFactory = IdeaTestFixtureFactory.getFixtureFactory();
    final TestFixtureBuilder<IdeaProjectTestFixture> testFixtureBuilder = fixtureFactory.createFixtureBuilder(getClass().getSimpleName());
    myFixture = fixtureFactory.createTempDirTestFixture();
    myFixture.setUp();
    FileUtil.copyDir(new File(PluginPathManager.getPluginHomePath("testng") + "/testData/runConfiguration/module1"), new File(myFixture.getTempDirPath()), false);
    myProjectFixture = testFixtureBuilder.getFixture();
    final JavaModuleFixtureBuilder javaModuleFixtureBuilder = testFixtureBuilder.addModule(JavaModuleFixtureBuilder.class);
    javaModuleFixtureBuilder.addContentRoot(myFixture.getTempDirPath()).addSourceRoot("src");
    javaModuleFixtureBuilder.addLibrary("testng", PathUtil.getJarPathForClass(AfterMethod.class));
    myProjectFixture.setUp();
}
Also used : AfterMethod(org.testng.annotations.AfterMethod) JavaModuleFixtureBuilder(com.intellij.testFramework.builders.JavaModuleFixtureBuilder) File(java.io.File) BeforeMethod(org.testng.annotations.BeforeMethod)

Example 7 with JavaModuleFixtureBuilder

use of com.intellij.testFramework.builders.JavaModuleFixtureBuilder in project kotlin by JetBrains.

the class KotlinAndroidTestCase method setUp.

@Override
protected void setUp() throws Exception {
    // sdk path workaround, set real android sdk path and platform for android plugin to work
    System.setProperty(KotlinAndroidTestCaseBase.SDK_PATH_PROPERTY, PathManager.getHomePath() + "/../dependencies/androidSDK");
    System.setProperty(KotlinAndroidTestCaseBase.PLATFORM_DIR_PROPERTY, "android-23");
    VfsRootAccess.allowRootAccess(KotlinTestUtils.getHomeDirectory());
    super.setUp();
    // this will throw an exception if we don't have a full Android SDK, so we need to do this first thing before any other setup
    String sdkPath = getTestSdkPath();
    final TestFixtureBuilder<IdeaProjectTestFixture> projectBuilder = IdeaTestFixtureFactory.getFixtureFactory().createFixtureBuilder(getName());
    myFixture = JavaTestFixtureFactory.getFixtureFactory().createCodeInsightFixture(projectBuilder.getFixture());
    final JavaModuleFixtureBuilder moduleFixtureBuilder = projectBuilder.addModule(JavaModuleFixtureBuilder.class);
    final String dirPath = myFixture.getTempDirPath() + getContentRootPath();
    final File dir = new File(dirPath);
    if (!dir.exists()) {
        assertTrue(dir.mkdirs());
    }
    tuneModule(moduleFixtureBuilder, dirPath);
    final List<MyAdditionalModuleData> modules = new ArrayList<MyAdditionalModuleData>();
    configureAdditionalModules(projectBuilder, modules);
    myFixture.setUp();
    myFixture.setTestDataPath(getTestDataPath());
    myModule = moduleFixtureBuilder.getFixture().getModule();
    // Must be done before addAndroidFacet, and must always be done, even if !myCreateManifest.
    // We will delete it at the end of setUp; this is needed when unit tests want to rewrite
    // the manifest on their own.
    createManifest();
    androidSdk = createAndroidSdk(getTestSdkPath(), getPlatformDir());
    myFacet = addAndroidFacet(myModule, sdkPath, getPlatformDir(), isToAddSdk());
    for (File resDir : getResourceDirs(dirPath)) {
        if (resDir.exists()) {
            myFixture.copyDirectoryToProject(resDir.getName(), resDir.getName());
        } else {
            Logger.getInstance(this.getClass()).info("No res directory found in test");
        }
    }
    myAdditionalModules = new ArrayList<Module>();
    for (MyAdditionalModuleData data : modules) {
        final Module additionalModule = data.myModuleFixtureBuilder.getFixture().getModule();
        myAdditionalModules.add(additionalModule);
        final AndroidFacet facet = addAndroidFacet(additionalModule, sdkPath, getPlatformDir());
        facet.setLibraryProject(data.myLibrary);
        final String rootPath = getContentRootPath(data.myDirName);
        myFixture.copyDirectoryToProject("res", rootPath + "/res");
        myFixture.copyFileToProject(SdkConstants.FN_ANDROID_MANIFEST_XML, rootPath + '/' + SdkConstants.FN_ANDROID_MANIFEST_XML);
        ModuleRootModificationUtil.addDependency(myModule, additionalModule);
    }
    if (!myCreateManifest) {
        deleteManifest();
    }
    if (RenderSecurityManager.RESTRICT_READS) {
        // Unit test class loader includes disk directories which security manager does not allow access to
        RenderSecurityManager.sEnabled = false;
    }
    ((StartupManagerImpl) StartupManager.getInstance(getProject())).runPostStartupActivities();
    kotlinInternalModeOriginalValue = KotlinInternalMode.Instance.getEnabled();
    KotlinInternalMode.Instance.setEnabled(true);
}
Also used : IdeaProjectTestFixture(com.intellij.testFramework.fixtures.IdeaProjectTestFixture) StartupManagerImpl(com.intellij.ide.startup.impl.StartupManagerImpl) JavaModuleFixtureBuilder(com.intellij.testFramework.builders.JavaModuleFixtureBuilder) ArrayList(java.util.ArrayList) Module(com.intellij.openapi.module.Module) VirtualFile(com.intellij.openapi.vfs.VirtualFile) File(java.io.File) AndroidFacet(org.jetbrains.android.facet.AndroidFacet)

Example 8 with JavaModuleFixtureBuilder

use of com.intellij.testFramework.builders.JavaModuleFixtureBuilder in project android by JetBrains.

the class AndroidTestCase method setUp.

@Override
protected void setUp() throws Exception {
    super.setUp();
    TestFixtureBuilder<IdeaProjectTestFixture> projectBuilder = IdeaTestFixtureFactory.getFixtureFactory().createFixtureBuilder(getName());
    myFixture = JavaTestFixtureFactory.getFixtureFactory().createCodeInsightFixture(projectBuilder.getFixture());
    JavaModuleFixtureBuilder moduleFixtureBuilder = projectBuilder.addModule(JavaModuleFixtureBuilder.class);
    File moduleRoot = new File(myFixture.getTempDirPath());
    if (!moduleRoot.exists()) {
        assertTrue(moduleRoot.mkdirs());
    }
    initializeModuleFixtureBuilderWithSrcAndGen(moduleFixtureBuilder, moduleRoot.toString());
    ArrayList<MyAdditionalModuleData> modules = new ArrayList<>();
    configureAdditionalModules(projectBuilder, modules);
    myFixture.setUp();
    myFixture.setTestDataPath(getTestDataPath());
    myModule = moduleFixtureBuilder.getFixture().getModule();
    // Must be done before addAndroidFacet, and must always be done, even if a test provides
    // its own custom manifest file. However, in that case, we will delete it shortly below.
    createManifest();
    myFacet = addAndroidFacet(myModule);
    LanguageLevel languageLevel = getLanguageLevel();
    if (languageLevel != null) {
        LanguageLevelProjectExtension extension = LanguageLevelProjectExtension.getInstance(myModule.getProject());
        if (extension != null) {
            extension.setLanguageLevel(languageLevel);
        }
    }
    myFixture.copyDirectoryToProject(getResDir(), "res");
    myAdditionalModules = new ArrayList<>();
    for (MyAdditionalModuleData data : modules) {
        Module additionalModule = data.myModuleFixtureBuilder.getFixture().getModule();
        myAdditionalModules.add(additionalModule);
        AndroidFacet facet = addAndroidFacet(additionalModule);
        facet.setProjectType(data.myProjectType);
        String rootPath = getAdditionalModulePath(data.myDirName);
        myFixture.copyDirectoryToProject(getResDir(), rootPath + "/res");
        myFixture.copyFileToProject(SdkConstants.FN_ANDROID_MANIFEST_XML, rootPath + '/' + SdkConstants.FN_ANDROID_MANIFEST_XML);
        if (data.myIsMainModuleDependency) {
            ModuleRootModificationUtil.addDependency(myModule, additionalModule);
        }
    }
    if (providesCustomManifest()) {
        deleteManifest();
    }
    if (RenderSecurityManager.RESTRICT_READS) {
        // Unit test class loader includes disk directories which security manager does not allow access to
        RenderSecurityManager.sEnabled = false;
    }
    ArrayList<String> allowedRoots = new ArrayList<>();
    collectAllowedRoots(allowedRoots);
    registerAllowedRoots(allowedRoots, getTestRootDisposable());
    mySettings = CodeStyleSettingsManager.getSettings(getProject()).clone();
    AndroidCodeStyleSettingsModifier.modify(mySettings);
    CodeStyleSettingsManager.getInstance(getProject()).setTemporarySettings(mySettings);
    myUseCustomSettings = getAndroidCodeStyleSettings().USE_CUSTOM_SETTINGS;
    getAndroidCodeStyleSettings().USE_CUSTOM_SETTINGS = true;
    // Layoutlib rendering thread will be shutdown when the app is closed so do not report it as a leak
    ThreadTracker.longRunningThreadCreated(ApplicationManager.getApplication(), "Layoutlib");
}
Also used : JavaModuleFixtureBuilder(com.intellij.testFramework.builders.JavaModuleFixtureBuilder) ArrayList(java.util.ArrayList) AndroidFacet(org.jetbrains.android.facet.AndroidFacet) IdeaProjectTestFixture(com.intellij.testFramework.fixtures.IdeaProjectTestFixture) LanguageLevel(com.intellij.pom.java.LanguageLevel) LanguageLevelProjectExtension(com.intellij.openapi.roots.LanguageLevelProjectExtension) Module(com.intellij.openapi.module.Module) VirtualFile(com.intellij.openapi.vfs.VirtualFile) File(java.io.File)

Aggregations

JavaModuleFixtureBuilder (com.intellij.testFramework.builders.JavaModuleFixtureBuilder)8 File (java.io.File)5 VirtualFile (com.intellij.openapi.vfs.VirtualFile)3 Module (com.intellij.openapi.module.Module)2 IdeaProjectTestFixture (com.intellij.testFramework.fixtures.IdeaProjectTestFixture)2 ArrayList (java.util.ArrayList)2 AndroidFacet (org.jetbrains.android.facet.AndroidFacet)2 SillyAssignmentInspection (com.intellij.codeInspection.sillyAssignment.SillyAssignmentInspection)1 StartupManagerImpl (com.intellij.ide.startup.impl.StartupManagerImpl)1 LanguageLevelProjectExtension (com.intellij.openapi.roots.LanguageLevelProjectExtension)1 LanguageLevel (com.intellij.pom.java.LanguageLevel)1 JavaPsiFacade (com.intellij.psi.JavaPsiFacade)1 AfterMethod (org.testng.annotations.AfterMethod)1 BeforeMethod (org.testng.annotations.BeforeMethod)1