62 lines
2.2 KiB
Rust
62 lines
2.2 KiB
Rust
use pixstrip_core::pipeline::*;
|
|
use pixstrip_core::operations::*;
|
|
use pixstrip_core::types::*;
|
|
|
|
#[test]
|
|
fn processing_job_default_has_no_operations() {
|
|
let job = ProcessingJob::new("/tmp/input/", "/tmp/output/");
|
|
assert!(job.resize.is_none());
|
|
assert!(job.convert.is_none());
|
|
assert!(job.compress.is_none());
|
|
assert!(job.metadata.is_none());
|
|
assert!(job.watermark.is_none());
|
|
assert!(job.rename.is_none());
|
|
assert!(job.sources.is_empty());
|
|
}
|
|
|
|
#[test]
|
|
fn processing_job_add_sources() {
|
|
let mut job = ProcessingJob::new("/tmp/input/", "/tmp/output/");
|
|
job.add_source("/tmp/input/photo.jpg");
|
|
job.add_source("/tmp/input/image.png");
|
|
assert_eq!(job.sources.len(), 2);
|
|
assert_eq!(job.sources[0].original_format, Some(ImageFormat::Jpeg));
|
|
assert_eq!(job.sources[1].original_format, Some(ImageFormat::Png));
|
|
}
|
|
|
|
#[test]
|
|
fn processing_job_with_resize() {
|
|
let mut job = ProcessingJob::new("/tmp/input/", "/tmp/output/");
|
|
job.resize = Some(ResizeConfig::ByWidth(1200));
|
|
assert!(job.resize.is_some());
|
|
}
|
|
|
|
#[test]
|
|
fn processing_job_operation_count() {
|
|
let mut job = ProcessingJob::new("/tmp/input/", "/tmp/output/");
|
|
assert_eq!(job.operation_count(), 0);
|
|
job.resize = Some(ResizeConfig::ByWidth(1200));
|
|
assert_eq!(job.operation_count(), 1);
|
|
job.compress = Some(CompressConfig::Preset(QualityPreset::High));
|
|
assert_eq!(job.operation_count(), 2);
|
|
job.metadata = Some(MetadataConfig::StripAll);
|
|
assert_eq!(job.operation_count(), 3);
|
|
}
|
|
|
|
#[test]
|
|
fn processing_job_output_path() {
|
|
let job = ProcessingJob::new("/tmp/input/", "/tmp/output/");
|
|
let source = ImageSource::from_path("/tmp/input/photo.jpg");
|
|
let output = job.output_path_for(&source, None);
|
|
assert_eq!(output.to_str().unwrap(), "/tmp/output/photo.jpg");
|
|
}
|
|
|
|
#[test]
|
|
fn processing_job_output_path_with_format_change() {
|
|
let mut job = ProcessingJob::new("/tmp/input/", "/tmp/output/");
|
|
job.convert = Some(ConvertConfig::SingleFormat(ImageFormat::WebP));
|
|
let source = ImageSource::from_path("/tmp/input/photo.jpg");
|
|
let output = job.output_path_for(&source, Some(ImageFormat::WebP));
|
|
assert_eq!(output.to_str().unwrap(), "/tmp/output/photo.webp");
|
|
}
|