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
{
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();
42 extension
.setLanguageLevel(LanguageLevel
.JDK_1_4
);
47 model
= ModuleRootManager
.getInstance(getModule()).getModifiableModel();
48 extension
= model
.getModuleExtension(LanguageLevelModuleExtension
.class);
49 extension
.setLanguageLevel(languageLevel
);
54 public void testIgnored() throws Exception
{
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(){
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
));
88 final VirtualFile srcFile
= JarFileSystem
.getInstance().findFileByPath("c:/program files/java/jdk1.6.0_12/src.zip!/");
89 FileIndexImplUtil
.iterateRecursively(srcFile
, VirtualFileFilter
.ALL
, contentIterator
);