diff --git a/java_console/ui/src/main/java/com/rusefi/ui/livedata/SourceCodePainter.java b/java_console/ui/src/main/java/com/rusefi/ui/livedata/SourceCodePainter.java index c6e1d3b42a..a74e764b98 100644 --- a/java_console/ui/src/main/java/com/rusefi/ui/livedata/SourceCodePainter.java +++ b/java_console/ui/src/main/java/com/rusefi/ui/livedata/SourceCodePainter.java @@ -3,6 +3,16 @@ package com.rusefi.ui.livedata; import java.awt.*; public interface SourceCodePainter { + SourceCodePainter VOID = new SourceCodePainter() { + @Override + public void paintBackground(Color color, Range range) { + } + + @Override + public void paintForeground(Color color, Range range) { + } + }; + void paintBackground(Color color, Range range); void paintForeground(Color color, Range range); diff --git a/java_console/ui/src/main/java/com/rusefi/ui/livedata/VariableValueSource.java b/java_console/ui/src/main/java/com/rusefi/ui/livedata/VariableValueSource.java index c318101aa3..6517737b33 100644 --- a/java_console/ui/src/main/java/com/rusefi/ui/livedata/VariableValueSource.java +++ b/java_console/ui/src/main/java/com/rusefi/ui/livedata/VariableValueSource.java @@ -1,5 +1,7 @@ package com.rusefi.ui.livedata; public interface VariableValueSource { + VariableValueSource VOID = name -> null; + Object getValue(String name); } diff --git a/java_console/ui/src/test/java/com/rusefi/ui/livedata/LiveDataParserTest.java b/java_console/ui/src/test/java/com/rusefi/ui/livedata/LiveDataParserTest.java index 8c12276ed0..16b5344470 100644 --- a/java_console/ui/src/test/java/com/rusefi/ui/livedata/LiveDataParserTest.java +++ b/java_console/ui/src/test/java/com/rusefi/ui/livedata/LiveDataParserTest.java @@ -1,14 +1,19 @@ package com.rusefi.ui.livedata; import com.rusefi.livedata.LiveDataParserPanel; +import com.rusefi.livedata.LiveDataView; +import com.rusefi.livedata.ParseResult; import org.antlr.v4.runtime.tree.ParseTree; import org.antlr.v4.runtime.tree.ParseTreeWalker; import org.junit.Test; import java.awt.*; +import java.io.IOException; +import java.net.URISyntaxException; import java.util.Map; import java.util.TreeMap; +import static org.junit.Assert.assertTrue; import static org.mockito.Matchers.any; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.*; @@ -50,4 +55,14 @@ public class LiveDataParserTest { verify(painter).paintBackground(eq(Color.red), any()); verify(painter).paintBackground(eq(Color.green), any()); } + + @Test + public void testConfigurationInRealSourceCode() throws IOException, URISyntaxException { + String sourceCode = LiveDataParserPanel.getContent(LiveDataParserPanel.class, LiveDataView.BOOST_CONTROL.getFileName()); + assertTrue(sourceCode.length() > 100); + + ParseTree tree = LiveDataParserPanel.getParseTree(sourceCode); + ParseResult parseResult = LiveDataParserPanel.applyVariables(VariableValueSource.VOID, sourceCode, SourceCodePainter.VOID, tree); + assertTrue(!parseResult.getConfigTokens().isEmpty()); + } }