From d50dda7b08defbb374ebc8f25aea56d3c1c687ef Mon Sep 17 00:00:00 2001 From: Jay Arthanareeswaran Date: Fri, 20 Sep 2024 14:04:08 +0530 Subject: [PATCH] [23] Markdown doc comments with codeblock don't parse Javadoc tags afterwards #2989 Test case for the jdt.core fix --- .../ui/tests/hover/MarkdownCommentTests.java | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) diff --git a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/hover/MarkdownCommentTests.java b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/hover/MarkdownCommentTests.java index f7c03e78fa3..e44c2b1fc6a 100644 --- a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/hover/MarkdownCommentTests.java +++ b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/hover/MarkdownCommentTests.java @@ -808,4 +808,95 @@ void paraAfterCode() { } """; assertHtmlContent(expectedContent, actualHtmlContent); } + @Test + public void testGH2980() throws CoreException { + String source= """ + package p; + + public class X { + /// This is a test Javadoc for method test1() + /// ```java + /// test1(42); + /// ``` + /// @param a some parameter for test1 + public void test1(int a) {} + /// + /// This is a test Javadoc for method test2() + /// 'test2(0)' + /// @param b some parameter for test1 + public void test2(int b) {} + /// This is a test Javadoc for method test3() + /// ```java + /// int r = test3(); + /// System.out.println(r); + /// ``` + /// @return an int value + public int test3() { + return 0; + } + /// This is a test Javadoc for method test4() + /// Invocation method 1: + /// ```java + /// int r = test4(); + /// System.out.println(r); + /// ``` + /// Invocation method 2: + /// ```java + /// System.out.println(test4()); + /// ``` + /// @return an int value + /// @param i an int param + public int test4(int i) { + return 0; + } + } + """; + ICompilationUnit cu= getWorkingCopy("/TestSetupProject/src/p/X.java", source, null); + assertNotNull("X.java", cu); + + IType type= cu.getType("X"); + + IMethod method= type.getMethods()[0]; + String actualHtmlContent= getHoverHtmlContent(cu, method); + String expectedContent= """ +

This is a test Javadoc for method test1()

+
test1(42);
+					
+
Parameters:
a some parameter for test1
+ """; + assertHtmlContent(expectedContent, actualHtmlContent); + + method= type.getMethods()[1]; + actualHtmlContent= getHoverHtmlContent(cu, method); + expectedContent= """ +

This is a test Javadoc for method test2() + 'test2(0)'

+
Parameters:
b some parameter for test1
+ """; + assertHtmlContent(expectedContent, actualHtmlContent); + + method= type.getMethods()[2]; + actualHtmlContent= getHoverHtmlContent(cu, method); + expectedContent= """ +

This is a test Javadoc for method test3()

+
int r = test3();
+					System.out.println(r);
+					
+
Returns:
an int value
+ """; + method= type.getMethods()[3]; + actualHtmlContent= getHoverHtmlContent(cu, method); + expectedContent= """ +

This is a test Javadoc for method test4() + Invocation method 1:

+
int r = test4();
+					System.out.println(r);
+					
+

Invocation method 2:

+
System.out.println(test4());
+					
+
Parameters:
i an int param
Returns:
an int value
+ """; + assertHtmlContent(expectedContent, actualHtmlContent); + } }