mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 06:05:01 +07:00
[java] module stub, module name index, module-info.class files reading
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
|
||||
// IntelliJ API Decompiler stub source generated from a class file
|
||||
// Implementation of methods is not available
|
||||
|
||||
module M.N { /* compiled code */ }
|
||||
Binary file not shown.
@@ -0,0 +1,2 @@
|
||||
PsiJavaFileStub []
|
||||
PsiJavaModuleStub:M.N
|
||||
@@ -175,6 +175,11 @@ public class ClsMirrorBuildingTest extends LightIdeaTestCase {
|
||||
assertFalse(isInner("weird/ToStringStyle"));
|
||||
}
|
||||
|
||||
public void testModuleInfo() {
|
||||
String testDir = getTestDataDir();
|
||||
doTest(testDir + "../stubBuilder/module-info.class", testDir + "module-info.txt");
|
||||
}
|
||||
|
||||
private static String getTestDataDir() {
|
||||
return JavaTestUtil.getJavaTestDataPath() + "/psi/cls/mirror/";
|
||||
}
|
||||
|
||||
@@ -412,6 +412,18 @@ public class ClsPsiTest extends LightIdeaTestCase {
|
||||
assertEquals("@pkg.TypeAnnotations.TA(\"parameter\") int", p1.getType().getCanonicalText(true));
|
||||
}
|
||||
|
||||
public void testModuleInfo() {
|
||||
PsiJavaFile file = getFile("../../stubBuilder/module-info");
|
||||
assertEquals(LanguageLevel.JDK_1_9, file.getLanguageLevel());
|
||||
|
||||
PsiJavaModule module = file.getModuleDeclaration();
|
||||
assertNotNull(module);
|
||||
assertEquals("M.N", module.getModuleName());
|
||||
|
||||
assertNull(file.getPackageStatement());
|
||||
assertEquals(0, file.getClasses().length);
|
||||
}
|
||||
|
||||
private PsiJavaFile getFile() {
|
||||
return getFile(getTestName(false));
|
||||
}
|
||||
|
||||
@@ -51,6 +51,13 @@ public class ClsStubBuilderTest extends LightIdeaTestCase {
|
||||
doTest(clsFile, getTestName(false) + ".txt");
|
||||
}
|
||||
|
||||
public void testModuleInfo() {
|
||||
String clsFilePath = JavaTestUtil.getJavaTestDataPath() + "/psi/cls/stubBuilder/module-info.class";
|
||||
VirtualFile clsFile = LocalFileSystem.getInstance().findFileByPath(clsFilePath);
|
||||
assertNotNull(clsFile);
|
||||
doTest(clsFile, "module-info.txt");
|
||||
}
|
||||
|
||||
private void doTest(String className) {
|
||||
VirtualFile clsFile = findFile(className);
|
||||
assertNotNull(clsFile);
|
||||
@@ -79,7 +86,7 @@ public class ClsStubBuilderTest extends LightIdeaTestCase {
|
||||
try {
|
||||
PsiFileStub stub = ClsFileImpl.buildFileStub(clsFile, clsFile.contentsToByteArray());
|
||||
assertNotNull(stub);
|
||||
String actual = ((StubBase)stub).printTree();
|
||||
String actual = ((StubBase)stub).printTree().trim();
|
||||
|
||||
File resultFile = new File(JavaTestUtil.getJavaTestDataPath() + "/psi/cls/stubBuilder/" + resultFileName);
|
||||
if (!resultFile.exists()) {
|
||||
@@ -88,7 +95,7 @@ public class ClsStubBuilderTest extends LightIdeaTestCase {
|
||||
fail("No test data found. Created one");
|
||||
}
|
||||
|
||||
String expected = StringUtil.convertLineSeparators(FileUtil.loadFile(resultFile));
|
||||
String expected = StringUtil.convertLineSeparators(FileUtil.loadFile(resultFile)).trim();
|
||||
|
||||
assertEquals(expected, actual);
|
||||
}
|
||||
|
||||
@@ -486,6 +486,15 @@ public class JavaStubBuilderTest extends LightIdeaTestCase {
|
||||
" IMPLEMENTS_LIST:PsiRefListStub[IMPLEMENTS_LIST:]\n");
|
||||
}
|
||||
|
||||
public void testModuleInfo() {
|
||||
doTest("module M. /*ignore me*/ N {\n" +
|
||||
" requires A.B;\n" +
|
||||
"}",
|
||||
|
||||
"PsiJavaFileStub []\n" +
|
||||
" MODULE:PsiJavaModuleStub:M.N\n");
|
||||
}
|
||||
|
||||
public void testSOEProof() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
SecureRandom random = new SecureRandom();
|
||||
|
||||
Reference in New Issue
Block a user