mirror of
https://github.com/storytold/winprint.rs.git
synced 2026-10-13 23:17:45 +00:00
37 lines
1.3 KiB
Rust
37 lines
1.3 KiB
Rust
//! End-to-end visual regression for [`ImagePrinter`].
|
|
|
|
#![cfg(all(windows, feature = "test-utils"))]
|
|
|
|
mod common;
|
|
use common::print;
|
|
use common::visual::VisualExpectation;
|
|
use winprint::{
|
|
printer::{FilePrinter, ImagePrinter},
|
|
ticket::{
|
|
FeatureOptionPackWithPredefined, PredefinedMediaName, PrintCapabilities, PrintTicket,
|
|
},
|
|
};
|
|
|
|
#[test]
|
|
fn image_visual_regression() {
|
|
let _ = env_logger::try_init();
|
|
let visual_regression_dir = std::path::Path::new(env!("CARGO_MANIFEST_DIR"))
|
|
.join("test_data")
|
|
.join("visual_regression");
|
|
let expectation = VisualExpectation::new(visual_regression_dir.join("data.tiff"));
|
|
let actual_pages = print::print_pages(|device| {
|
|
let origin = visual_regression_dir.join("data.tiff");
|
|
let printer = ImagePrinter::new(device.clone());
|
|
let capabilities = PrintCapabilities::fetch(&device).unwrap();
|
|
let media_size = capabilities
|
|
.page_media_sizes()
|
|
.find(|x| x.as_predefined_name() == Some(PredefinedMediaName::ISOA4))
|
|
.unwrap();
|
|
let print_ticket: PrintTicket = media_size.into();
|
|
printer
|
|
.print(origin.as_path(), print_ticket)
|
|
.expect("failed to print the document");
|
|
});
|
|
expectation.assert(&actual_pages);
|
|
}
|