From 6a40a8be390fae8be77b7c77f7d9413673dfe170 Mon Sep 17 00:00:00 2001 From: Carpe-Wang Date: Sat, 19 Apr 2025 14:27:24 -0400 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BA=86=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E6=95=B4=E4=BD=93=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Configure | 0 Task | 0 build.gradle | 16 ++ .../security/SecurityConfiguration.java | 4 +- src/main/resources/application.properties | 2 +- .../ConvertPDFToMarkdownIntegrationTest.java | 46 ++++++ .../software/SPDF/utils/PdfTestUtils.java | 73 +++++++++ src/test/resources/invalid.txt | 3 + src/test/resources/markdown/Hello World.md | 3 + src/test/resources/markdown/test_markdown.md | 41 +++++ src/test/resources/sample/sample.md | 38 +++++ src/test/resources/sample/sample.pdf | Bin 0 -> 13361 bytes src/test/resources/testData/basic.md | 53 +++++++ src/test/resources/testData/complex.md | 140 ++++++++++++++++++ src/test/resources/testData/empty.md | 0 src/test/resources/testData/invalid.md | 14 ++ src/test/resources/testData/minimal.md | 3 + src/test/resources/testData/multi_page.pdf | Bin 0 -> 18078 bytes .../resources/testData/pdf_with_image.pdf | Bin 0 -> 93366 bytes src/test/resources/testData/test.pdf | Bin 0 -> 13361 bytes src/test/resources/testData/text_for_pdf.txt | 12 ++ src/test/resources/testData/with_images.md | 47 ++++++ 22 files changed, 493 insertions(+), 2 deletions(-) create mode 100644 Configure create mode 100644 Task create mode 100644 src/test/java/stirling/software/SPDF/utils/ConvertPDFToMarkdownIntegrationTest.java create mode 100644 src/test/java/stirling/software/SPDF/utils/PdfTestUtils.java create mode 100644 src/test/resources/markdown/Hello World.md create mode 100644 src/test/resources/markdown/test_markdown.md create mode 100644 src/test/resources/sample/sample.md create mode 100644 src/test/resources/sample/sample.pdf create mode 100644 src/test/resources/testData/basic.md create mode 100644 src/test/resources/testData/complex.md create mode 100644 src/test/resources/testData/empty.md create mode 100644 src/test/resources/testData/invalid.md create mode 100644 src/test/resources/testData/minimal.md create mode 100644 src/test/resources/testData/multi_page.pdf create mode 100644 src/test/resources/testData/pdf_with_image.pdf create mode 100644 src/test/resources/testData/test.pdf create mode 100644 src/test/resources/testData/text_for_pdf.txt create mode 100644 src/test/resources/testData/with_images.md diff --git a/Configure b/Configure new file mode 100644 index 000000000..e69de29bb diff --git a/Task b/Task new file mode 100644 index 000000000..e69de29bb diff --git a/build.gradle b/build.gradle index 9871d9980..fdb231107 100644 --- a/build.gradle +++ b/build.gradle @@ -586,3 +586,19 @@ task printMacVersion { tasks.named('generateOpenApiDocs') { doNotTrackState("Tracking state is not supported for this task") } +tasks.register('convertersTest', Test) { + group = 'verification' + description = 'Run only converter integration tests under controller/api/converters' + + // 指定来自 test 源集的字节码和 classpath + testClassesDirs = sourceSets.test.get().output.classesDirs + classpath = sourceSets.test.get().runtimeClasspath + + // 只包含 controller/api/converters 目录下的测试类 + include '**/stirling/software/SPDF/controller/api/converters/ConvertMarkdownToPdfIntegrationTest.java' +} + +// 确保默认 test 任务还是用 JUnit Platform +tasks.named('test') { + useJUnitPlatform() +} diff --git a/src/main/java/stirling/software/SPDF/config/security/SecurityConfiguration.java b/src/main/java/stirling/software/SPDF/config/security/SecurityConfiguration.java index a4c10d1ae..cfee56326 100644 --- a/src/main/java/stirling/software/SPDF/config/security/SecurityConfiguration.java +++ b/src/main/java/stirling/software/SPDF/config/security/SecurityConfiguration.java @@ -202,7 +202,9 @@ public class SecurityConfiguration { || trimmedUri.startsWith("/fonts/") || trimmedUri.startsWith("/js/") || trimmedUri.startsWith( - "/api/v1/info/status"); + "/api/v1/info/status") + || trimmedUri.startsWith( + "/api/v1/convert/"); }) .permitAll() .anyRequest() diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 9f58a93c6..cccfd3b06 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -40,4 +40,4 @@ springdoc.api-docs.path=/v1/api-docs # Set the URL of the OpenAPI JSON for the Swagger UI springdoc.swagger-ui.url=/v1/api-docs posthog.api.key=phc_fiR65u5j6qmXTYL56MNrLZSWqLaDW74OrZH0Insd2xq -posthog.host=https://eu.i.posthog.com \ No newline at end of file +posthog.host=https://eu.i.posthog.com diff --git a/src/test/java/stirling/software/SPDF/utils/ConvertPDFToMarkdownIntegrationTest.java b/src/test/java/stirling/software/SPDF/utils/ConvertPDFToMarkdownIntegrationTest.java new file mode 100644 index 000000000..b8cddd580 --- /dev/null +++ b/src/test/java/stirling/software/SPDF/utils/ConvertPDFToMarkdownIntegrationTest.java @@ -0,0 +1,46 @@ +package stirling.software.SPDF.utils; + +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.multipart; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; + +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.core.io.ClassPathResource; +import org.springframework.http.MediaType; +import org.springframework.mock.web.MockMultipartFile; +import org.springframework.test.web.servlet.MockMvc; + +@SpringBootTest( + webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, + properties = { + "spring.security.enabled=false", + "security.enableLogin=false", + "security.csrfDisabled=true", + "system.enableUrlToPDF=false", + "system.enableAlphaFunctionality=false", + "system.disableSanitize=false" + }) +@AutoConfigureMockMvc(addFilters = false) // 跳过安全过滤器 +public class ConvertPDFToMarkdownIntegrationTest { + + @Autowired private MockMvc mockMvc; + + @Test + public void convertValidPdfToMarkdown_shouldReturnMarkdownBytes() throws Exception { + // Load sample PDF file from resources + ClassPathResource pdfResource = new ClassPathResource("sample/sample.pdf"); + MockMultipartFile mockFile = + new MockMultipartFile( + "fileInput", "sample.pdf", "application/pdf", pdfResource.getInputStream()); + + mockMvc.perform( + multipart("/api/v1/convert/pdf/markdown") + .file(mockFile) + .contentType(MediaType.MULTIPART_FORM_DATA)) + .andExpect(status().isOk()) + .andExpect( + header().string("Content-Type", MediaType.APPLICATION_OCTET_STREAM_VALUE)); + } +} diff --git a/src/test/java/stirling/software/SPDF/utils/PdfTestUtils.java b/src/test/java/stirling/software/SPDF/utils/PdfTestUtils.java new file mode 100644 index 000000000..523ff64fa --- /dev/null +++ b/src/test/java/stirling/software/SPDF/utils/PdfTestUtils.java @@ -0,0 +1,73 @@ +package stirling.software.SPDF.utils; + +import java.io.IOException; + +import org.apache.pdfbox.Loader; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.text.PDFTextStripper; + +/** + * Utility class for PDF testing. Provides methods to extract text from PDF files and compare their + * content. + */ +public class PdfTestUtils { + + /** + * Extracts text content from a PDF byte array. + * + * @param pdfBytes The PDF content as a byte array + * @return The extracted text + * @throws IOException If there's an error processing the PDF + */ + public static String extractTextFromPdf(byte[] pdfBytes) throws IOException { + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + PDFTextStripper stripper = new PDFTextStripper(); + return stripper.getText(document); + } + } + + /** + * Checks if the PDF contains specific text. + * + * @param pdfBytes The PDF content as a byte array + * @param expectedText The text to look for + * @return true if the text is found, false otherwise + * @throws IOException If there's an error processing the PDF + */ + public static boolean pdfContainsText(byte[] pdfBytes, String expectedText) throws IOException { + String extractedText = extractTextFromPdf(pdfBytes); + return extractedText.contains(expectedText); + } + + /** + * Gets the number of pages in a PDF document. + * + * @param pdfBytes The PDF content as a byte array + * @return The number of pages + * @throws IOException If there's an error processing the PDF + */ + public static int getPageCount(byte[] pdfBytes) throws IOException { + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + return document.getNumberOfPages(); + } + } + + /** + * Checks if a byte array has a valid PDF header. + * + * @param content The byte array to check + * @return true if it has a valid PDF header, false otherwise + */ + public static boolean hasValidPdfHeader(byte[] content) { + if (content == null || content.length < 5) { + return false; + } + + // Check for PDF magic number (%PDF-) + return content[0] == '%' + && content[1] == 'P' + && content[2] == 'D' + && content[3] == 'F' + && content[4] == '-'; + } +} diff --git a/src/test/resources/invalid.txt b/src/test/resources/invalid.txt index e69de29bb..f91186dd8 100644 --- a/src/test/resources/invalid.txt +++ b/src/test/resources/invalid.txt @@ -0,0 +1,3 @@ +This is not a valid markdown file. +It doesn't have any proper markdown syntax. +Just plain text without any formatting. \ No newline at end of file diff --git a/src/test/resources/markdown/Hello World.md b/src/test/resources/markdown/Hello World.md new file mode 100644 index 000000000..4ddb46d1b --- /dev/null +++ b/src/test/resources/markdown/Hello World.md @@ -0,0 +1,3 @@ +# Hello World + +This is **bold**, this is *italic*, this is a [link](https://www.google.com/). \ No newline at end of file diff --git a/src/test/resources/markdown/test_markdown.md b/src/test/resources/markdown/test_markdown.md new file mode 100644 index 000000000..b5fedcd83 --- /dev/null +++ b/src/test/resources/markdown/test_markdown.md @@ -0,0 +1,41 @@ +# Test Document + +This is a test document for integration testing. + +## Features + +- Feature 1 +- Feature 2 + +### Code Example + +```java +public class Test { + public static void main(String[] args) { + System.out.println("Hello, World!"); + } +} +``` + +## Tables + +| Header 1 | Header 2 | +|----------|----------| +| Cell 1 | Cell 2 | +| Cell 3 | Cell 4 | + +## Lists + +1. First item +2. Second item +3. Third item + +## Formatting + +**Bold text** and *italic text* and `inline code`. + +## Links and Images + +[Example Link](https://example.com) + +![Example Image](https://example.com/image.jpg) \ No newline at end of file diff --git a/src/test/resources/sample/sample.md b/src/test/resources/sample/sample.md new file mode 100644 index 000000000..08517de10 --- /dev/null +++ b/src/test/resources/sample/sample.md @@ -0,0 +1,38 @@ +# Sample Markdown Document + +This is a sample markdown document used for testing the Markdown to PDF conversion functionality. + +## Features + +Markdown supports various formatting options: + +- **Bold** text for emphasis +- *Italic* text for subtle emphasis +- `Code blocks` for technical content + +### Code Example + +```java +public class HelloWorld { + public static void main(String[] args) { + System.out.println("Hello, World!"); + } +} +``` + +### Table Example + +| Name | Age | Role | +|------|-----|------| +| John | 28 | Developer | +| Jane | 32 | Designer | +| Bob | 45 | Manager | + +## Conclusion + +This sample document demonstrates that the converter can handle: +1. Different header levels +2. Text formatting +3. Code blocks +4. Tables +5. Lists (ordered and unordered) \ No newline at end of file diff --git a/src/test/resources/sample/sample.pdf b/src/test/resources/sample/sample.pdf new file mode 100644 index 0000000000000000000000000000000000000000..75f714db6cf1cec14fe2625877e6ed0f85f366e4 GIT binary patch literal 13361 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%0Dmb1a-{I=@g$Dl#vH>+*Z2 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 这是一个引用。 +> +> 这是引用的第二段。 +> +> > 这是嵌套引用。 + +## 链接 + +[Markdown 语法](https://www.markdownguide.org/basic-syntax/) + +## 水平线 + +--- + +## 总结 + +这个文件展示了基本的 Markdown 语法元素。 \ No newline at end of file diff --git a/src/test/resources/testData/complex.md b/src/test/resources/testData/complex.md new file mode 100644 index 000000000..c95e8b83f --- /dev/null +++ b/src/test/resources/testData/complex.md @@ -0,0 +1,140 @@ +# 复杂 Markdown 测试文件 + +这个文件展示了更多复杂的 Markdown 格式元素。 + +## 表格 + +| 名称 | 年龄 | 职业 | 城市 | +|------|-----|------|------| +| 张三 | 28 | 软件工程师 | 北京 | +| 李四 | 35 | 产品经理 | 上海 | +| 王五 | 42 | 数据科学家 | 广州 | +| 赵六 | 31 | UI设计师 | 深圳 | + +### 对齐的表格 + +| 左对齐 | 居中对齐 | 右对齐 | +|:-------|:-------:|-------:| +| 单元格 | 单元格 | 单元格 | +| 长文本 | 居中文本 | 右对齐文本 | + +## 代码块 + +内联代码: `var x = 10;` + +```python +# Python 代码示例 +def factorial(n): + if n == 0 or n == 1: + return 1 + else: + return n * factorial(n-1) + +result = factorial(5) +print(f"5的阶乘是: {result}") +``` + +```java +// Java 代码示例 +public class HelloWorld { + public static void main(String[] args) { + System.out.println("Hello, World!"); + + for (int i = 0; i < 5; i++) { + System.out.println("Count: " + i); + } + } +} +``` + +```sql +-- SQL 查询示例 +SELECT + users.name, + orders.order_date, + SUM(order_items.price) as total_price +FROM + users +JOIN + orders ON users.id = orders.user_id +JOIN + order_items ON orders.id = order_items.order_id +WHERE + orders.order_date > '2023-01-01' +GROUP BY + users.name, orders.order_date +HAVING + total_price > 100 +ORDER BY + total_price DESC; +``` + +## 任务列表 + +- [x] 完成的任务 +- [ ] 未完成的任务 +- [x] 另一个完成的任务 +- [ ] 带有 **格式化** 文本的任务 + +## 脚注 + +这是一个带有脚注的文本[^1]。 + +[^1]: 这是脚注的内容。 + +## 数学公式 + +内联公式: $E = mc^2$ + +公式块: + +$$ +\frac{d}{dx}\left( \int_{a}^{x} f(t)dt \right) = f(x) +$$ + +$$ +\sum_{i=1}^{n} i = \frac{n(n+1)}{2} +$$ + +## 嵌套列表 + +1. 第一层 + - 第二层 + - 第三层 + - 第四层 + - 回到第二层 +2. 回到第一层 + +## 定义列表 + +术语 1 +: 定义 1 + +术语 2 +: 定义 2a +: 定义 2b + +## HTML 嵌入 + +
+ 这是通过 HTML 创建的自定义容器 +
    +
  • 可以包含任何 HTML 元素
  • +
  • 比如这个列表
  • +
+
+ + + + + + + + + + +
列1列2
AB
+ +## 总结 + +这个文件展示了高级的 Markdown 语法和格式元素,可以测试 Markdown 到 PDF 转换功能的完整性。 \ No newline at end of file diff --git a/src/test/resources/testData/empty.md b/src/test/resources/testData/empty.md new file mode 100644 index 000000000..e69de29bb diff --git a/src/test/resources/testData/invalid.md b/src/test/resources/testData/invalid.md new file mode 100644 index 000000000..aeb234b67 --- /dev/null +++ b/src/test/resources/testData/invalid.md @@ -0,0 +1,14 @@ +这不是有效的Markdown文件格式 +这里缺少格式标识符 + +**未闭合的粗体文本 + +> 未闭合的引用块 + +``` +未闭合的代码块 + +| 缺少标题行的表格 | +| 单元格1 | 单元格2 | + +这个文件故意包含语法错误,用于测试处理无效Markdown的能力。 \ No newline at end of file diff --git a/src/test/resources/testData/minimal.md b/src/test/resources/testData/minimal.md new file mode 100644 index 000000000..de741e5ad --- /dev/null +++ b/src/test/resources/testData/minimal.md @@ -0,0 +1,3 @@ +# 标题 + +内容 \ No newline at end of file diff --git a/src/test/resources/testData/multi_page.pdf b/src/test/resources/testData/multi_page.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b25b1c2b578990f35b90590cfe28f3e2e5f7776c GIT binary patch literal 18078 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
  • hha~=vUFNXLcfJh#VaPsdv0^9h4*` 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/testData/test.pdf b/src/test/resources/testData/test.pdf new file mode 100644 index 0000000000000000000000000000000000000000..75f714db6cf1cec14fe2625877e6ed0f85f366e4 GIT binary patch literal 13361 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%0Dmb1a-{I=@g$Dl#vH>+*Z2 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