f151918d5fca8f53606f6ce6c3133df29556da6e
[idea/community.git] / plugins / groovy / test / org / jetbrains / plugins / groovy / lang / resolve / GroovyResolveTestCase.java
1 /*
2  *  Copyright 2000-2007 JetBrains s.r.o.
3  *  Licensed under the Apache License, Version 2.0 (the "License");
4  *  you may not use this file except in compliance with the License.
5  *  You may obtain a copy of the License at
6  *
7  *  http://www.apache.org/licenses/LICENSE-2.0
8  *
9  *  Unless required by applicable law or agreed to in writing, software
10  *  distributed under the License is distributed on an "AS IS" BASIS,
11  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  *  See the License for the specific language governing permissions and
13  *  limitations under the License.
14  *
15  */
16
17 package org.jetbrains.plugins.groovy.lang.resolve;
18
19 import com.intellij.openapi.util.text.StringUtil;
20 import com.intellij.openapi.vfs.VfsUtil;
21 import com.intellij.openapi.vfs.VirtualFile;
22 import com.intellij.psi.PsiReference;
23 import org.jetbrains.annotations.NonNls;
24 import org.jetbrains.plugins.groovy.LightGroovyTestCase;
25
26 import java.io.File;
27
28 /**
29  * @author ven
30  */
31 public abstract class GroovyResolveTestCase extends LightGroovyTestCase {
32   @NonNls protected static final String MARKER = "<ref>";
33
34   @Override
35   protected void setUp() throws Exception {
36     super.setUp();
37     if (new File(myFixture.getTestDataPath() + "/" + getTestName(true)).exists()) {
38       myFixture.copyDirectoryToProject(getTestName(true), "");
39     }
40   }
41
42   protected PsiReference configureByFile(@NonNls String filePath) throws Exception{
43     filePath = StringUtil.trimStart(filePath, getTestName(true) + "/");
44     final VirtualFile vFile = myFixture.getTempDirFixture().getFile(filePath);
45     assertNotNull("file " + filePath + " not found", vFile);
46
47     String fileText = StringUtil.convertLineSeparators(VfsUtil.loadText(vFile));
48
49     int offset = fileText.indexOf(MARKER);
50     assertTrue(offset >= 0);
51     fileText = fileText.substring(0, offset) + fileText.substring(offset + MARKER.length());
52
53     myFixture.configureByText(vFile.getFileType(), fileText);
54
55     PsiReference ref = myFixture.getFile().findReferenceAt(offset);
56     assertNotNull(ref);
57     return ref;
58   }
59
60 }