use pdf_oxide::document::PdfDocument;
use std::fs;
use std::path::PathBuf;
#[test]
fn test_open_all_pdfs() {
let fixtures_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("tests/fixtures");
let pdf_files: Vec<_> = fs::read_dir(&fixtures_dir)
.unwrap()
.filter_map(|entry| entry.ok())
.filter(|entry| entry.path().extension().and_then(|s| s.to_str()) == Some("pdf"))
.collect();
println!("Found {} PDF files", pdf_files.len());
for entry in pdf_files {
let path = entry.path();
let filename = path.file_name().unwrap().to_string_lossy();
println!("\n==> Testing: {}", filename);
match PdfDocument::open(&path) {
Ok(mut doc) => {
println!(" ✓ Opened successfully");
println!(" Version: {}.{}", doc.version().0, doc.version().1);
match doc.catalog() {
Ok(_) => {
println!(" ✓ Loaded catalog");
match doc.page_count() {
Ok(count) => println!(" ✓ Page count: {}", count),
Err(e) => eprintln!(" ✗ Page count failed: {}", e),
}
},
Err(e) => eprintln!(" ✗ Catalog failed: {}", e),
}
},
Err(e) => {
eprintln!(" ✗ Open failed: {}", e);
},
}
}
}
#[test]
#[ignore] fn test_missing_object_handling() {
}