Merge branch 'master' into static_imports

This commit is contained in:
Sam Pottinger
2019-11-04 17:06:32 -08:00
69 changed files with 1489 additions and 2187 deletions

View File

@@ -88,8 +88,12 @@ public class ParserTests {
}
static void expectGood(final String id, boolean ignoreWhitespace) {
expectGood(id, ignoreWhitespace, Optional.empty());
}
static void expectGood(final String id, boolean ignoreWhitespace, Optional<String> packageName) {
try {
final String program = preprocess(id, res(id + ".pde"));
final String program = preprocess(id, res(id + ".pde"), packageName);
boolean successful = compile(id, program);
if (!successful) {
System.err.println("----------------------------");
@@ -369,6 +373,11 @@ public class ParserTests {
expectGood("typeinference");
}
@Test
public void testPackage() {
expectGood("packageTest", true, Optional.of("test.subtest"));
}
private static boolean compile(String id, String program) {
// Create compilable AST to get syntax problems
CompilationUnit compilableCU = JdtCompilerUtil.makeAST(

View File

@@ -5,6 +5,8 @@ import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StringWriter;
import java.util.Optional;
import processing.app.Preferences;
import processing.app.SketchException;
import processing.mode.java.preproc.PdePreprocessor;
@@ -37,9 +39,25 @@ public class ProcessingTestUtil {
static String preprocess(final String name, final File resource)
throws SketchException {
return preprocess(name, resource, Optional.empty());
}
static String preprocess(final String name, final File resource, Optional<String> optionalPackage)
throws SketchException {
final String program = read(resource);
final StringWriter out = new StringWriter();
PreprocessorResult result = new PdePreprocessor(name, 4, true).write(out, program);
PdePreprocessor.PdePreprocessorBuilder builder = PdePreprocessor.builderFor(name);
builder.setTabSize(4);
builder.setIsTesting(true);
if (optionalPackage.isPresent()) {
builder.setDestinationPackage(optionalPackage.get());
}
PdePreprocessor preprocessor = builder.build();
PreprocessorResult result = preprocessor.write(out, program);
if (result.getPreprocessIssues().size() > 0) {
throw new PdePreprocessIssueException(result.getPreprocessIssues().get(0));

View File

@@ -1,103 +0,0 @@
package processing.mode.java.preproc.code;
import org.antlr.v4.runtime.BufferedTokenStream;
import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.TokenStream;
import org.antlr.v4.runtime.TokenStreamRewriter;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import processing.mode.java.pdex.TextTransform;
import static org.junit.Assert.*;
public class CodeEditOperationUtilTest {
private TokenStreamRewriter tokenStreamRewriter;
private Token sampleStart;
private Token sampleEnd;
@Before
public void setUp() {
tokenStreamRewriter = Mockito.mock(TokenStreamRewriter.class);
sampleStart = Mockito.mock(Token.class);
Mockito.when(sampleStart.getStartIndex()).thenReturn(5);
Mockito.when(sampleStart.getText()).thenReturn("test");
sampleEnd = Mockito.mock(Token.class);
Mockito.when(sampleEnd.getStartIndex()).thenReturn(10);
Mockito.when(sampleEnd.getText()).thenReturn("testing");
}
@Test
public void createDeleteSingle() {
TextTransform.Edit edit = CodeEditOperationUtil.createDelete(sampleStart, tokenStreamRewriter);
Assert.assertNotNull(edit);
Mockito.verify(tokenStreamRewriter).delete(sampleStart);
}
@Test
public void createDeleteRange() {
TextTransform.Edit edit = CodeEditOperationUtil.createDelete(
sampleStart,
sampleEnd,
tokenStreamRewriter
);
Assert.assertNotNull(edit);
Mockito.verify(tokenStreamRewriter).delete(sampleStart, sampleEnd);
}
@Test
public void createInsertAfterLocation() {
TextTransform.Edit edit = CodeEditOperationUtil.createInsertAfter(
5,
"text",
tokenStreamRewriter
);
Assert.assertNotNull(edit);
Mockito.verify(tokenStreamRewriter).insertAfter(5, "text");
}
@Test
public void createInsertAfterToken() {
TextTransform.Edit edit = CodeEditOperationUtil.createInsertAfter(
sampleStart,
"text",
tokenStreamRewriter
);
Assert.assertNotNull(edit);
Mockito.verify(tokenStreamRewriter).insertAfter(sampleStart, "text");
}
@Test
public void createInsertBeforeToken() {
TextTransform.Edit edit = CodeEditOperationUtil.createInsertBefore(
sampleStart,
"text",
tokenStreamRewriter
);
Assert.assertNotNull(edit);
Mockito.verify(tokenStreamRewriter).insertBefore(sampleStart, "text");
}
@Test
public void createInsertBeforeLocation() {
TextTransform.Edit edit = CodeEditOperationUtil.createInsertBefore(
5,
5,
"text",
tokenStreamRewriter
);
Assert.assertNotNull(edit);
Mockito.verify(tokenStreamRewriter).insertBefore(5, "text");
}
}

View File

@@ -6,6 +6,7 @@ import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import processing.mode.java.pdex.TextTransform;
import processing.mode.java.preproc.PdeParseTreeListener;
import java.util.List;
@@ -24,7 +25,7 @@ public class PrintWriterWithEditGenTest {
@Test
public void addEmptyLineBefore() {
PrintWriterWithEditGen editGen = createGen(true);
PdeParseTreeListener.PrintWriterWithEditGen editGen = createGen(true);
editGen.addEmptyLine();
editGen.finish();
@@ -36,7 +37,7 @@ public class PrintWriterWithEditGenTest {
@Test
public void addCodeLineBefore() {
PrintWriterWithEditGen editGen = createGen(true);
PdeParseTreeListener.PrintWriterWithEditGen editGen = createGen(true);
editGen.addCodeLine("test");
editGen.finish();
@@ -48,7 +49,7 @@ public class PrintWriterWithEditGenTest {
@Test
public void addCodeBefore() {
PrintWriterWithEditGen editGen = createGen(true);
PdeParseTreeListener.PrintWriterWithEditGen editGen = createGen(true);
editGen.addCode("test");
editGen.finish();
@@ -60,7 +61,7 @@ public class PrintWriterWithEditGenTest {
@Test
public void addEmptyLineAfter() {
PrintWriterWithEditGen editGen = createGen(false);
PdeParseTreeListener.PrintWriterWithEditGen editGen = createGen(false);
editGen.addEmptyLine();
editGen.finish();
@@ -72,7 +73,7 @@ public class PrintWriterWithEditGenTest {
@Test
public void addCodeLineAfter() {
PrintWriterWithEditGen editGen = createGen(false);
PdeParseTreeListener.PrintWriterWithEditGen editGen = createGen(false);
editGen.addCodeLine("test");
editGen.finish();
@@ -84,7 +85,7 @@ public class PrintWriterWithEditGenTest {
@Test
public void addCodeAfter() {
PrintWriterWithEditGen editGen = createGen(false);
PdeParseTreeListener.PrintWriterWithEditGen editGen = createGen(false);
editGen.addCode("test");
editGen.finish();
@@ -94,8 +95,8 @@ public class PrintWriterWithEditGenTest {
Mockito.verify(tokenStreamRewriter).insertAfter(5, "test");
}
private PrintWriterWithEditGen createGen(boolean before) {
return new PrintWriterWithEditGen(
private PdeParseTreeListener.PrintWriterWithEditGen createGen(boolean before) {
return new PdeParseTreeListener.PrintWriterWithEditGen(
tokenStreamRewriter,
rewriteResultBuilder,
5,