Convert to Kotlin, auto-convert.
This commit is contained in:
@@ -14,159 +14,147 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.filters;
|
package org.jetbrains.kotlin.idea.filters
|
||||||
|
|
||||||
import com.intellij.execution.filters.Filter;
|
import com.intellij.execution.filters.Filter
|
||||||
import com.intellij.execution.filters.HyperlinkInfo;
|
import com.intellij.execution.filters.HyperlinkInfo
|
||||||
import com.intellij.execution.filters.OpenFileHyperlinkInfo;
|
import com.intellij.execution.filters.OpenFileHyperlinkInfo
|
||||||
import com.intellij.openapi.editor.Document;
|
import com.intellij.openapi.editor.Document
|
||||||
import com.intellij.openapi.fileEditor.FileDocumentManager;
|
import com.intellij.openapi.fileEditor.FileDocumentManager
|
||||||
import com.intellij.openapi.fileEditor.OpenFileDescriptor;
|
import com.intellij.openapi.fileEditor.OpenFileDescriptor
|
||||||
import com.intellij.openapi.vfs.VfsUtilCore;
|
import com.intellij.openapi.vfs.VfsUtilCore
|
||||||
import com.intellij.openapi.vfs.VirtualFile;
|
import com.intellij.openapi.vfs.VirtualFile
|
||||||
import com.intellij.psi.PsiDocumentManager;
|
import com.intellij.psi.PsiDocumentManager
|
||||||
import com.intellij.psi.search.GlobalSearchScope;
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import com.intellij.refactoring.MultiFileTestCase;
|
import com.intellij.refactoring.MultiFileTestCase
|
||||||
import com.intellij.testFramework.PsiTestUtil;
|
import com.intellij.testFramework.PsiTestUtil
|
||||||
import kotlin.jvm.functions.Function1;
|
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase;
|
import org.jetbrains.kotlin.utils.*
|
||||||
import org.jetbrains.kotlin.name.FqName;
|
|
||||||
import org.jetbrains.kotlin.utils.UtilsPackage;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File
|
||||||
|
|
||||||
import static org.jetbrains.kotlin.load.kotlin.PackageClassUtils.getPackageClassFqName;
|
import org.jetbrains.kotlin.load.kotlin.PackageClassUtils.getPackageClassFqName
|
||||||
import static org.jetbrains.kotlin.load.kotlin.PackageClassUtils.getPackageClassName;
|
import org.jetbrains.kotlin.load.kotlin.PackageClassUtils.getPackageClassName
|
||||||
import static org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils.getPackagePartFqName;
|
import org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils.getPackagePartFqName
|
||||||
|
|
||||||
public class JetExceptionFilterTest extends MultiFileTestCase {
|
public class JetExceptionFilterTest : MultiFileTestCase() {
|
||||||
private VirtualFile rootDir;
|
private var rootDir: VirtualFile? = null
|
||||||
|
|
||||||
@Override
|
throws(Exception::class)
|
||||||
protected void tearDown() throws Exception {
|
override fun tearDown() {
|
||||||
rootDir = null;
|
rootDir = null
|
||||||
super.tearDown();
|
super.tearDown()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
override fun getTestDataPath(): String {
|
||||||
@NotNull
|
return PluginTestCaseBase.getTestDataPathBase()
|
||||||
protected String getTestDataPath() {
|
|
||||||
return PluginTestCaseBase.getTestDataPathBase();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
override fun getTestRoot(): String {
|
||||||
@NotNull
|
return "/filters/exceptionFilter/"
|
||||||
protected String getTestRoot() {
|
|
||||||
return "/filters/exceptionFilter/";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void configure() {
|
private fun configure() {
|
||||||
try {
|
try {
|
||||||
String path = getTestDataPath() + getTestRoot() + getTestName(true);
|
val path = getTestDataPath() + getTestRoot() + getTestName(true)
|
||||||
|
|
||||||
rootDir = PsiTestUtil.createTestProjectStructure(myProject, myModule, path, myFilesToDelete, false);
|
rootDir = PsiTestUtil.createTestProjectStructure(myProject, myModule, path, PlatformTestCase.myFilesToDelete, false)
|
||||||
prepareProject(rootDir);
|
prepareProject(rootDir)
|
||||||
PsiDocumentManager.getInstance(myProject).commitAllDocuments();
|
PsiDocumentManager.getInstance(myProject).commitAllDocuments()
|
||||||
}
|
}
|
||||||
catch (Exception e) {
|
catch (e: Exception) {
|
||||||
throw UtilsPackage.rethrow(e);
|
throw rethrow(e)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
private fun createStackTraceElementLine(prefix: String, fileName: String, className: String, lineNumber: Int): String {
|
||||||
private static String createStackTraceElementLine(@NotNull String prefix, @NotNull String fileName, @NotNull String className, int lineNumber) {
|
|
||||||
// Method name doesn't matter
|
// Method name doesn't matter
|
||||||
String methodName = "foo";
|
val methodName = "foo"
|
||||||
|
|
||||||
// File's last name appears in stack trace
|
// File's last name appears in stack trace
|
||||||
String fileLastName = new File(fileName).getName();
|
val fileLastName = File(fileName).getName()
|
||||||
|
|
||||||
StackTraceElement element = new StackTraceElement(className, methodName, fileLastName, lineNumber);
|
val element = StackTraceElement(className, methodName, fileLastName, lineNumber)
|
||||||
return prefix + element + "\n";
|
return prefix + element + "\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
private void doTest(@NotNull String fileName, int lineNumber, @NotNull Function1<VirtualFile, String> className) {
|
private fun doTest(fileName: String, lineNumber: Int, className: Function1<VirtualFile, String>) {
|
||||||
doTest("\tat ", fileName, lineNumber, className);
|
doTest("\tat ", fileName, lineNumber, className)
|
||||||
}
|
}
|
||||||
|
|
||||||
private void doTest(@NotNull String linePrefix, @NotNull String fileName, int lineNumber, @NotNull Function1<VirtualFile, String> className) {
|
private fun doTest(linePrefix: String, fileName: String, lineNumber: Int, className: Function1<VirtualFile, String>) {
|
||||||
if (rootDir == null) {
|
if (rootDir == null) {
|
||||||
configure();
|
configure()
|
||||||
}
|
}
|
||||||
assert rootDir != null;
|
assert(rootDir != null)
|
||||||
|
|
||||||
Filter filter = new JetExceptionFilterFactory().create(GlobalSearchScope.allScope(myProject));
|
val filter = JetExceptionFilterFactory().create(GlobalSearchScope.allScope(myProject))
|
||||||
|
|
||||||
VirtualFile expectedFile = VfsUtilCore.findRelativeFile(fileName, rootDir);
|
val expectedFile = VfsUtilCore.findRelativeFile(fileName, rootDir)
|
||||||
assertNotNull(expectedFile);
|
TestCase.assertNotNull(expectedFile)
|
||||||
|
|
||||||
String line = createStackTraceElementLine(linePrefix, fileName, className.invoke(expectedFile), lineNumber);
|
val line = createStackTraceElementLine(linePrefix, fileName, className.invoke(expectedFile), lineNumber)
|
||||||
Filter.Result result = filter.applyFilter(line, 0);
|
val result = filter.applyFilter(line, 0)
|
||||||
|
|
||||||
assertNotNull(result);
|
TestCase.assertNotNull(result)
|
||||||
HyperlinkInfo info = result.getFirstHyperlinkInfo();
|
val info = result.getFirstHyperlinkInfo()
|
||||||
assertNotNull(info);
|
TestCase.assertNotNull(info)
|
||||||
assertInstanceOf(info, OpenFileHyperlinkInfo.class);
|
UsefulTestCase.assertInstanceOf(info, javaClass<OpenFileHyperlinkInfo>())
|
||||||
OpenFileDescriptor descriptor = ((OpenFileHyperlinkInfo) info).getDescriptor();
|
val descriptor = (info as OpenFileHyperlinkInfo).getDescriptor()
|
||||||
assertNotNull(descriptor);
|
TestCase.assertNotNull(descriptor)
|
||||||
|
|
||||||
assertEquals(expectedFile, descriptor.getFile());
|
TestCase.assertEquals(expectedFile, descriptor.getFile())
|
||||||
|
|
||||||
Document document = FileDocumentManager.getInstance().getDocument(expectedFile);
|
val document = FileDocumentManager.getInstance().getDocument(expectedFile)
|
||||||
assertNotNull(document);
|
TestCase.assertNotNull(document)
|
||||||
int expectedOffset = document.getLineStartOffset(lineNumber - 1);
|
val expectedOffset = document.getLineStartOffset(lineNumber - 1)
|
||||||
assertEquals(expectedOffset, descriptor.getOffset());
|
TestCase.assertEquals(expectedOffset, descriptor.getOffset())
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testBreakpointReachedAt() {
|
public fun testBreakpointReachedAt() {
|
||||||
doTest("Breakpoint reached at ", "breakpointReachedAt.kt", 2, new Function1<VirtualFile, String>() {
|
doTest("Breakpoint reached at ", "breakpointReachedAt.kt", 2, object : Function1<VirtualFile, String> {
|
||||||
@Override
|
override fun invoke(file: VirtualFile): String {
|
||||||
public String invoke(VirtualFile file) {
|
return getPackageClassName(FqName.ROOT)
|
||||||
return getPackageClassName(FqName.ROOT);
|
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testSimple() {
|
public fun testSimple() {
|
||||||
doTest("simple.kt", 2, new Function1<VirtualFile, String>() {
|
doTest("simple.kt", 2, object : Function1<VirtualFile, String> {
|
||||||
@Override
|
override fun invoke(file: VirtualFile): String {
|
||||||
public String invoke(VirtualFile file) {
|
return getPackageClassName(FqName.ROOT)
|
||||||
return getPackageClassName(FqName.ROOT);
|
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testKt2489() {
|
public fun testKt2489() {
|
||||||
final FqName packageClassFqName = getPackageClassFqName(FqName.ROOT);
|
val packageClassFqName = getPackageClassFqName(FqName.ROOT)
|
||||||
doTest("a.kt", 3, new Function1<VirtualFile, String>() {
|
doTest("a.kt", 3, object : Function1<VirtualFile, String> {
|
||||||
@Override
|
override fun invoke(file: VirtualFile): String {
|
||||||
public String invoke(VirtualFile file) {
|
return getPackagePartFqName(packageClassFqName, file) + "$a$f$1"
|
||||||
return getPackagePartFqName(packageClassFqName, file) + "$a$f$1";
|
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
doTest("main.kt", 3, new Function1<VirtualFile, String>() {
|
doTest("main.kt", 3, object : Function1<VirtualFile, String> {
|
||||||
@Override
|
override fun invoke(file: VirtualFile): String {
|
||||||
public String invoke(VirtualFile file) {
|
return getPackagePartFqName(packageClassFqName, file) + "$main$f$1"
|
||||||
return getPackagePartFqName(packageClassFqName, file) + "$main$f$1";
|
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testMultiSameName() {
|
public fun testMultiSameName() {
|
||||||
final FqName packageClassFqName = getPackageClassFqName(new FqName("multiSameName"));
|
val packageClassFqName = getPackageClassFqName(FqName("multiSameName"))
|
||||||
// The order and the exact names do matter here
|
// The order and the exact names do matter here
|
||||||
doTest("1/foo.kt", 4, new Function1<VirtualFile, String>() {
|
doTest("1/foo.kt", 4, object : Function1<VirtualFile, String> {
|
||||||
@Override
|
override fun invoke(file: VirtualFile): String {
|
||||||
public String invoke(VirtualFile file) {
|
return getPackagePartFqName(packageClassFqName, file) + "$foo$f$1"
|
||||||
return getPackagePartFqName(packageClassFqName, file) + "$foo$f$1";
|
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
doTest("2/foo.kt", 4, new Function1<VirtualFile, String>() {
|
doTest("2/foo.kt", 4, object : Function1<VirtualFile, String> {
|
||||||
@Override
|
override fun invoke(file: VirtualFile): String {
|
||||||
public String invoke(VirtualFile file) {
|
return getPackagePartFqName(packageClassFqName, file) + "$foo$f$1"
|
||||||
return getPackagePartFqName(packageClassFqName, file) + "$foo$f$1";
|
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user