From 420a08167bc3edbadbd11ff18e2d96ead1e85db6 Mon Sep 17 00:00:00 2001 From: Tuomas Tynkkynen Date: Fri, 7 Feb 2014 15:05:09 -0800 Subject: [PATCH] Extract JetTestUtils.getLastCommentInFile() JetNameSuggesterTest contains useful code for getting the last comment of a file. Extract it to JetTestUtils.getLastCommentInFile() so other tests can use it as well. --- .../tests/org/jetbrains/jet/JetTestUtils.java | 17 +++++++++++++++++ .../nameSuggester/JetNameSuggesterTest.java | 18 +++--------------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/compiler/tests/org/jetbrains/jet/JetTestUtils.java b/compiler/tests/org/jetbrains/jet/JetTestUtils.java index ab3a30caa6c..414505f58a7 100644 --- a/compiler/tests/org/jetbrains/jet/JetTestUtils.java +++ b/compiler/tests/org/jetbrains/jet/JetTestUtils.java @@ -29,6 +29,7 @@ import com.intellij.openapi.util.ShutDownTracker; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.CharsetToolkit; +import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiFileFactory; import com.intellij.psi.impl.PsiFileFactoryImpl; @@ -64,6 +65,7 @@ import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM; import org.jetbrains.jet.lang.resolve.lazy.LazyResolveTestUtil; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.Name; +import org.jetbrains.jet.lexer.JetTokens; import org.jetbrains.jet.plugin.JetLanguage; import org.jetbrains.jet.test.InnerTestClasses; import org.jetbrains.jet.test.TestMetadata; @@ -527,6 +529,21 @@ public class JetTestUtils { return result.toString(); } + public static String getLastCommentInFile(JetFile file) { + PsiElement lastChild = file.getLastChild(); + assert lastChild != null; + + if (lastChild.getNode().getElementType().equals(JetTokens.BLOCK_COMMENT)) { + String lastChildText = lastChild.getText(); + return lastChildText.substring(2, lastChildText.length() - 2).trim(); + } + else if (lastChild.getNode().getElementType().equals(JetTokens.EOL_COMMENT)) { + return lastChild.getText().substring(2).trim(); + } else { + throw new AssertionError("Test file '" + file.getName() + "' should end in a comment; last node was: " + lastChild); + } + } + public static void compileJavaFiles(@NotNull Collection files, List options) throws IOException { JavaCompiler javaCompiler = ToolProvider.getSystemJavaCompiler(); DiagnosticCollector diagnosticCollector = new DiagnosticCollector(); diff --git a/idea/tests/org/jetbrains/jet/plugin/refactoring/nameSuggester/JetNameSuggesterTest.java b/idea/tests/org/jetbrains/jet/plugin/refactoring/nameSuggester/JetNameSuggesterTest.java index 9410c01c518..24e2846d0cc 100644 --- a/idea/tests/org/jetbrains/jet/plugin/refactoring/nameSuggester/JetNameSuggesterTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/refactoring/nameSuggester/JetNameSuggesterTest.java @@ -17,12 +17,11 @@ package org.jetbrains.jet.plugin.refactoring.nameSuggester; import com.intellij.openapi.util.text.StringUtil; -import com.intellij.psi.PsiElement; import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase; import org.jetbrains.annotations.Nullable; +import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.lang.psi.JetExpression; import org.jetbrains.jet.lang.psi.JetFile; -import org.jetbrains.jet.lexer.JetTokens; import org.jetbrains.jet.plugin.PluginTestCaseBase; import org.jetbrains.jet.plugin.refactoring.JetNameSuggester; import org.jetbrains.jet.plugin.refactoring.JetNameValidator; @@ -76,18 +75,7 @@ public class JetNameSuggesterTest extends LightCodeInsightFixtureTestCase { private void doTest() { myFixture.configureByFile(getTestName(false) + ".kt"); JetFile file = (JetFile) myFixture.getFile(); - PsiElement lastChild = file.getLastChild(); - assert lastChild != null; - String expectedResultText = null; - if (lastChild.getNode().getElementType().equals(JetTokens.BLOCK_COMMENT)) { - String lastChildText = lastChild.getText(); - expectedResultText = lastChildText.substring(2, lastChildText.length() - 2).trim(); - } - else if (lastChild.getNode().getElementType().equals(JetTokens.EOL_COMMENT)) { - expectedResultText = lastChild.getText().substring(2).trim(); - } - assert expectedResultText != null; - final String finalExpectedResultText = expectedResultText; + final String expectedResultText = JetTestUtils.getLastCommentInFile(file); try { JetRefactoringUtil.selectExpression(myFixture.getEditor(), file, new JetRefactoringUtil.SelectExpressionCallback() { @Override @@ -95,7 +83,7 @@ public class JetNameSuggesterTest extends LightCodeInsightFixtureTestCase { String[] names = JetNameSuggester.suggestNames(expression, JetNameValidator.getEmptyValidator(getProject()), "value"); Arrays.sort(names); String result = StringUtil.join(names, "\n").trim(); - assertEquals(finalExpectedResultText, result); + assertEquals(expectedResultText, result); } }); } catch (JetRefactoringUtil.IntroduceRefactoringException e) {