use image::{Rgba, RgbaImage};
use labelize::encode_pdf;
use labelize::DrawerOptions;
#[test]
fn pdf_output_is_non_empty() {
let img = RgbaImage::from_pixel(100, 100, Rgba([255, 255, 255, 255]));
let opts = DrawerOptions {
label_width_mm: 50.0,
label_height_mm: 50.0,
dpmm: 8,
..Default::default()
};
let mut buf = Vec::new();
encode_pdf(&img, &opts, &mut buf).expect("encode_pdf failed");
assert!(!buf.is_empty(), "PDF output should be non-empty");
}
#[test]
fn pdf_starts_with_pdf_header() {
let img = RgbaImage::from_pixel(100, 100, Rgba([255, 255, 255, 255]));
let opts = DrawerOptions::default();
let mut buf = Vec::new();
encode_pdf(&img, &opts, &mut buf).expect("encode_pdf failed");
let header = std::str::from_utf8(&buf[..5]).unwrap_or("");
assert_eq!(header, "%PDF-", "PDF should start with %PDF- header");
}
#[test]
fn pdf_contains_mediabox() {
let img = RgbaImage::from_pixel(100, 100, Rgba([255, 255, 255, 255]));
let opts = DrawerOptions {
label_width_mm: 102.0,
label_height_mm: 152.0,
dpmm: 8,
..Default::default()
};
let mut buf = Vec::new();
encode_pdf(&img, &opts, &mut buf).expect("encode_pdf failed");
let content = String::from_utf8_lossy(&buf);
assert!(content.contains("MediaBox"), "PDF should contain MediaBox");
}