package com.jetbrains.lang.dart.injection; import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase; import com.intellij.lang.Language; import com.intellij.psi.PsiFile; import com.intellij.psi.impl.DebugUtil; import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil; import com.intellij.testFramework.ParsingTestCase; import com.jetbrains.lang.dart.util.DartTestUtils; import org.jetbrains.annotations.NotNull; import org.junit.Assume; public class DartInjectionTest extends LightQuickFixTestCase { @NotNull @Override protected String getTestDataPath() { return DartTestUtils.BASE_TEST_DATA_PATH + "/injection/"; } private void doTest() throws Exception { configureByFile(getTestName(false) + ".dart"); ParsingTestCase.doCheckResult(getTestDataPath(), getTestName(false) + "." + "txt", toParseTreeText(myFile)); } private static String toParseTreeText(PsiFile file) { return DebugUtil.psiToString(file, false, false, (psiElement, consumer) -> InjectedLanguageUtil .enumerate(psiElement, (injectedPsi, places) -> consumer.consume(injectedPsi))); } public void testHtmlInStrings() throws Exception { doTest(); } public void testRegExp() throws Exception { Assume.assumeTrue("This test is not applicable in current environment because JavaScript plugin is not available", Language.findLanguageByID("JSRegexp") != null); doTest(); } public void testJsonWithComment() throws Exception { doTest(); } }