From 400f57985014f5be629aa5d271a9e8a0dd8e1117 Mon Sep 17 00:00:00 2001 From: Andrey Vokin Date: Thu, 9 Aug 2012 17:58:14 +0400 Subject: [PATCH] PsiTreeListener for cucumber fixed --- .../intellij/testFramework/CodeInsightTestCase.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/platform/testFramework/src/com/intellij/testFramework/CodeInsightTestCase.java b/platform/testFramework/src/com/intellij/testFramework/CodeInsightTestCase.java index 90647541a407..99ddad48bc29 100644 --- a/platform/testFramework/src/com/intellij/testFramework/CodeInsightTestCase.java +++ b/platform/testFramework/src/com/intellij/testFramework/CodeInsightTestCase.java @@ -15,11 +15,14 @@ */ package com.intellij.testFramework; +import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.PsiFile; +import com.intellij.psi.PsiManager; import com.intellij.psi.PsiReference; import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase; import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.Nullable; /** * User: Andrey.Vokin @@ -37,13 +40,21 @@ public class CodeInsightTestCase extends LightPlatformCodeInsightFixtureTestCase int caretOffset = signature.indexOf(caretSignature); assert caretOffset >= 0; signature = signature.substring(0, caretOffset) + signature.substring(caretOffset + caretSignature.length()); + @SuppressWarnings("ConstantConditions") int pos = PsiDocumentManager.getInstance(getProject()).getDocument(psiFile).getText().indexOf(signature); assertTrue(pos >= 0); return pos + caretOffset; } + @Nullable protected PsiReference findReferenceBySignature(final String signature) { final int offset = findOffsetBySignature(signature); return myFixture.getFile().findReferenceAt(offset); } + + @Nullable + protected PsiFile findPsiFileInTempDirBy(final String relPath) { + final VirtualFile virtualFile = myFixture.getTempDirFixture().getFile(relPath); + return virtualFile != null && !virtualFile.isDirectory() ? PsiManager.getInstance(getProject()).findFile(virtualFile) : null; + } }