diff --git a/idea/idea-android/tests/org/jetbrains/kotlin/android/quickfix/AbstractAndroidQuickFixMultiFileTest.java b/idea/idea-android/tests/org/jetbrains/kotlin/android/quickfix/AbstractAndroidQuickFixMultiFileTest.java index bf412959e20..dd020ba5c06 100644 --- a/idea/idea-android/tests/org/jetbrains/kotlin/android/quickfix/AbstractAndroidQuickFixMultiFileTest.java +++ b/idea/idea-android/tests/org/jetbrains/kotlin/android/quickfix/AbstractAndroidQuickFixMultiFileTest.java @@ -16,12 +16,15 @@ package org.jetbrains.kotlin.android.quickfix; +import com.intellij.codeInsight.ImportFilter; import com.intellij.facet.FacetManager; import com.intellij.facet.ModifiableFacetModel; import com.intellij.facet.impl.FacetUtil; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.extensions.Extensions; import org.jetbrains.android.facet.AndroidFacet; import org.jetbrains.kotlin.idea.quickfix.AbstractQuickFixMultiFileTest; +import org.jetbrains.kotlin.idea.test.KotlinTestImportFilter; public abstract class AbstractAndroidQuickFixMultiFileTest extends AbstractQuickFixMultiFileTest { @@ -29,10 +32,12 @@ public abstract class AbstractAndroidQuickFixMultiFileTest extends AbstractQuick protected void setUp() { super.setUp(); addAndroidFacet(); + Extensions.getRootArea().getExtensionPoint(ImportFilter.EP_NAME).registerExtension(KotlinTestImportFilter.INSTANCE); } @Override protected void tearDown() { + Extensions.getRootArea().getExtensionPoint(ImportFilter.EP_NAME).unregisterExtension(KotlinTestImportFilter.INSTANCE); AndroidFacet facet = FacetManager.getInstance(myModule).getFacetByType(AndroidFacet.getFacetType().getId()); FacetUtil.deleteFacet(facet); super.tearDown(); diff --git a/idea/idea-test-framework/src/org/jetbrains/kotlin/idea/test/KotlinTestImportFilter.kt b/idea/idea-test-framework/src/org/jetbrains/kotlin/idea/test/KotlinTestImportFilter.kt new file mode 100644 index 00000000000..646fd128839 --- /dev/null +++ b/idea/idea-test-framework/src/org/jetbrains/kotlin/idea/test/KotlinTestImportFilter.kt @@ -0,0 +1,32 @@ +/* + * Copyright 2010-2017 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.kotlin.idea.test + +import com.intellij.codeInsight.ImportFilter +import com.intellij.openapi.application.ApplicationManager +import com.intellij.psi.PsiFile +import org.jetbrains.kotlin.test.InTextDirectivesUtils + +object KotlinTestImportFilter : ImportFilter() { + override fun shouldUseFullyQualifiedName(targetFile: PsiFile, classQualifiedName: String): Boolean { + if (!ApplicationManager.getApplication().isUnitTestMode) { + return false + } + val doNotImport = InTextDirectivesUtils.findLinesWithPrefixesRemoved(targetFile.text, "// DO_NOT_IMPORT:") + return classQualifiedName in doNotImport + } +} \ No newline at end of file diff --git a/idea/testData/android/quickfix/autoImports/androidRImport.after.kt b/idea/testData/android/quickfix/autoImports/androidRImport.after.kt index 91cdea094a7..361743a6c6a 100644 --- a/idea/testData/android/quickfix/autoImports/androidRImport.after.kt +++ b/idea/testData/android/quickfix/autoImports/androidRImport.after.kt @@ -1,5 +1,6 @@ // "Import" "true" // ERROR: Unresolved reference: R +// DO_NOT_IMPORT: android.support.v7.appcompat.R package com.myapp.activity diff --git a/idea/testData/android/quickfix/autoImports/androidRImport.before.Main.kt b/idea/testData/android/quickfix/autoImports/androidRImport.before.Main.kt index 9256ae6764b..2218ffe1425 100644 --- a/idea/testData/android/quickfix/autoImports/androidRImport.before.Main.kt +++ b/idea/testData/android/quickfix/autoImports/androidRImport.before.Main.kt @@ -1,5 +1,6 @@ // "Import" "true" // ERROR: Unresolved reference: R +// DO_NOT_IMPORT: android.support.v7.appcompat.R package com.myapp.activity