From a162f710775a57280c0aa275148aa5217c7fd348 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers <basleijdekkers@gmail.com> Date: Mon, 26 Feb 2018 11:23:20 +0100 Subject: [PATCH] SSR: simpler Replacer --- .../TypeConversionDescriptor.java | 4 +- .../plugin/replace/impl/Replacer.java | 123 +++----- .../StructuralReplaceTest.java | 291 +++++++++--------- .../StructuralReplaceTestCase.java | 5 +- .../XmlStructuralReplaceTest.java | 38 +-- 5 files changed, 205 insertions(+), 256 deletions(-) diff --git a/java/typeMigration/src/com/intellij/refactoring/typeMigration/TypeConversionDescriptor.java b/java/typeMigration/src/com/intellij/refactoring/typeMigration/TypeConversionDescriptor.java index 529b52be6a25..204039d4b03f 100644 --- a/java/typeMigration/src/com/intellij/refactoring/typeMigration/TypeConversionDescriptor.java +++ b/java/typeMigration/src/com/intellij/refactoring/typeMigration/TypeConversionDescriptor.java @@ -1,3 +1,4 @@ +// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.refactoring.typeMigration; import com.intellij.openapi.fileTypes.StdFileTypes; @@ -89,8 +90,7 @@ public class TypeConversionDescriptor extends TypeConversionDescriptorBase { final ReplaceOptions options = new ReplaceOptions(); final MatchOptions matchOptions = options.getMatchOptions(); matchOptions.setFileType(StdFileTypes.JAVA); - final Replacer replacer = new Replacer(project, null); - final String replacement = replacer.testReplace(expression.getText(), stringToReplace, replaceByString, options); + final String replacement = Replacer.testReplace(expression.getText(), stringToReplace, replaceByString, options, project); return (PsiExpression)JavaCodeStyleManager.getInstance(project).shortenClassReferences(expression.replace( JavaPsiFacade.getInstance(project).getElementFactory().createExpressionFromText(replacement, expression))); } diff --git a/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/replace/impl/Replacer.java b/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/replace/impl/Replacer.java index 7de512590c98..d4aa758c6a9c 100644 --- a/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/replace/impl/Replacer.java +++ b/platform/structuralsearch/source/com/intellij/structuralsearch/plugin/replace/impl/Replacer.java @@ -1,18 +1,4 @@ -/* - * Copyright 2000-2017 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.structuralsearch.plugin.replace.impl; import com.intellij.codeInsight.template.Template; @@ -47,59 +33,62 @@ import java.util.List; */ public class Replacer { private final Project project; - private ReplacementBuilder replacementBuilder; - private ReplaceOptions options; - private ReplacementContext context; - private StructuralReplaceHandler replaceHandler; + private final ReplaceOptions options; + private final StructuralReplaceHandler replaceHandler; + private final ReplacementBuilder replacementBuilder; private PsiElement lastAffectedElement = null; public Replacer(Project project, ReplaceOptions options) { this.project = project; this.options = options; + final StructuralSearchProfile profile = StructuralSearchUtil.getProfileByFileType(options.getMatchOptions().getFileType()); + assert profile != null; + replaceHandler = profile.getReplaceHandler(new ReplacementContext(options, project)); + assert replaceHandler != null; + replacementBuilder = new ReplacementBuilder(this.project, this.options); } public static String stripTypedVariableDecoration(final String type) { - return type.substring(1,type.length()-1); - } + return type.substring(1, type.length() - 1); + } public static int insertSubstitution(StringBuilder result, int offset, final ParameterInfo info, String image) { - if (image.length() > 0) result.insert(offset+ info.getStartIndex(),image); - offset += image.length(); + if (!image.isEmpty()) { + result.insert(offset + info.getStartIndex(), image); + offset += image.length(); + } return offset; } - public String testReplace(String in, String what, String by, ReplaceOptions options) throws IncorrectOperationException { - return testReplace(in, what, by, options, false); + public static String testReplace(String in, String what, String by, ReplaceOptions options, Project project) { + return testReplace(in, what, by, options, project, false); } - public String testReplace(String in, String what, String by, ReplaceOptions options, boolean filePattern) { + public static String testReplace(String in, String what, String by, ReplaceOptions options, Project project, boolean sourceIsFile) { FileType type = options.getMatchOptions().getFileType(); - return testReplace(in, what, by, options, filePattern, false, type, null); + return testReplace(in, what, by, options, project, sourceIsFile, false, type, null); } - public String testReplace(String in, String what, String by, ReplaceOptions options, boolean filePattern, boolean createPhysicalFile, - FileType sourceFileType, Language sourceDialect) { - this.options = options; - final MatchOptions matchOptions = this.options.getMatchOptions(); - this.options.setReplacement(by); - replacementBuilder=null; - context = null; - replaceHandler = null; + public static String testReplace(String in, String what, String by, ReplaceOptions replaceOptions, Project project, boolean sourceIsFile, + boolean createPhysicalFile, FileType sourceFileType, Language sourceDialect) { + replaceOptions.setReplacement(by); + final MatchOptions matchOptions = replaceOptions.getMatchOptions(); matchOptions.clearVariableConstraints(); matchOptions.fillSearchCriteria(what); Matcher.validate(project, matchOptions); - checkSupportedReplacementPattern(project, options); + checkSupportedReplacementPattern(project, replaceOptions); - Matcher matcher = new Matcher(project); + final Replacer replacer = new Replacer(project, replaceOptions); + final Matcher matcher = new Matcher(project); try { - PsiElement firstElement, lastElement, parent; + final PsiElement firstElement, lastElement, parent; - if (options.getMatchOptions().getScope() == null) { - PsiElement[] elements = MatcherImplUtil.createTreeFromText( + if (replaceOptions.getMatchOptions().getScope() == null) { + final PsiElement[] elements = MatcherImplUtil.createTreeFromText( in, - filePattern ? PatternTreeContext.File : PatternTreeContext.Block, + sourceIsFile ? PatternTreeContext.File : PatternTreeContext.Block, sourceFileType, sourceDialect, null, project, createPhysicalFile @@ -111,7 +100,7 @@ public class Replacer { matchOptions.setScope(new LocalSearchScope(elements)); } else { - parent = ((LocalSearchScope)options.getMatchOptions().getScope()).getScope()[0]; + parent = ((LocalSearchScope)matchOptions.getScope()).getScope()[0]; firstElement = parent.getFirstChild(); lastElement = parent.getLastChild(); } @@ -121,24 +110,24 @@ public class Replacer { final List<ReplacementInfo> resultPtrList = new SmartList<>(); for (final MatchResult result : sink.getMatches()) { - resultPtrList.add(buildReplacement(result)); + resultPtrList.add(replacer.buildReplacement(result)); } int startOffset = firstElement.getTextRange().getStartOffset(); - int endOffset = filePattern ? 0 : parent.getTextLength() - lastElement.getTextRange().getEndOffset(); + int endOffset = sourceIsFile ? 0 : parent.getTextLength() - lastElement.getTextRange().getEndOffset(); // get nodes from text may contain - PsiElement prevSibling = firstElement.getPrevSibling(); + final PsiElement prevSibling = firstElement.getPrevSibling(); if (prevSibling instanceof PsiWhiteSpace) { startOffset -= prevSibling.getTextLength() - 1; } - PsiElement nextSibling = lastElement.getNextSibling(); + final PsiElement nextSibling = lastElement.getNextSibling(); if (nextSibling instanceof PsiWhiteSpace) { endOffset -= nextSibling.getTextLength() - 1; } - replaceAll(resultPtrList); + replacer.replaceAll(resultPtrList); String result = parent.getText(); result = result.substring(startOffset); @@ -150,17 +139,13 @@ public class Replacer { throw new IncorrectOperationException(e); } finally { - options.getMatchOptions().setScope(null); + matchOptions.setScope(null); } } public void replaceAll(final List<ReplacementInfo> infos) { for (ReplacementInfo info : infos) { - PsiElement element = info.getMatch(0); - initContextAndHandler(element); - if (replaceHandler != null) { - replaceHandler.prepare(info); - } + replaceHandler.prepare(info); } ((ApplicationImpl)ApplicationManager.getApplication()).runWriteActionWithCancellableProgressInDispatchThread( @@ -201,11 +186,7 @@ public class Replacer { } public void replace(ReplacementInfo info) { - initContextAndHandler(info.getMatch(0)); - - if (replaceHandler != null) { - replaceHandler.prepare(info); - } + replaceHandler.prepare(info); reformatAndPostProcess(doReplace(info)); } @@ -218,11 +199,7 @@ public class Replacer { final PsiElement elementParent = StructuralSearchUtil.getPresentableElement(element).getParent(); CodeStyleManager.getInstance(project).performActionWithFormatterDisabled( - (Runnable)() -> { - if (replaceHandler != null) { - replaceHandler.replace(info, options); - } - } + (Runnable)() -> replaceHandler.replace(info, options) ); if (!elementParent.isValid() || !elementParent.isWritable()) { @@ -245,21 +222,7 @@ public class Replacer { final int parentOffset = elementParent.getTextRange().getStartOffset(); CodeStyleManager.getInstance(project).reformatRange(containingFile, parentOffset, parentOffset + elementParent.getTextLength(), true); } - if (replaceHandler != null) { - replaceHandler.postProcess(elementParent, options); - } - } - - private void initContextAndHandler(PsiElement psiContext) { - if (context == null) { - context = new ReplacementContext(options, project); - } - if (replaceHandler == null) { - final StructuralSearchProfile profile = StructuralSearchUtil.getProfileByPsiElement(psiContext); - if (profile != null) { - replaceHandler = profile.getReplaceHandler(context); - } - } + replaceHandler.postProcess(elementParent, options); } public static void handleComments(final PsiElement el, final PsiElement replacement, ReplacementInfo replacementInfo) { @@ -350,10 +313,6 @@ public class Replacer { public ReplacementInfo buildReplacement(MatchResult result) { final ReplacementInfoImpl replacementInfo = new ReplacementInfoImpl(result, project); - - if (replacementBuilder == null) { - replacementBuilder = new ReplacementBuilder(project, options); - } replacementInfo.setReplacement(replacementBuilder.process(result, replacementInfo, options.getMatchOptions().getFileType())); return replacementInfo; diff --git a/platform/structuralsearch/testSource/com/intellij/structuralsearch/StructuralReplaceTest.java b/platform/structuralsearch/testSource/com/intellij/structuralsearch/StructuralReplaceTest.java index 6b10d0c5facd..ee940e8298c0 100644 --- a/platform/structuralsearch/testSource/com/intellij/structuralsearch/StructuralReplaceTest.java +++ b/platform/structuralsearch/testSource/com/intellij/structuralsearch/StructuralReplaceTest.java @@ -4,6 +4,7 @@ package com.intellij.structuralsearch; import com.intellij.openapi.fileTypes.StdFileTypes; import com.intellij.psi.CommonClassNames; import com.intellij.psi.search.LocalSearchScope; +import com.intellij.structuralsearch.plugin.replace.impl.Replacer; import com.intellij.testFramework.PlatformTestUtil; import org.jetbrains.annotations.NotNull; @@ -31,13 +32,13 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { assertEquals( "Matching/replacing literals", expectedResult, - replacer.testReplace(s1,s2,s3,options) + Replacer.testReplace(s1, s2, s3, options, getProject()) ); assertEquals( "Matching/replacing literals", expectedResult, - replacer.testReplace(s1,s2_2,s3,options) + Replacer.testReplace(s1, s2_2, s3, options, getProject()) ); String s4 = "params.put(\"BACKGROUND\", \"#7B528D\");"; @@ -50,7 +51,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { assertEquals( "string literal replacement 2", expectedResult2, - replacer.testReplace(s4,s5,s6,options) + Replacer.testReplace(s4, s5, s6, options, getProject()) ); String s7 = "IconLoader.getIcon(\"/ant/property.png\");\n" + @@ -63,7 +64,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { assertEquals( "string literal replacement 3", expectedResult3, - replacer.testReplace(s7,s8,s9,options) + Replacer.testReplace(s7, s8, s9, options, getProject()) ); String s10 = "configureByFile(path + \"1.html\");\n" + @@ -80,7 +81,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { assertEquals( "string literal replacement 4", expectedResult4, - replacer.testReplace(s10,s11,s12,options) + Replacer.testReplace(s10, s11, s12, options, getProject()) ); } @@ -114,7 +115,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { assertEquals( "adding comment to statement inside the if body", expectedResult, - replacer.testReplace(s1,s2,s3,options) + Replacer.testReplace(s1, s2, s3, options, getProject()) ); String s4 = "myButton.setText(\"Ok\");"; @@ -126,7 +127,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { assertEquals( "adding comment to statement inside the if body", expectedResult2, - replacer.testReplace(s4,s5,s6,options) + Replacer.testReplace(s4, s5, s6, options, getProject()) ); } @@ -166,7 +167,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { String str4 = ""; options.setToReformatAccordingToStyle(true); - assertEquals("Basic replacement with formatter", expectedResult1, replacer.testReplace(str,str2,str3,options)); + assertEquals("Basic replacement with formatter", expectedResult1, Replacer.testReplace(str, str2, str3, options, getProject())); options.setToReformatAccordingToStyle(false); String expectedResult2 = "// searching for several constructions\n" + @@ -178,7 +179,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { "\n" + " //options.setLooseMatching(true);\n" + " // searching for several constructions"; - assertEquals("Empty replacement", expectedResult2, replacer.testReplace(str,str2,str4,options)); + assertEquals("Empty replacement", expectedResult2, Replacer.testReplace(str, str2, str4, options, getProject())); String str5 = "testMatcher.findMatches('_In,'_Pattern, options).size()"; String str6 = "findMatchesCount($In$,$Pattern$)"; @@ -193,14 +194,14 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " //options.setLooseMatching(true);\n" + " // searching for several constructions\n" + " assertEquals(\"several constructions 3\", findMatchesCount(s7,s8), 2);"; - assertEquals("Expression replacement", expectedResult3, replacer.testReplace(expectedResult1,str5,str6,options)); + assertEquals("Expression replacement", expectedResult3, Replacer.testReplace(expectedResult1, str5, str6, options, getProject())); String str7 = "try { a.doSomething(); b.doSomething(); } catch(IOException ex) { ex.printStackTrace(); throw new RuntimeException(ex); }"; String str8 = "try { '_Statements+; } catch('_ '_) { '_HandlerStatements+; }"; String str9 = "$Statements$;"; String expectedResult4 = "a.doSomething(); b.doSomething();"; - assertEquals("Multi line match in replacement", expectedResult4, replacer.testReplace(str7,str8,str9,options)); + assertEquals("Multi line match in replacement", expectedResult4, Replacer.testReplace(str7, str8, str9, options, getProject())); String str10 = " parentNode.insert(compositeNode, i);\n" + " if (asyncMode) {\n" + @@ -213,35 +214,36 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { String str12 = "addChild($parentNode$,$newNode$, $i$);"; String expectedResult5 = " addChild(parentNode,compositeNode, i);"; - assertEquals("Array initializer replacement", expectedResult5, replacer.testReplace(str10,str11,str12,options)); + assertEquals("Array initializer replacement", expectedResult5, Replacer.testReplace(str10, str11, str12, options, getProject())); String str13 = " aaa(5,6,3,4,1,2);"; String str14 = "aaa('_t{2,2},3,4,'_q{2,2});"; String str15 = "aaa($q$,3,4,$t$);"; String expectedResult6 = " aaa(1,2,3,4,5,6);"; - assertEquals("Parameter multiple match", expectedResult6, replacer.testReplace(str13,str14,str15,options)); + assertEquals("Parameter multiple match", expectedResult6, Replacer.testReplace(str13, str14, str15, options, getProject())); String str16 = " int c = a();"; String str17 = "'_t:a ('_q*,'_p*)"; String str18 = "$t$($q$,1,$p$)"; String expectedResult7 = " int c = a(1);"; - assertEquals("Replacement of init in definition + empty substitution", expectedResult7, replacer.testReplace(str16,str17,str18,options)); + assertEquals("Replacement of init in definition + empty substitution", expectedResult7, + Replacer.testReplace(str16, str17, str18, options, getProject())); String str19 = " aaa(bbb);"; String str20 = "'_t('_);"; String str21 = "$t$(ccc);"; String expectedResult8 = " aaa(ccc);"; - assertEquals("One substition replacement", expectedResult8, replacer.testReplace(str19,str20,str21,options)); + assertEquals("One substition replacement", expectedResult8, Replacer.testReplace(str19, str20, str21, options, getProject())); String str22 = " instance.setAAA(anotherInstance.getBBB());"; String str23 = " '_i.'_m:set(.+) ('_a.'_m2:get(.+) ());"; String str24 = " $a$.set$m2_1$( $i$.get$m_1$() );"; String expectedResult9 = " anotherInstance.setBBB( instance.getAAA() );"; - assertEquals("Reg exp substitution replacement", expectedResult9, replacer.testReplace(str22,str23,str24,options)); + assertEquals("Reg exp substitution replacement", expectedResult9, Replacer.testReplace(str22, str23, str24, options, getProject())); String str25 = " LaterInvocator.invokeLater(new Runnable() {\n" + " public void run() {\n" + @@ -266,7 +268,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " }\n" + " });"; - assertEquals("Anonymous in parameter", expectedResult10, replacer.testReplace(str25,str26,str27,options)); + assertEquals("Anonymous in parameter", expectedResult10, Replacer.testReplace(str25, str26, str27, options, getProject())); String str28 = "UTElementNode elementNode = new UTElementNode(myProject, processedElement, psiFile,\n" + " processedElement.getTextOffset(), true,\n" + @@ -278,21 +280,21 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { String expectedResult11 = "UTElementNode elementNode = new UTElementNode(myProject, processedElement, psiFile, processedElement.getTextOffset(), true, true,\n" + " null);"; - assertEquals("Replace in def initializer", expectedResult11, replacer.testReplace(str28,str29,str30,options)); + assertEquals("Replace in def initializer", expectedResult11, Replacer.testReplace(str28, str29, str30, options, getProject())); String s31 = "a = b; b = c; a=a; c=c;"; String s32 = "'_a = '_a;"; String s33 = "1 = 1;"; String expectedResult12 = "a = b; b = c; 1 = 1; 1 = 1;"; - assertEquals("replace silly assignments", expectedResult12, replacer.testReplace(s31,s32,s33,options)); + assertEquals("replace silly assignments", expectedResult12, Replacer.testReplace(s31, s32, s33, options, getProject())); String s34 = "ParamChecker.isTrue(1==1, \"!!!\");"; String s35 = "ParamChecker.isTrue('_expr, '_msg);"; String s36 = "assert $expr$ : $msg$;"; String expectedResult13 = "assert 1==1 : \"!!!\";"; - assertEquals("replace with assert", expectedResult13, replacer.testReplace(s34,s35,s36,options)); + assertEquals("replace with assert", expectedResult13, Replacer.testReplace(s34, s35, s36, options, getProject())); String s37 = "try { \n" + " ParamChecker.isTrue(1==1, \"!!!\");\n \n" + @@ -307,14 +309,14 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { String expectedResult14 = "ParamChecker.isTrue(1==1, \"!!!\");\n \n" + " // comment we want to leave\n \n" + " ParamChecker.isTrue(2==2, \"!!!\");"; - assertEquals("remove try with comments inside", expectedResult14, replacer.testReplace(s37,s38,s39,options)); + assertEquals("remove try with comments inside", expectedResult14, Replacer.testReplace(s37, s38, s39, options, getProject())); String s40 = "ParamChecker.instanceOf(queryKey, GroupBySqlTypePolicy.GroupKey.class);"; String s41 = "ParamChecker.instanceOf('_obj, '_class.class);"; String s42 = "assert $obj$ instanceof $class$ : \"$obj$ is an instance of \" + $obj$.getClass() + \"; expected \" + $class$.class;"; String expectedResult15 = "assert queryKey instanceof GroupBySqlTypePolicy.GroupKey : \"queryKey is an instance of \" + queryKey.getClass() + \"; expected \" + GroupBySqlTypePolicy.GroupKey.class;"; - assertEquals("Matching/replacing .class literals", expectedResult15, replacer.testReplace(s40,s41,s42,options)); + assertEquals("Matching/replacing .class literals", expectedResult15, Replacer.testReplace(s40, s41, s42, options, getProject())); String s43 = "class Wpd {\n" + " static final String TAG_BEAN_VALUE = \"\";\n" + @@ -327,7 +329,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { "}\n" + "XmlTag beanTag = jetbrains.fabrique.util.XmlApiUtil.findSubTag(rootTag, Wpd.TAG_BEAN_VALUE);"; - assertEquals("Matching/replacing static fields", expectedResult16, replacer.testReplace(s43,s44,s45,options)); + assertEquals("Matching/replacing static fields", expectedResult16, Replacer.testReplace(s43, s44, s45, options, getProject())); String s46 = "Rectangle2D rec = new Rectangle2D.Double(\n" + " drec.getX(),\n" + @@ -341,7 +343,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " OtherClass.round(drec.getY(),5),\n" + " OtherClass.round(drec.getWidth(),5),\n" + " OtherClass.round(drec.getWidth(),5));"; - assertEquals("Replace in constructor", expectedResult17, replacer.testReplace(s46,s47,s48,options)); + assertEquals("Replace in constructor", expectedResult17, Replacer.testReplace(s46, s47, s48, options, getProject())); String s49 = "class A {}\n" + "class B extends A {}\n" + @@ -352,7 +354,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { "class B extends A {}\n" + "A a = new B(\"a\");"; - assertEquals("Class navigation", expectedResult18, replacer.testReplace(s49,s50,s51,options)); + assertEquals("Class navigation", expectedResult18, Replacer.testReplace(s49, s50, s51, options, getProject())); String s52 = "try {\n" + " aaa();\n" + @@ -393,7 +395,8 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { options.getMatchOptions().setLooseMatching(false); try { - assertEquals("Try/finally unwrapped with strict matching", expectedResult19, replacer.testReplace(s52, s53, s54, options)); + assertEquals("Try/finally unwrapped with strict matching", expectedResult19, + Replacer.testReplace(s52, s53, s54, options, getProject())); } finally { options.getMatchOptions().setLooseMatching(true); } @@ -405,7 +408,8 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { "} catch(Exception ex) {\n" + " aaa5();\n" + "}\n"; - assertEquals("Try/finally unwrapped with loose matching", expectedResult19Loose, replacer.testReplace(s52, s53, s54, options)); + assertEquals("Try/finally unwrapped with loose matching", expectedResult19Loose, + Replacer.testReplace(s52, s53, s54, options, getProject())); String s55 = "for(Iterator<String> iterator = stringlist.iterator(); iterator.hasNext();) {\n" + @@ -423,7 +427,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " System.out.println( str );\n" + "}"; - assertEquals("for with foreach", expectedResult20, replacer.testReplace(s55,s56,s57,options)); + assertEquals("for with foreach", expectedResult20, Replacer.testReplace(s55, s56, s57, options, getProject())); String s58 = "class A {\n" + " static Set<String> b_MAP = new HashSet<String>();\n" + @@ -436,7 +440,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " int c;\n" + "}"; - assertEquals("replace symbol in definition", expectedResult21, replacer.testReplace(s58,s59,s60,options)); + assertEquals("replace symbol in definition", expectedResult21, Replacer.testReplace(s58, s59, s60, options, getProject())); String s64 = "int x = 42;\n" + "int y = 42; // Stuff"; @@ -451,7 +455,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " */\n" + "int y = 42;"; - assertEquals("Replacement of the comment with javadoc", expectedResult23, replacer.testReplace(s64,s65,s66,options)); + assertEquals("Replacement of the comment with javadoc", expectedResult23, Replacer.testReplace(s64, s65, s66, options, getProject())); String s61 = "try { 1=1; } catch(Exception e) { 1=1; } catch(Throwable t) { 2=2; }"; String s62 = "try { '_a; } catch(Exception e) { '_b; }"; @@ -460,7 +464,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { assertEquals("try replacement by another try will leave the unmatched catch", expectedResult22, - replacer.testReplace(s61,s62,s63,options)); + Replacer.testReplace(s61, s62, s63, options, getProject())); } @@ -470,14 +474,14 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { String s3 = "new AtomicReference<DateFormat>($expr$)"; String expectedResult = "new AtomicReference<DateFormat>(new SimpleDateFormat(\"yyyyMMddHHmmss\"))"; - assertEquals("Replacement of top-level expression only", expectedResult, replacer.testReplace(s1, s2, s3, options)); + assertEquals("Replacement of top-level expression only", expectedResult, Replacer.testReplace(s1, s2, s3, options, getProject())); String s4 = "get(\"smth\")"; String s5 = "'expr"; String s6 = "new Integer($expr$)"; String expectedResult1 = "new Integer(get(\"smth\"))"; - assertEquals("Replacement of top-level expression only", expectedResult1, replacer.testReplace(s4, s5, s6, options)); + assertEquals("Replacement of top-level expression only", expectedResult1, Replacer.testReplace(s4, s5, s6, options, getProject())); } public void testReplaceParameter() { @@ -486,7 +490,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { String s3 = "int d2;"; String expectedResult = "class A { void b(int c, int d2, int e) {} }"; - assertEquals("replace method parameter", expectedResult, replacer.testReplace(s1,s2,s3,options)); + assertEquals("replace method parameter", expectedResult, Replacer.testReplace(s1, s2, s3, options, getProject())); } public void testReplaceWithComments() { @@ -495,7 +499,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { String s3 = "map.put(key, value); // line 1"; String expectedResult = "map.put(key, value); // line 1"; - assertEquals("replace self with comment after", expectedResult, replacer.testReplace(s1,s2,s3,options)); + assertEquals("replace self with comment after", expectedResult, Replacer.testReplace(s1, s2, s3, options, getProject())); String s4 = "if (true) System.out.println(\"1111\"); else System.out.println(\"2222\");\n" + "while(true) System.out.println(\"1111\");"; @@ -503,7 +507,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { String s6 = "/* System.out.println($Test$); */"; String expectedResult2 = "if (true) /* System.out.println(\"1111\"); */; else /* System.out.println(\"2222\"); */;\n" + "while(true) /* System.out.println(\"1111\"); */;"; - assertEquals("replace with comment", expectedResult2, replacer.testReplace(s4,s5,s6,options)); + assertEquals("replace with comment", expectedResult2, Replacer.testReplace(s4, s5, s6, options, getProject())); } public void testSeveralStatements() { @@ -545,7 +549,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " System.out.println(1);\n" + " }"; options.setToReformatAccordingToStyle(true); - assertEquals("three statements replacement", expectedResult1, replacer.testReplace(s1,s2,s3,options)); + assertEquals("three statements replacement", expectedResult1, Replacer.testReplace(s1, s2, s3, options, getProject())); options.setToReformatAccordingToStyle(false); String s4 = "ProgressManager.getInstance().startNonCancelableAction();\n" + @@ -566,7 +570,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { String s6 = "$statement$;"; String expectedResult2 = "read(id, READ_PARENT);\n" + " return myViewport.parent;"; - assertEquals("extra ;", expectedResult2, replacer.testReplace(s4,s5,s6,options)); + assertEquals("extra ;", expectedResult2, Replacer.testReplace(s4, s5, s6, options, getProject())); String s7 = "public class A {\n" + " void f() {\n" + @@ -626,7 +630,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { "}"; boolean formatAccordingToStyle = options.isToReformatAccordingToStyle(); options.setToReformatAccordingToStyle(true); - assertEquals("extra ; 2", expectedResult3, replacer.testReplace(s7,s8,s9,options)); + assertEquals("extra ; 2", expectedResult3, Replacer.testReplace(s7, s8, s9, options, getProject())); String s10 = "public class A {\n" + " void f() {\n" + @@ -726,7 +730,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " abstract void f();\n" + "}"; - assertEquals("same multiple occurrences 2 times", expectedResult4, replacer.testReplace(s10,s11,s12,options)); + assertEquals("same multiple occurrences 2 times", expectedResult4, Replacer.testReplace(s10, s11, s12, options, getProject())); options.setToReformatAccordingToStyle(formatAccordingToStyle); @@ -767,7 +771,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " return value;\n" + " }"; options.setToReformatAccordingToStyle(true); - assertEquals("extra ; over return", expectedResult5, replacer.testReplace(s13,s14,s15,options)); + assertEquals("extra ; over return", expectedResult5, Replacer.testReplace(s13, s14, s15, options, getProject())); options.setToReformatAccordingToStyle(false); @@ -777,7 +781,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " }\n" + " }"; options.setToReformatAccordingToStyle(true); - assertEquals("extra ; over if", expectedResult6, replacer.testReplace(s13_2,s14,s15,options)); + assertEquals("extra ; over if", expectedResult6, Replacer.testReplace(s13_2, s14, s15, options, getProject())); options.setToReformatAccordingToStyle(false); @@ -791,7 +795,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " }\n" + " }"; options.setToReformatAccordingToStyle(true); - assertEquals("newlines in matches of several lines", expectedResult7, replacer.testReplace(s13_3,s14,s15,options)); + assertEquals("newlines in matches of several lines", expectedResult7, Replacer.testReplace(s13_3, s14, s15, options, getProject())); options.setToReformatAccordingToStyle(false); String s16 = "public class SSTest {\n" + @@ -833,9 +837,9 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " }\n" + "}"; - assertEquals("extra ;", expectedResult8, replacer.testReplace(s16,s17,s18,options)); + assertEquals("extra ;", expectedResult8, Replacer.testReplace(s16, s17, s18, options, getProject())); - assertEquals("missed ;", expectedResult8_2, replacer.testReplace(s16_2,s17,s18,options)); + assertEquals("missed ;", expectedResult8_2, Replacer.testReplace(s16_2, s17, s18, options, getProject())); } public void testClassReplacement() { @@ -853,7 +857,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { assertEquals( "Basic class replacement", expectedResult, - replacer.testReplace(s1,s2,s3,options) + Replacer.testReplace(s1, s2, s3, options, getProject()) ); String s4 = "class A { class C {} public void b() {} int f; }"; @@ -868,7 +872,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " int f;\n" + " }"; - assertEquals("Order of members in class replacement", expectedResult2, replacer.testReplace(s4,s5,s6,options)); + assertEquals("Order of members in class replacement", expectedResult2, Replacer.testReplace(s4, s5, s6, options, getProject())); String s7 = "class A extends B { int c; void b() {} { a = 1; } }"; String s8 = "class 'A extends B { '_Other* }"; @@ -882,7 +886,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " }\n" + " }"; - assertEquals("Unsupported pattern exception", expectedResult3, replacer.testReplace(s7, s8, s9, options)); + assertEquals("Unsupported pattern exception", expectedResult3, Replacer.testReplace(s7, s8, s9, options, getProject())); options.setToReformatAccordingToStyle(formatAccordingToStyle); String s10 = "/** @example */\n" + @@ -907,7 +911,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " }"; options.setToReformatAccordingToStyle(true); - assertEquals("Make class public", expectedResult4, replacer.testReplace(s10, s11, s12, options)); + assertEquals("Make class public", expectedResult4, Replacer.testReplace(s10, s11, s12, options, getProject())); options.setToReformatAccordingToStyle(false); String s13 = "class CustomThread extends Thread {\n" + @@ -950,7 +954,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " }\n" + " }"; options.setToReformatAccordingToStyle(true); - assertEquals("Constructor replacement", expectedResult5, replacer.testReplace(s13, s14, s15, options)); + assertEquals("Constructor replacement", expectedResult5, Replacer.testReplace(s13, s14, s15, options, getProject())); options.setToReformatAccordingToStyle(false); String s16 = "public class A {}\n" + @@ -962,25 +966,25 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { String expectedResult6 = "public class A { private Log log = LogFactory.createLog(); }\n" + "final class B { private Log log = LogFactory.createLog(); }"; - assertEquals("Modifier list for class", expectedResult6, replacer.testReplace(s16, s17, s18, options)); + assertEquals("Modifier list for class", expectedResult6, Replacer.testReplace(s16, s17, s18, options, getProject())); String expectedResult7 = "public class A { }\n" + "final class B { }"; - assertEquals("Removing field", expectedResult7, replacer.testReplace(expectedResult6, s17_2, s18_2, options)); + assertEquals("Removing field", expectedResult7, Replacer.testReplace(expectedResult6, s17_2, s18_2, options, getProject())); String s19 = "public class A extends Object implements Cloneable {}\n"; String s20 = "class 'A { '_Other* }"; String s21 = "class $A$ { private Log log = LogFactory.createLog(); $Other$ }"; String expectedResult8 = "public class A extends Object implements Cloneable { private Log log = LogFactory.createLog(); }\n"; - assertEquals("Extends / implements list for class", expectedResult8, replacer.testReplace(s19, s20, s21, options)); + assertEquals("Extends / implements list for class", expectedResult8, Replacer.testReplace(s19, s20, s21, options, getProject())); String s22 = "public class A<T> { int Afield; }\n"; String s23 = "class 'A { '_Other* }"; String s24 = "class $A$ { private Log log = LogFactory.createLog(); $Other$ }"; String expectedResult9 = "public class A<T> { private Log log = LogFactory.createLog(); int Afield; }\n"; - assertEquals("Type parameters for the class", expectedResult9, replacer.testReplace(s22, s23, s24, options)); + assertEquals("Type parameters for the class", expectedResult9, Replacer.testReplace(s22, s23, s24, options, getProject())); String s25 = "class A {\n" + " // comment before\n" + @@ -996,7 +1000,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { assertEquals( "Replacing dcl with saving access modifiers", expectedResult10, - replacer.testReplace(s25,s26,s27,options) + Replacer.testReplace(s25, s26, s27, options, getProject()) ); String s28 = "aaa"; @@ -1015,7 +1019,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { assertEquals( "Complex class replacement", expectedResult11, - replacer.testReplace(s28,s29,s30,options) + Replacer.testReplace(s28, s29, s30, options, getProject()) ); String s31 = "class A {\n" + @@ -1043,7 +1047,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { assertEquals( "Replacing comments with javadoc for fields", expectedResult12, - replacer.testReplace(s31,s32,s33,options) + Replacer.testReplace(s31, s32, s33, options, getProject()) ); options.setToReformatAccordingToStyle(false); @@ -1077,7 +1081,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { assertEquals( "Replacing interface with interface, saving comments properly", expectedResult13, - replacer.testReplace(s34,s35,s36,options, true) + Replacer.testReplace(s34, s35, s36, options, getProject(), true) ); } @@ -1094,7 +1098,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { assertEquals( "Multiple methods replacement", expectedResult14, - replacer.testReplace(s37, s38, s39, options, true) + Replacer.testReplace(s37, s38, s39, options, getProject(), true) ); } @@ -1117,7 +1121,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { assertEquals( "Multiple fields replacement", expectedResult, - replacer.testReplace(s1,s2,s3,options, true) + Replacer.testReplace(s1, s2, s3, options, getProject(), true) ); } @@ -1154,7 +1158,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { assertEquals( "Not preserving comment if it is present", expectedResult, - replacer.testReplace(s1,s2,s3,options, true) + Replacer.testReplace(s1, s2, s3, options, getProject(), true) ); } @@ -1201,7 +1205,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { assertEquals( "Correct class replacement", expectedResult, - replacer.testReplace(s1,s2,s3,options) + Replacer.testReplace(s1, s2, s3, options, getProject()) ); String expectedResult2 = "public class X {\n" + @@ -1216,7 +1220,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { assertEquals( "Correct class replacement, 2", expectedResult2, - replacer.testReplace(s1_2,s2,s3,options) + Replacer.testReplace(s1_2, s2, s3, options, getProject()) ); } @@ -1262,7 +1266,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " }\n" + "}"; - assertEquals("Class with comment replacement", expectedResult, replacer.testReplace(s1,s2,s3,options,true)); + assertEquals("Class with comment replacement", expectedResult, Replacer.testReplace(s1, s2, s3, options, getProject(), true)); } public void testClassReplacement8() { @@ -1276,7 +1280,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { "}"; assertEquals("Class field replacement with simple pattern", - expectedResult, replacer.testReplace(s1,s2,s3,options,true)); + expectedResult, Replacer.testReplace(s1, s2, s3, options, getProject(), true)); } @NotNull @@ -1300,7 +1304,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { String expectedResult = loadFile("after1.java"); options.setToReformatAccordingToStyle(true); - assertEquals("Class replacement 9", expectedResult, replacer.testReplace(s1,s2,s3,options,true)); + assertEquals("Class replacement 9", expectedResult, Replacer.testReplace(s1, s2, s3, options, getProject(), true)); } public void testReplaceReturnWithArrayInitializer() { @@ -1309,7 +1313,8 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { String replaceBy = "return $A$;"; String expectedResult = "return new String[]{CoreVars.CMUAudioPort + \"\"};"; - assertEquals("ReplaceReturnWithArrayInitializer", expectedResult, replacer.testReplace(searchIn,searchFor,replaceBy,options)); + assertEquals("ReplaceReturnWithArrayInitializer", expectedResult, + Replacer.testReplace(searchIn, searchFor, replaceBy, options, getProject())); } @SuppressWarnings("unused") @@ -1330,7 +1335,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { String expectedResult = loadFile("after2.java"); options.setToReformatAccordingToStyle(true); - assertEquals("Class replacement 10", expectedResult, replacer.testReplace(s1,s2,s3,options,true)); + assertEquals("Class replacement 10", expectedResult, Replacer.testReplace(s1, s2, s3, options, getProject(), true)); } public void testCatchReplacement() { @@ -1347,7 +1352,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " if (false) LOG.assertTrue(false);\n" + "}"; options.setToReformatAccordingToStyle(true); - assertEquals("Catch replacement by block", expectedResult, replacer.testReplace(s1,s2,s3,options)); + assertEquals("Catch replacement by block", expectedResult, Replacer.testReplace(s1, s2, s3, options, getProject())); options.setToReformatAccordingToStyle(false); } @@ -1364,7 +1369,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { assertEquals( "Preserving var modifiers and generic information in type during replacement", expectedResult16, - replacer.testReplace(s43, s44, s45, options, true) + Replacer.testReplace(s43, s44, s45, options, getProject(), true) ); String in1 = "public class A {" + @@ -1377,7 +1382,8 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " private class $B$ {}" + "}"; String expected1 = "public class A { private class B {}}"; - assertEquals("No illegal modifier combinations during replacement", expected1, replacer.testReplace(in1, what1, by1, options)); + assertEquals("No illegal modifier combinations during replacement", expected1, + Replacer.testReplace(in1, what1, by1, options, getProject())); } public void testDontRequireSpecialVarsForUnmatchedContent() { @@ -1398,7 +1404,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { assertEquals( "Preserving class modifiers and generic information in type during replacement", expectedResult16, - replacer.testReplace(s43, s44, s45, options, true) + Replacer.testReplace(s43, s44, s45, options, getProject(), true) ); String in = "public class A {\n" + @@ -1422,7 +1428,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " private void m2() {}\n" + " void m3() {}\n" + "}", - replacer.testReplace(in, what, by, options)); + Replacer.testReplace(in, what, by, options, getProject())); } public void testClassReplacement2() { @@ -1464,7 +1470,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { "}"; assertEquals("Preserving var modifiers and generic information in type during replacement", - expectedResult15, replacer.testReplace(s40,s41,s42,options, true)); + expectedResult15, Replacer.testReplace(s40, s41, s42, options, getProject(), true)); String s46 = "class Foo { int xxx; void foo() { assert false; } void yyy() {}}"; String s47 = "class '_Class { void '_foo:[regex( foo )](); }"; @@ -1474,7 +1480,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { assertEquals( "Preserving method bodies", expectedResult17, - replacer.testReplace(s46,s47,s48,options, true) + Replacer.testReplace(s46, s47, s48, options, getProject(), true) ); } @@ -1484,7 +1490,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { String s3 = "$b$"; try { - replacer.testReplace(s1,s2,s3,options); + Replacer.testReplace(s1, s2, s3, options, getProject()); assertTrue("Undefined replace variable is not checked",false); } catch(UnsupportedPatternException ignored) { } @@ -1494,13 +1500,13 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { String s6 = "a=a"; try { - replacer.testReplace(s4,s5,s6,options); + Replacer.testReplace(s4, s5, s6, options, getProject()); assertTrue("Undefined no ; in replace",false); } catch(UnsupportedPatternException ignored) { } try { - replacer.testReplace(s4,s6,s5,options); + Replacer.testReplace(s4, s6, s5, options, getProject()); assertTrue("Undefined no ; in search",false); } catch(UnsupportedPatternException ignored) { } @@ -1524,7 +1530,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { options.setToReformatAccordingToStyle(true); options.setToShortenFQN(true); - assertEquals("Replace in anonymous class parameter", expectedResult, replacer.testReplace(s1, s2, s3, options)); + assertEquals("Replace in anonymous class parameter", expectedResult, Replacer.testReplace(s1, s2, s3, options, getProject())); options.setToShortenFQN(false); options.setToReformatAccordingToStyle(false); } @@ -1566,7 +1572,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " }\n" + "}"; options.setToReformatAccordingToStyle(true); - assertEquals("Removing comments", expectedResult, replacer.testReplace(s1,s2,s3,options)); + assertEquals("Removing comments", expectedResult, Replacer.testReplace(s1, s2, s3, options, getProject())); options.setToReformatAccordingToStyle(false); @@ -1587,7 +1593,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " }\n" + "}"; - assertEquals("Removing comments", expectedResult2, replacer.testReplace(s1,s2_2,s3,options)); + assertEquals("Removing comments", expectedResult2, Replacer.testReplace(s1, s2_2, s3, options, getProject())); } public void testTryCatchInLoop() { @@ -1620,7 +1626,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { "catch(final Throwable e) { continue; }\n" + "}"; - assertEquals("Replacing try/catch in loop", expectedResult, replacer.testReplace(code,toFind,replacement,options)); + assertEquals("Replacing try/catch in loop", expectedResult, Replacer.testReplace(code, toFind, replacement, options, getProject())); } public void testUseStaticImport() { @@ -1631,15 +1637,15 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { options.setToUseStaticImport(true); try { final String expected = "import static java.lang.Math.abs;class X {{ abs(-1); }}"; - assertEquals("Replacing with static import", expected, replacer.testReplace(in, what, by, options, true)); + assertEquals("Replacing with static import", expected, Replacer.testReplace(in, what, by, options, getProject(), true)); final String in2 = "class X { void m(java.util.Random r) { Math.abs(r.nextInt()); }}"; final String expected2 = "import static java.lang.Math.abs;class X { void m(java.util.Random r) { abs(r.nextInt()); }}"; - assertEquals("don't add broken static imports", expected2, replacer.testReplace(in2, what, by, options, true)); + assertEquals("don't add broken static imports", expected2, Replacer.testReplace(in2, what, by, options, getProject(), true)); final String by2 = "new java.util.Map.Entry() {}"; final String expected3 = "import static java.util.Map.Entry;class X {{ new Entry() {}; }}"; - assertEquals("", expected3, replacer.testReplace(in, what, by2, options, true)); + assertEquals("", expected3, Replacer.testReplace(in, what, by2, options, getProject(), true)); final String in3 = "import java.util.Collections;" + "class X {" + @@ -1656,7 +1662,8 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " out.println(Collections.<String>emptyList());" + " }" + "}"; - assertEquals("don't break references with type parameters", expected4, replacer.testReplace(in3, what3, by3, options, true)); + assertEquals("don't break references with type parameters", expected4, + Replacer.testReplace(in3, what3, by3, options, getProject(), true)); final String in4 = "import java.util.Collections;\n" + "public class X {\n" + @@ -1674,7 +1681,8 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " boolean b = Collections.eq(null, null);\n" + " }\n" + "}"; - assertEquals("don't add static import to inaccessible members", expected5, replacer.testReplace(in4, what4, by4, options, true)); + assertEquals("don't add static import to inaccessible members", expected5, + Replacer.testReplace(in4, what4, by4, options, getProject(), true)); final String in5 = "package cz.ahoj.sample.annotations;\n" + "/**\n" + @@ -1698,7 +1706,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " InnerAnnotation[] value();\n" + "}"; configureFromFileText("ReplacementTest.java", in5); - this.options.getMatchOptions().setScope(new LocalSearchScope( getFile())); + this.options.getMatchOptions().setScope(new LocalSearchScope(getFile())); final String what5 = "@'_a:[regex( InnerAnnotation )](classes = { String.class })"; final String by5 = "@$a$(classes = { Integer.class })\n" + @@ -1730,7 +1738,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { "\n" + " InnerAnnotation[] value();\n" + "}", - replacer.testReplace(null, what5, by5, this.options, true)); + Replacer.testReplace(null, what5, by5, options, getProject(), true)); } finally { options.setToUseStaticImport(save); } @@ -1754,7 +1762,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " sin(0.5);\n" + " max(1,2);\n" + "}}"; - assertEquals("Replacing with static star import", expected, replacer.testReplace(in, what, by, options, true)); + assertEquals("Replacing with static star import", expected, Replacer.testReplace(in, what, by, options, getProject(), true)); } finally { options.setToUseStaticImport(save); } @@ -1783,7 +1791,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { String replacement = loadFile(testName + "_replacement." + ext); String expected = loadFile(testName + "_result." + ext); - assertEquals(message, expected, replacer.testReplace(source,pattern,replacement,options)); + assertEquals(message, expected, Replacer.testReplace(source, pattern, replacement, options, getProject())); } catch (IOException e) { throw new RuntimeException(e); @@ -1809,10 +1817,10 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " }\n" + "}"; - assertEquals(expected, replacer.testReplace(s1,s2,replacement,options)); - assertEquals(expected, replacer.testReplace(s1,s2_2,replacement,options)); - assertEquals(expected, replacer.testReplace(s1,s2_3,replacement,options)); - assertEquals(expected, replacer.testReplace(s1,s2_4,replacement,options)); + assertEquals(expected, Replacer.testReplace(s1, s2, replacement, options, getProject())); + assertEquals(expected, Replacer.testReplace(s1, s2_2, replacement, options, getProject())); + assertEquals(expected, Replacer.testReplace(s1, s2_3, replacement, options, getProject())); + assertEquals(expected, Replacer.testReplace(s1, s2_4, replacement, options, getProject())); } public void testLeastSurprise2() { @@ -1821,7 +1829,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { String replacement = "a2"; String expected = "class B { int s(int a2) { a2 = 1; a2 = 2; c(a2); } }"; - assertEquals(expected, replacer.testReplace(s1,s2,replacement,options)); + assertEquals(expected, Replacer.testReplace(s1, s2, replacement, options, getProject())); } public void testReplaceTry() { @@ -1834,7 +1842,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { String replacement = "try { $TryStatement$; } catch($ExceptionType$ $ExceptionDcl$) { _logger.warning(\"$CommentContent$\", $ExceptionDcl$); }"; String expected = "try { em.persist(p); } catch(PersistenceException e) { _logger.warning(\" good\", e); }"; - assertEquals(expected, replacer.testReplace(s1,s2,replacement,options)); + assertEquals(expected, Replacer.testReplace(s1, s2, replacement, options, getProject())); final String in1 = "try {\n" + " System.out.println(1);\n" + @@ -1865,7 +1873,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " System.out.println(3);\n" + "}\n"; assertEquals("Replacing try/finally should leave unmatched catch sections alone", - expected1, replacer.testReplace(in1, what1, by1, options)); + expected1, Replacer.testReplace(in1, what1, by1, options, getProject())); final String in2 = "try (AutoCloseable a = null) {" + " System.out.println(1);" + @@ -1890,7 +1898,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { "}"; assertEquals("Replacing try/finally should also keep unmatched resource lists and finally blocks", expected2, - replacer.testReplace(in2, what2, by2, options)); + Replacer.testReplace(in2, what2, by2, options, getProject())); } public void testReplaceExtraSemicolon() { @@ -1904,7 +1912,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { String expected = "String[] a = {\"a\"};\n" + " System.out.println(\"blah\");\n"; - assertEquals(expected, replacer.testReplace(s1,s2,replacement,options)); + assertEquals(expected, Replacer.testReplace(s1, s2, replacement, options, getProject())); String s1_2 = "try {\n" + " if (args == null) return ;\n" + @@ -1916,7 +1924,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " while(true) return ;\n" + " System.out.println(\"blah2\");"; - assertEquals(expected_2, replacer.testReplace(s1_2,s2,replacement,options)); + assertEquals(expected_2, Replacer.testReplace(s1_2, s2, replacement, options, getProject())); String s1_3 = "{\n" + " try {\n" + @@ -1931,7 +1939,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { "\n" + " System.out.println(\"blah2\");\n" + "}"; - assertEquals(expected_3, replacer.testReplace(s1_3,s2,replacement,options)); + assertEquals(expected_3, Replacer.testReplace(s1_3, s2, replacement, options, getProject())); String s1_4 = "{\n" + " try {\n" + @@ -1946,7 +1954,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " // indented comment\n" + " System.out.println(\"blah2\");\n" + "}"; - assertEquals(expected_4, replacer.testReplace(s1_4,s2,replacement,options)); + assertEquals(expected_4, Replacer.testReplace(s1_4, s2, replacement, options, getProject())); } public void testReplaceFinalModifier() { @@ -1964,7 +1972,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " }\n" + "}"; - assertEquals(expected, replacer.testReplace(s1,s2,s3,options)); + assertEquals(expected, Replacer.testReplace(s1, s2, s3, options, getProject())); } public void testKeepUnmatchedModifiers() { @@ -1975,7 +1983,8 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " protected static final int foo = 1;" + "}"; - assertEquals(expected, replacer.testReplace(in, "private '_Type '_field = '_init;", "protected $Type$ $field$ = $init$;", options)); + assertEquals(expected, + Replacer.testReplace(in, "private '_Type '_field = '_init;", "protected $Type$ $field$ = $init$;", options, getProject())); } public void testRemovingRedundancy() { @@ -1991,7 +2000,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { String expected = "2 = 1;\nint b = a;\nb2 = 3;"; - assertEquals(expected, replacer.testReplace(s1,s2,s3,options)); + assertEquals(expected, Replacer.testReplace(s1, s2, s3, options, getProject())); String s2_2 = "int '_a = '_i;\n" + "'_st*;\n" + @@ -2000,7 +2009,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { "int $c$ = $i$;"; String expected_2 = "a = 2;\nint b = 1;\nb2 = 3;"; - assertEquals(expected_2, replacer.testReplace(s1,s2_2,s3_2,options)); + assertEquals(expected_2, Replacer.testReplace(s1, s2_2, s3_2, options, getProject())); } public void testReplaceWithEmptyString() { @@ -2009,7 +2018,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { String replace = ""; String expectedResult = "public class Peepers { \n}"; - assertEquals(expectedResult, replacer.testReplace(source, search, replace, options, true)); + assertEquals(expectedResult, Replacer.testReplace(source, search, replace, options, getProject(), true)); } public void testReplaceMultipleFieldsInSingleDeclaration() { @@ -2018,7 +2027,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { String replace = "class $Name$ {\n $ClassContent$\n}"; String expectedResult = "abstract class MyClass {\n private String a,b;\n}"; - assertEquals(expectedResult, replacer.testReplace(source, search, replace, options, true)); + assertEquals(expectedResult, Replacer.testReplace(source, search, replace, options, getProject(), true)); } public void testReplaceInImplementsList() { @@ -2031,7 +2040,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { "import java.io.Serializable;\n" + "abstract class MyClass implements Externalizable,Serializable {\n \n}"; - assertEquals(expectedResult, replacer.testReplace(source, search, replace, options, true)); + assertEquals(expectedResult, Replacer.testReplace(source, search, replace, options, getProject(), true)); } public void testReplaceFieldWithEndOfLineComment() { @@ -2054,7 +2063,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " void bar() {}\n" + "}"; - assertEquals(expectedResult, replacer.testReplace(source, search, replace, options, true)); + assertEquals(expectedResult, Replacer.testReplace(source, search, replace, options, getProject(), true)); } public void testReplaceAnnotation() { @@ -2063,11 +2072,11 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { String what = "@SuppressWarnings(\"ALL\")"; final String by1 = ""; - assertEquals("public class A {}", replacer.testReplace(in, what, by1, options, false)); + assertEquals("public class A {}", Replacer.testReplace(in, what, by1, options, getProject())); final String by2 = "@SuppressWarnings(\"NONE\") @Deprecated"; assertEquals("@SuppressWarnings(\"NONE\") @Deprecated\n" + - "public class A {}", replacer.testReplace(in, what, by2, options, false)); + "public class A {}", Replacer.testReplace(in, what, by2, options, getProject())); final String in2 = "class X {" + " @SuppressWarnings(\"unused\") String s;" + @@ -2076,13 +2085,13 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { final String by3 = "@SuppressWarnings({\"unused\", \"other\"}) String $s$;"; assertEquals("class X {" + " @SuppressWarnings({\"unused\", \"other\"}) String s;" + - "}", replacer.testReplace(in2, what2, by3, options, false)); + "}", Replacer.testReplace(in2, what2, by3, options, getProject())); final String what3 = "@'_Anno('_v) String '_s;"; final String by4 = "@$Anno$($v$) String $s$ = \"undoubtedly\";"; assertEquals("class X {" + " @SuppressWarnings(\"unused\") String s = \"undoubtedly\";" + - "}", replacer.testReplace(in2, what3, by4, options, false)); + "}", Replacer.testReplace(in2, what3, by4, options, getProject())); } public void testReplacePolyadicExpression() { @@ -2092,33 +2101,33 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { final String what1 = "1 + '_a+"; final String by1 = "4"; - assertEquals("class A { int i = 4;}", replacer.testReplace(in1, what1, by1, options, false)); + assertEquals("class A { int i = 4;}", Replacer.testReplace(in1, what1, by1, options, getProject())); final String by2 = "$a$"; - assertEquals("class A { int i = 2+3;}", replacer.testReplace(in1, what1, by2, options, false)); + assertEquals("class A { int i = 2+3;}", Replacer.testReplace(in1, what1, by2, options, getProject())); final String by3 = "$a$+4"; - assertEquals("class A { int i = 2+3+4;}", replacer.testReplace(in1, what1, by3, options, false)); + assertEquals("class A { int i = 2+3+4;}", Replacer.testReplace(in1, what1, by3, options, getProject())); final String what2 = "1 + 2 + 3 + '_a*"; final String by4 = "1 + 3 + $a$"; - assertEquals("class A { int i = 1 + 3;}", replacer.testReplace(in1, what2, by4, options, false)); + assertEquals("class A { int i = 1 + 3;}", Replacer.testReplace(in1, what2, by4, options, getProject())); final String by5 = "$a$ + 1 + 3"; - assertEquals("class A { int i = 1 + 3;}", replacer.testReplace(in1, what2, by5, options, false)); + assertEquals("class A { int i = 1 + 3;}", Replacer.testReplace(in1, what2, by5, options, getProject())); final String by6 = "1 + $a$ + 3"; - assertEquals("class A { int i = 1 + 3;}", replacer.testReplace(in1, what2, by6, options, false)); + assertEquals("class A { int i = 1 + 3;}", Replacer.testReplace(in1, what2, by6, options, getProject())); final String in2 = "class A {" + " boolean b = true && true;" + "}"; final String what3 = "true && true && '_a*"; final String by7 = "true && true && $a$"; - assertEquals("class A { boolean b = true && true;}", replacer.testReplace(in2, what3, by7, options, false)); + assertEquals("class A { boolean b = true && true;}", Replacer.testReplace(in2, what3, by7, options, getProject())); final String by8 = "$a$ && true && true"; - assertEquals("class A { boolean b = true && true;}", replacer.testReplace(in2, what3, by8, options, false)); + assertEquals("class A { boolean b = true && true;}", Replacer.testReplace(in2, what3, by8, options, getProject())); } @@ -2131,7 +2140,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { final String what = "assert '_a > '_b : '_c?;"; final String by = "assert $b$ < $a$ : $c$;"; - assertEquals("class A { void m(int i) { assert i < 10; }}", replacer.testReplace(in, what, by, options, false)); + assertEquals("class A { void m(int i) { assert i < 10; }}", Replacer.testReplace(in, what, by, options, getProject())); } public void testReplaceMultipleVariablesInOneDeclaration() { @@ -2143,11 +2152,13 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { "}"; final String what1 = "int '_i+;"; final String by1 = "float $i$;"; - assertEquals("class A { private float i,j,k; void m() { float i,j,k; }}", replacer.testReplace(in, what1, by1, options)); + assertEquals("class A { private float i,j,k; void m() { float i,j,k; }}", + Replacer.testReplace(in, what1, by1, options, getProject())); final String what2 = "int '_a, '_b, '_c = '_d?;"; final String by2 = "float $a$, $b$, $c$ = $d$;"; - assertEquals("class A { private float i, j, k; void m() { float i, j, k; }}", replacer.testReplace(in, what2, by2, options)); + assertEquals("class A { private float i, j, k; void m() { float i, j, k; }}", + Replacer.testReplace(in, what2, by2, options, getProject())); } public void testReplaceWithScriptedVariable() { @@ -2172,7 +2183,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " method((String)a);\n" + " }\n" + "}"; - assertEquals(expected, replacer.testReplace(in, what, by, options)); + assertEquals(expected, Replacer.testReplace(in, what, by, options, getProject())); options.clearVariableDefinitions(); } @@ -2189,7 +2200,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " @Override void testOne() {\n" + " System.out.println();\n" + " }\n" + - "}\n", replacer.testReplace(in, what, by, options)); + "}\n", Replacer.testReplace(in, what, by, options, getProject())); final String what2 = "void '_a:[regex( test.* )]();"; final String by2 = "@org.junit.Test void $a$();"; @@ -2198,7 +2209,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " System.out.println();\n" + " }\n" + "}\n", - replacer.testReplace(in, what2, by2, options)); + Replacer.testReplace(in, what2, by2, options, getProject())); } public void testReplaceMethodWithoutBody() { @@ -2210,14 +2221,14 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { assertEquals("abstract class A {\n" + " abstract void a(int i);\n" + "}", - replacer.testReplace(in, what, by, options)); + Replacer.testReplace(in, what, by, options, getProject())); final String what2 = "abstract void '_a('_T '_p*);"; final String by2 = "void $a$($T$ $p$) {}"; assertEquals("abstract class A {\n" + " void a() {}\n" + "}", - replacer.testReplace(in, what2, by2, options)); + Replacer.testReplace(in, what2, by2, options, getProject())); } public void testReplaceParameterWithComment() { @@ -2229,7 +2240,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { assertEquals("class A {\n" + " void a(final long /*!*/ b) {}\n" + "}", - replacer.testReplace(in, what, by, options)); + Replacer.testReplace(in, what, by, options, getProject())); final String in2 = "class X {" + " void m() {" + @@ -2244,7 +2255,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " for (final int /*!*/ x : new int[]{1, 2, 3}) {}" + " }" + "}", - replacer.testReplace(in2, what2, by2, options)); + Replacer.testReplace(in2, what2, by2, options, getProject())); } public void testReplaceInnerClass() { @@ -2262,7 +2273,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " private class B<T> extends A implements java.io.Serializable {\n" + " }\n" + "}", - replacer.testReplace(in, what, by, options)); + Replacer.testReplace(in, what, by, options, getProject())); String in2 = "public class A {\n" + " void m1() {}\n" + @@ -2285,7 +2296,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " }\n" + " void m3() {}\n" + "}", - replacer.testReplace(in2, what, by, options)); + Replacer.testReplace(in2, what, by, options, getProject())); } public void testReplaceQualifiedReference() { @@ -2306,7 +2317,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " this.s = s;" + " }" + "}", - replacer.testReplace(in, what, by, options)); + Replacer.testReplace(in, what, by, options, getProject())); } public void testReplaceExpressionStatement() { @@ -2323,7 +2334,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " new Object().toString();" + " }" + "}", - replacer.testReplace(in, what, by, options, true)); + Replacer.testReplace(in, what, by, options, getProject(), true)); } public void testReplaceVariableInitializer() { @@ -2336,7 +2347,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { "class X {" + " private final long i=1;" + "}", - replacer.testReplace(in, what, by, options, true)); + Replacer.testReplace(in, what, by, options, getProject(), true)); } public void testReplaceParentheses() { @@ -2365,7 +2376,7 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " }\n" + " }\n" + "}", - replacer.testReplace(in, what, by, options, true)); + Replacer.testReplace(in, what, by, options, getProject(), true)); } public void testReplaceTarget() { @@ -2404,6 +2415,6 @@ public class StructuralReplaceTest extends StructuralReplaceTestCase { " System.out.println();" + " System.out.println();" + " }" + - "}", replacer.testReplace(in, what, by, options, true)); + "}", Replacer.testReplace(in, what, by, options, getProject(), true)); } } \ No newline at end of file diff --git a/platform/structuralsearch/testSource/com/intellij/structuralsearch/StructuralReplaceTestCase.java b/platform/structuralsearch/testSource/com/intellij/structuralsearch/StructuralReplaceTestCase.java index 0ca9b4811cf9..ab7b4e5bd26c 100644 --- a/platform/structuralsearch/testSource/com/intellij/structuralsearch/StructuralReplaceTestCase.java +++ b/platform/structuralsearch/testSource/com/intellij/structuralsearch/StructuralReplaceTestCase.java @@ -1,4 +1,4 @@ -// Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.structuralsearch; import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase; @@ -7,13 +7,11 @@ import com.intellij.openapi.util.io.FileUtilRt; import com.intellij.openapi.vfs.CharsetToolkit; import com.intellij.pom.java.LanguageLevel; import com.intellij.structuralsearch.plugin.replace.ReplaceOptions; -import com.intellij.structuralsearch.plugin.replace.impl.Replacer; import java.io.File; import java.io.IOException; abstract class StructuralReplaceTestCase extends LightQuickFixTestCase { - protected Replacer replacer; protected ReplaceOptions options; @Override @@ -23,7 +21,6 @@ abstract class StructuralReplaceTestCase extends LightQuickFixTestCase { LanguageLevelProjectExtension.getInstance(getProject()).setLanguageLevel(LanguageLevel.JDK_1_4); options = new ReplaceOptions(); - replacer = new Replacer(getProject(), null); } protected String loadFile(String fileName) throws IOException { diff --git a/platform/structuralsearch/testSource/com/intellij/structuralsearch/XmlStructuralReplaceTest.java b/platform/structuralsearch/testSource/com/intellij/structuralsearch/XmlStructuralReplaceTest.java index b9f4d4e9575c..4a052cfed6c0 100644 --- a/platform/structuralsearch/testSource/com/intellij/structuralsearch/XmlStructuralReplaceTest.java +++ b/platform/structuralsearch/testSource/com/intellij/structuralsearch/XmlStructuralReplaceTest.java @@ -2,6 +2,7 @@ package com.intellij.structuralsearch; import com.intellij.openapi.fileTypes.StdFileTypes; +import com.intellij.structuralsearch.plugin.replace.impl.Replacer; import com.intellij.testFramework.PlatformTestUtil; import org.jetbrains.annotations.NotNull; @@ -13,22 +14,14 @@ public class XmlStructuralReplaceTest extends StructuralReplaceTestCase { super.setUp(); options.getMatchOptions().setFileType(StdFileTypes.XML); } - + public void testReplaceXmlAndHtml() { - String s1 = "<a/>"; String s2 = "<a/>"; String s3 = "<a><b/></a>"; String expectedResult = "<a><b/></a>"; - String actualResult = replacer.testReplace(s1,s2,s3,options); - - assertEquals( - "First tag replacement", - expectedResult, - actualResult - ); - + assertEquals("First tag replacement", expectedResult, Replacer.testReplace(s1, s2, s3, options, getProject())); String s4 = "<group id=\"EditorTabPopupMenu\">\n" + " <reference id=\"Compile\"/>\n" + @@ -42,7 +35,6 @@ public class XmlStructuralReplaceTest extends StructuralReplaceTestCase { String s5 = "<reference id=\"'_Value\"/>"; String s6 = "<reference ref=\"$Value$\"/>"; - actualResult = replacer.testReplace(s4,s5,s6,options); expectedResult = "<group id=\"EditorTabPopupMenu\">\n" + " <reference ref=\"Compile\"/>\n" + " <reference ref=\"RunContextPopupGroup\"/>\n" + @@ -52,42 +44,32 @@ public class XmlStructuralReplaceTest extends StructuralReplaceTestCase { " <separator/>\n" + " <reference ref=\"ExternalToolsGroup\"/>\n" + "</group>"; - assertEquals( - "Replace tag", - expectedResult, - actualResult - ); + assertEquals("Replace tag", expectedResult, Replacer.testReplace(s4, s5, s6, options, getProject())); String s7 = "<h4 class=\"a\">My title<aaa>ZZZZ</aaa> My title 3</h4>\n" + "<h4>My title 2</h4>"; String s8 = "<h4 class=\"a\">'_Content*</h4>"; String s9 = "<h5>$Content$</h5>"; - actualResult = replacer.testReplace(s7,s8,s9,options); expectedResult = "<h5>My title <aaa>ZZZZ</aaa> My title 3</h5>\n" + "<h4>My title 2</h4>"; - - assertEquals( - "Replace tag saving content", - expectedResult, - actualResult - ); + assertEquals("Replace tag saving content", expectedResult, Replacer.testReplace(s7, s8, s9, options, getProject())); expectedResult = "\n" + "<h4>My title 2</h4>"; - assertEquals("Delete tag", expectedResult, replacer.testReplace(s7, s8, "", options)); + assertEquals("Delete tag", expectedResult, Replacer.testReplace(s7, s8, "", options, getProject())); String what = "<'_H:h4 class=\"a\">'_Content*</'_H>"; String by = "<$H$>$Content$</$H$>"; expectedResult = "<h4>My title <aaa>ZZZZ</aaa> My title 3</h4>\n" + "<h4>My title 2</h4>"; - assertEquals("Replace with variable", expectedResult, replacer.testReplace(s7, what, by, options)); + assertEquals("Replace with variable", expectedResult, Replacer.testReplace(s7, what, by, options, getProject())); String in = "<b>Cry 'Havoc!', and <i>let slip the<br> dogs of war</i></b>"; what = "<'_Tag:b >'_Content2*</'_Tag>"; by = "<$Tag$ id=\"unique\">$Content2$</$Tag$>"; expectedResult = "<b id=\"unique\">Cry 'Havoc!', and <i>let slip the<br> dogs of war</i></b>"; - assertEquals("Replace complex content with variable", expectedResult, replacer.testReplace(in, what, by, options)); + assertEquals("Replace complex content with variable", expectedResult, Replacer.testReplace(in, what, by, options, getProject())); } public void testHtmlReplacement1() throws IOException { @@ -108,7 +90,7 @@ public class XmlStructuralReplaceTest extends StructuralReplaceTestCase { String by = "<input $a$ id=\"someId1\" />"; String expected = "<input class=\"other\" type=\"text\" ng-model=\"someModel\" placeholder=\"Some placeholder\" id=\"someId1\" />"; - String actual = replacer.testReplace(in, what, by, options); + String actual = Replacer.testReplace(in, what, by, options, getProject()); assertEquals(expected, actual); } @@ -130,7 +112,7 @@ public class XmlStructuralReplaceTest extends StructuralReplaceTestCase { String replacement = loadFile(replacementFileName); String expectedResult = loadFile(outFileName); - assertEquals(message, expectedResult, replacer.testReplace(content,pattern,replacement,options,filepattern)); + assertEquals(message, expectedResult, Replacer.testReplace(content, pattern, replacement, options,getProject(), filepattern)); options.getMatchOptions().setFileType(StdFileTypes.XML); } -- GitLab