fix tests for api usage inspection
[fedora-idea.git] / java / java-tests / testSrc / com / intellij / codeInspection / JavaAPIUsagesInspectionTest.java
blobc9b922138c0dee822a2d0fa6e14aeeeff52146de
1 /*
2 * User: anna
3 * Date: 11-Sep-2007
4 */
5 package com.intellij.codeInspection;
7 import com.intellij.JavaTestUtil;
8 import com.intellij.codeInspection.ex.LocalInspectionToolWrapper;
9 import com.intellij.codeInspection.java15api.Java15APIUsageInspection;
10 import com.intellij.openapi.roots.ContentIterator;
11 import com.intellij.openapi.roots.LanguageLevelModuleExtension;
12 import com.intellij.openapi.roots.ModifiableRootModel;
13 import com.intellij.openapi.roots.ModuleRootManager;
14 import com.intellij.openapi.roots.impl.FileIndexImplUtil;
15 import com.intellij.openapi.util.Comparing;
16 import com.intellij.openapi.vfs.JarFileSystem;
17 import com.intellij.openapi.vfs.VirtualFile;
18 import com.intellij.openapi.vfs.VirtualFileFilter;
19 import com.intellij.pom.java.LanguageLevel;
20 import com.intellij.psi.*;
21 import com.intellij.psi.javadoc.PsiDocComment;
22 import com.intellij.psi.javadoc.PsiDocTag;
23 import com.intellij.psi.javadoc.PsiDocTagValue;
24 import com.intellij.testFramework.InspectionTestCase;
26 public class JavaAPIUsagesInspectionTest extends InspectionTestCase {
27 @Override
28 protected String getTestDataPath() {
29 return JavaTestUtil.getJavaTestDataPath() + "/inspection";
32 private void doTest() throws Exception {
33 final Java15APIUsageInspection usageInspection = new Java15APIUsageInspection();
34 doTest("usage1.5/" + getTestName(true), new LocalInspectionToolWrapper(usageInspection), "java 1.5");
37 public void testConstructor() throws Exception {
38 ModifiableRootModel model = ModuleRootManager.getInstance(getModule()).getModifiableModel();
39 LanguageLevelModuleExtension extension = model.getModuleExtension(LanguageLevelModuleExtension.class);
40 final LanguageLevel languageLevel = extension.getLanguageLevel();
41 try {
42 extension.setLanguageLevel(LanguageLevel.JDK_1_4);
43 model.commit();
44 doTest();
46 finally {
47 model = ModuleRootManager.getInstance(getModule()).getModifiableModel();
48 extension = model.getModuleExtension(LanguageLevelModuleExtension.class);
49 extension.setLanguageLevel(languageLevel);
50 model.commit();
54 public void testIgnored() throws Exception {
55 doTest();
58 public void _testCollectSinceApiUsages() {
59 final String version = "1.4";
60 final ContentIterator contentIterator = new ContentIterator() {
61 public boolean processFile(VirtualFile fileOrDir) {
62 final PsiFile file = PsiManager.getInstance(getProject()).findFile(fileOrDir);
63 if (file instanceof PsiJavaFile) {
64 file.accept(new JavaRecursiveElementVisitor(){
65 @Override
66 public void visitElement(PsiElement element) {
67 super.visitElement(element);
68 if (element instanceof PsiDocCommentOwner) {
69 final PsiDocComment comment = ((PsiDocCommentOwner)element).getDocComment();
70 if (comment != null) {
71 for (PsiDocTag tag : comment.getTags()) {
72 if (Comparing.strEqual(tag.getName(), "since")) {
73 final PsiDocTagValue value = tag.getValueElement();
74 if (value != null && value.getText().equals(version)) {
75 System.out.println(Java15APIUsageInspection.getSignature((PsiMember)element));
77 break;
83 });
85 return true;
88 final VirtualFile srcFile = JarFileSystem.getInstance().findFileByPath("c:/program files/java/jdk1.6.0_12/src.zip!/");
89 FileIndexImplUtil.iterateRecursively(srcFile, VirtualFileFilter.ALL, contentIterator);