|
|
|
@@ -0,0 +1,48 @@
|
|
|
|
|
/*
|
|
|
|
|
* Copyright 2010-2015 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.codeInsight
|
|
|
|
|
|
|
|
|
|
import org.jetbrains.kotlin.idea.JetLightCodeInsightFixtureTestCase
|
|
|
|
|
import org.jetbrains.kotlin.idea.PluginTestCaseBase
|
|
|
|
|
|
|
|
|
|
import java.io.File
|
|
|
|
|
import org.jetbrains.kotlin.idea.liveTemplates.JetTemplateContextType
|
|
|
|
|
import com.intellij.codeInsight.template.TemplateContextType
|
|
|
|
|
import com.intellij.testFramework.UsefulTestCase
|
|
|
|
|
|
|
|
|
|
public class LiveTemplatesContextTest : JetLightCodeInsightFixtureTestCase() {
|
|
|
|
|
override fun getTestDataPath(): String =
|
|
|
|
|
File(PluginTestCaseBase.getTestDataPathBase(), "/templates/context").getPath() + File.separator
|
|
|
|
|
|
|
|
|
|
public fun testInDocComment() {
|
|
|
|
|
myFixture.configureByFile(getTestName(false) + ".kt")
|
|
|
|
|
assertInContexts(javaClass<JetTemplateContextType.Generic>(), javaClass<JetTemplateContextType.Comment>())
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public fun testTopLevel() {
|
|
|
|
|
myFixture.configureByFile(getTestName(false) + ".kt")
|
|
|
|
|
assertInContexts(javaClass<JetTemplateContextType.Generic>(),
|
|
|
|
|
javaClass<JetTemplateContextType.TopLevel>(),
|
|
|
|
|
javaClass<JetTemplateContextType.Expression>())
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun assertInContexts(vararg expectedContexts: Class<out JetTemplateContextType>) {
|
|
|
|
|
val allContexts = TemplateContextType.EP_NAME.getExtensions().filter { it is JetTemplateContextType }
|
|
|
|
|
val enabledContexts = allContexts.filter { it.isInContext(myFixture.getFile(), myFixture.getCaretOffset()) }.map { it.javaClass }
|
|
|
|
|
UsefulTestCase.assertSameElements(enabledContexts, *expectedContexts)
|
|
|
|
|
}
|
|
|
|
|
}
|