From c7d70c7b0be325e84b9c98203e3e99946ac8bfcd Mon Sep 17 00:00:00 2001 From: Evgeny Mandrikov <138671+Godin@users.noreply.github.com> Date: Sun, 6 Jan 2019 13:42:49 +0100 Subject: Show messages in HTML report when class has no debug information (#818) --- .../report/internal/html/page/ClassPageTest.java | 29 +++++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) (limited to 'org.jacoco.report.test') diff --git a/org.jacoco.report.test/src/org/jacoco/report/internal/html/page/ClassPageTest.java b/org.jacoco.report.test/src/org/jacoco/report/internal/html/page/ClassPageTest.java index 7126f93e..b174fb29 100644 --- a/org.jacoco.report.test/src/org/jacoco/report/internal/html/page/ClassPageTest.java +++ b/org.jacoco.report.test/src/org/jacoco/report/internal/html/page/ClassPageTest.java @@ -17,6 +17,7 @@ import java.io.IOException; import org.jacoco.core.analysis.IClassCoverage; import org.jacoco.core.internal.analysis.ClassCoverageImpl; +import org.jacoco.core.internal.analysis.CounterImpl; import org.jacoco.core.internal.analysis.MethodCoverageImpl; import org.jacoco.report.internal.ReportOutputFolder; import org.jacoco.report.internal.html.ILinkable; @@ -37,8 +38,10 @@ public class ClassPageTest extends PageTestBase { @Override public void setup() throws Exception { super.setup(); + final MethodCoverageImpl m = new MethodCoverageImpl("a", "()V", null); + m.increment(CounterImpl.COUNTER_1_0, CounterImpl.COUNTER_0_0, 42); node = new ClassCoverageImpl("org/jacoco/example/Foo", 123, false); - node.addMethod(new MethodCoverageImpl("a", "()V", null)); + node.addMethod(m); node.addMethod(new MethodCoverageImpl("b", "()V", null)); node.addMethod(new MethodCoverageImpl("c", "()V", null)); } @@ -61,13 +64,15 @@ public class ClassPageTest extends PageTestBase { } @Test - public void should_not_generate_message_when_SourceFileName_not_present() + public void should_generate_message_when_SourceFileName_not_present() throws Exception { page = new ClassPage(node, null, null, rootFolder, context); page.render(); final Document doc = support.parse(output.getFile("Foo.html")); - assertEquals("", support.findStr(doc, "/html/body/p[1]")); + assertEquals( + "Class files must be compiled with debug information to link with source files.", + support.findStr(doc, "/html/body/p[1]")); } @Test @@ -87,8 +92,10 @@ public class ClassPageTest extends PageTestBase { @Test public void should_generate_message_with_default_package_when_SourceFileName_present_but_no_SourceFilePage() throws Exception { + final MethodCoverageImpl m = new MethodCoverageImpl("a", "()V", null); + m.increment(CounterImpl.COUNTER_1_0, CounterImpl.COUNTER_0_0, 42); node = new ClassCoverageImpl("Foo", 123, false); - node.addMethod(new MethodCoverageImpl("a", "()V", null)); + node.addMethod(m); node.setSourceFileName("Foo.java"); page = new ClassPage(node, null, null, rootFolder, context); @@ -112,6 +119,20 @@ public class ClassPageTest extends PageTestBase { assertEquals("", support.findStr(doc, "/html/body/p[1]")); } + @Test + public void should_generate_message_when_no_lines() throws Exception { + node = new ClassCoverageImpl("Foo", 123, false); + node.addMethod(new MethodCoverageImpl("m", "()V", null)); + + page = new ClassPage(node, null, new SourceLink(), rootFolder, context); + page.render(); + + final Document doc = support.parse(output.getFile("Foo.html")); + assertEquals( + "Class files must be compiled with debug information to show line coverage.", + support.findStr(doc, "/html/body/p[1]")); + } + private class SourceLink implements ILinkable { public String getLink(final ReportOutputFolder base) { -- cgit v1.2.3