From 76a556d8696cd6df38f8b044fc816eafcc6c7d12 Mon Sep 17 00:00:00 2001 From: Yonghye Kwon Date: Mon, 1 Jun 2026 14:39:14 +0900 Subject: [PATCH] test(docx): add issue 176 regression fixture Signed-off-by: Yonghye Kwon --- crates/office2pdf/tests/docx_fixtures.rs | 179 +++++++++++++++++- tests/fixtures/THIRD-PARTY-LICENSES.md | 11 ++ .../docx/issue_176_office2pdf_test.docx | Bin 0 -> 38654 bytes 3 files changed, 189 insertions(+), 1 deletion(-) create mode 100644 tests/fixtures/docx/issue_176_office2pdf_test.docx diff --git a/crates/office2pdf/tests/docx_fixtures.rs b/crates/office2pdf/tests/docx_fixtures.rs index f5497ed..70f4b48 100644 --- a/crates/office2pdf/tests/docx_fixtures.rs +++ b/crates/office2pdf/tests/docx_fixtures.rs @@ -10,7 +10,7 @@ mod common; use std::path::PathBuf; use office2pdf::config::ConvertOptions; -use office2pdf::ir::{Block, FlowPage, Page, Run}; +use office2pdf::ir::{ArrowHead, Block, FlowPage, ListKind, Page, Paragraph, Run, ShapeKind}; use office2pdf::parser::Parser; use office2pdf::parser::docx::DocxParser; @@ -110,6 +110,44 @@ fn collect_runs_from_block<'a>(block: &'a Block, out: &mut Vec<&'a Run>) { } } +fn paragraph_text(paragraph: &Paragraph) -> String { + paragraph.runs.iter().map(|run| run.text.as_str()).collect() +} + +fn block_text(block: &Block) -> String { + match block { + Block::Paragraph(paragraph) => paragraph_text(paragraph), + Block::List(list) => list + .items + .iter() + .flat_map(|item| item.content.iter()) + .map(paragraph_text) + .collect::>() + .join("\n"), + Block::Table(table) => table + .rows + .iter() + .flat_map(|row| row.cells.iter()) + .flat_map(|cell| cell.content.iter()) + .map(block_text) + .collect::>() + .join("\n"), + Block::FloatingTextBox(text_box) => text_box + .content + .iter() + .map(block_text) + .collect::>() + .join("\n"), + Block::Image(_) + | Block::FloatingImage(_) + | Block::FloatingShape(_) + | Block::MathEquation(_) + | Block::Chart(_) + | Block::PageBreak + | Block::ColumnBreak => String::new(), + } +} + fn has_hyperlink_runs(runs: &[&Run]) -> bool { runs.iter().any(|r| r.href.is_some()) } @@ -408,6 +446,145 @@ fn structure_word_tables() { assert!(has_table_block(&blocks), "should have Block::Table"); } +// --------------------------------------------------------------------------- +// issue_176_office2pdf_test.docx +// --------------------------------------------------------------------------- + +const ISSUE_176_FIXTURE: &str = "issue_176_office2pdf_test.docx"; + +#[test] +fn smoke_issue_176_office2pdf_test() { + assert_produces_valid_pdf(ISSUE_176_FIXTURE); +} + +#[test] +fn structure_issue_176_office2pdf_test() { + let pages = flow_pages(ISSUE_176_FIXTURE); + let blocks = all_blocks(&pages); + let runs = all_runs(&blocks); + + let floating_shape_count = blocks + .iter() + .filter(|block| matches!(block, Block::FloatingShape(_))) + .count(); + assert_eq!( + floating_shape_count, 3, + "issue #176 should preserve two rectangles and one arrow shape" + ); + + let rectangle_count = blocks + .iter() + .filter(|block| { + matches!( + block, + Block::FloatingShape(shape) + if matches!(shape.shape.kind, ShapeKind::Rectangle) + && shape.shape.fill.is_some() + && shape.shape.stroke.is_some() + ) + }) + .count(); + assert_eq!( + rectangle_count, 2, + "blue filled rectangle shapes should survive parsing" + ); + + assert!( + blocks.iter().any(|block| { + matches!( + block, + Block::FloatingShape(shape) + if matches!( + shape.shape.kind, + ShapeKind::Line { + tail_end: ArrowHead::Triangle, + .. + } + ) + ) + }), + "the connector arrow should survive parsing with its arrowhead" + ); + + let floating_text_box_texts: Vec = blocks + .iter() + .filter_map(|block| match block { + Block::FloatingTextBox(text_box) => Some( + text_box + .content + .iter() + .map(block_text) + .collect::>() + .join("\n"), + ), + _ => None, + }) + .collect(); + assert_eq!( + floating_text_box_texts.len(), + 2, + "issue #176 should preserve both floating text boxes" + ); + assert!( + floating_text_box_texts + .iter() + .any(|text| text.contains("Very important drawing")), + "left text box content should be preserved" + ); + assert!( + floating_text_box_texts + .iter() + .any(|text| text.contains("Very important text inside a box")), + "right text box content should be preserved" + ); + + let list = blocks + .iter() + .find_map(|block| match block { + Block::List(list) => Some(list), + _ => None, + }) + .expect("issue #176 should contain one logical list"); + assert_eq!(list.kind, ListKind::Ordered); + assert_eq!( + list.items + .iter() + .map(|item| item.level) + .collect::>(), + vec![0, 0, 1, 1], + "ordered items should continue while sub-items stay nested" + ); + assert_eq!( + list.items[1].start_at, None, + "the second ordered item should continue numbering instead of restarting" + ); + + let table = blocks + .iter() + .find_map(|block| match block { + Block::Table(table) => Some(table), + _ => None, + }) + .expect("issue #176 should contain the final data table"); + assert_eq!(table.rows.len(), 4); + assert!( + table.rows.iter().all(|row| row.cells.len() == 2), + "the data table should remain two columns wide" + ); + assert_eq!(table.header_row_count, 1); + + let document_text = runs.iter().map(|run| run.text.as_str()).collect::(); + assert!( + document_text.contains("$TERM\nprintf"), + "hard line breaks in the code block should be preserved" + ); + assert!( + runs.iter() + .any(|run| run.text == "echo" && run.style.color.is_some()), + "syntax-highlight character styles should apply to code tokens" + ); +} + // =========================================================================== // PDF text content verification // =========================================================================== diff --git a/tests/fixtures/THIRD-PARTY-LICENSES.md b/tests/fixtures/THIRD-PARTY-LICENSES.md index 4d419fc..0f0c0b1 100644 --- a/tests/fixtures/THIRD-PARTY-LICENSES.md +++ b/tests/fixtures/THIRD-PARTY-LICENSES.md @@ -230,6 +230,17 @@ SOFTWARE. --- +## Public GitHub Issue Reproduction Fixtures + +The following files were provided publicly in GitHub issues for reproduction and +are retained only as regression fixtures. + +- **Source:** +- **File:** + - `docx/issue_176_office2pdf_test.docx` + +--- + ## Original Files (No Third-Party License) The following files were created by this project's contributors and are covered diff --git a/tests/fixtures/docx/issue_176_office2pdf_test.docx b/tests/fixtures/docx/issue_176_office2pdf_test.docx new file mode 100644 index 0000000000000000000000000000000000000000..53c25156409637daac85cda7cb5b976fa342ea2b GIT binary patch literal 38654 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