Search in sources :

Example 1 with JasmineFileStructureBuilder

use of com.intellij.javascript.testFramework.jasmine.JasmineFileStructureBuilder in project intellij-plugins by JetBrains.

the class KarmaTestLocationProvider method findJasmineElement.

@Nullable
private static PsiElement findJasmineElement(Project project, @NotNull List<String> suiteNames, @Nullable String testName) {
    String key = JsTestFileByTestNameIndex.createJasmineKey(suiteNames);
    GlobalSearchScope scope = GlobalSearchScope.projectScope(project);
    List<VirtualFile> jsTestVirtualFiles = JsTestFileByTestNameIndex.findJsTestFilesByNameInScope(key, scope);
    JasmineFileStructureBuilder builder = JasmineFileStructureBuilder.getInstance();
    for (VirtualFile file : jsTestVirtualFiles) {
        PsiFile psiFile = PsiManager.getInstance(project).findFile(file);
        if (psiFile instanceof JSFile) {
            JasmineFileStructure jasmineFileStructure = builder.fetchCachedTestFileStructure((JSFile) psiFile);
            PsiElement element = jasmineFileStructure.findPsiElement(suiteNames, testName);
            if (element != null && element.isValid()) {
                return element;
            }
        }
    }
    return null;
}
Also used : VirtualFile(com.intellij.openapi.vfs.VirtualFile) GlobalSearchScope(com.intellij.psi.search.GlobalSearchScope) JasmineFileStructureBuilder(com.intellij.javascript.testFramework.jasmine.JasmineFileStructureBuilder) PsiFile(com.intellij.psi.PsiFile) JSFile(com.intellij.lang.javascript.psi.JSFile) JasmineFileStructure(com.intellij.javascript.testFramework.jasmine.JasmineFileStructure) PsiElement(com.intellij.psi.PsiElement) Nullable(org.jetbrains.annotations.Nullable)

Example 2 with JasmineFileStructureBuilder

use of com.intellij.javascript.testFramework.jasmine.JasmineFileStructureBuilder in project intellij-plugins by JetBrains.

the class JstdTestLocationProvider method findJasmineTestLocation.

@Nullable
private static PsiElement findJasmineTestLocation(@NotNull Project project, @NotNull String testCaseName, @Nullable String testMethodName) {
    VirtualFile file = findJasmineTestFileSource(project, testCaseName);
    if (file == null) {
        return null;
    }
    PsiFile psiFile = PsiManager.getInstance(project).findFile(file);
    if (psiFile instanceof JSFile) {
        JSFile jsFile = (JSFile) psiFile;
        JasmineFileStructureBuilder builder = JasmineFileStructureBuilder.getInstance();
        JasmineFileStructure jasmineFileStructure = builder.fetchCachedTestFileStructure(jsFile);
        Map<String, JasmineSuiteStructure> map = Maps.newHashMap();
        for (JasmineSuiteStructure suite : jasmineFileStructure.getSuites()) {
            visitSuite("", map, suite);
        }
        JasmineSuiteStructure suite = map.get(testCaseName);
        if (suite != null) {
            if (testMethodName == null) {
                return suite.getEnclosingCallExpression();
            }
            JasmineSpecStructure spec = suite.getInnerSpecByName(testMethodName);
            if (spec != null) {
                return spec.getEnclosingCallExpression();
            }
        }
    }
    return null;
}
Also used : VirtualFile(com.intellij.openapi.vfs.VirtualFile) JasmineSuiteStructure(com.intellij.javascript.testFramework.jasmine.JasmineSuiteStructure) JasmineFileStructureBuilder(com.intellij.javascript.testFramework.jasmine.JasmineFileStructureBuilder) PsiFile(com.intellij.psi.PsiFile) JasmineSpecStructure(com.intellij.javascript.testFramework.jasmine.JasmineSpecStructure) JSFile(com.intellij.lang.javascript.psi.JSFile) JasmineFileStructure(com.intellij.javascript.testFramework.jasmine.JasmineFileStructure) Nullable(org.jetbrains.annotations.Nullable)

Aggregations

JasmineFileStructure (com.intellij.javascript.testFramework.jasmine.JasmineFileStructure)2 JasmineFileStructureBuilder (com.intellij.javascript.testFramework.jasmine.JasmineFileStructureBuilder)2 JSFile (com.intellij.lang.javascript.psi.JSFile)2 VirtualFile (com.intellij.openapi.vfs.VirtualFile)2 PsiFile (com.intellij.psi.PsiFile)2 Nullable (org.jetbrains.annotations.Nullable)2 JasmineSpecStructure (com.intellij.javascript.testFramework.jasmine.JasmineSpecStructure)1 JasmineSuiteStructure (com.intellij.javascript.testFramework.jasmine.JasmineSuiteStructure)1 PsiElement (com.intellij.psi.PsiElement)1 GlobalSearchScope (com.intellij.psi.search.GlobalSearchScope)1