test(package): nested native files retain PDF compatibility preview and compression
This commit is contained in:
parent
71484fd013
commit
f9384dfed7
|
|
@ -368,3 +368,31 @@ fn identical_stale_paths_in_different_nested_documents_keep_separate_assets() {
|
|||
assert_eq!(opened["missingLinks"], json!([]), "{filename}: {opened}");
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn packaging_nested_files_preserves_embedded_preview_pdf_and_compression() {
|
||||
let dir = Folder::new("package-native-extras");
|
||||
let mut parent = poster_with_placed_document(&dir);
|
||||
let source = dir.file("art/part.vectorcraft");
|
||||
let original = std::fs::read(&source).unwrap();
|
||||
let doc = vectorcraft_format::load(&original).unwrap();
|
||||
let preview = png(8, 8, BLUE);
|
||||
let pdf = b"%PDF-1.7\n%Embedded client preview\n".to_vec();
|
||||
let mut opts = vectorcraft_format::SaveOptions::for_doc(&doc);
|
||||
opts.preview = Some(preview.clone());
|
||||
opts.pdf = Some(pdf.clone());
|
||||
opts.compress = true;
|
||||
write(&source, &vectorcraft_format::save_with(&doc, &opts).unwrap());
|
||||
|
||||
let result = run(&mut parent, "file.package", json!({ "folder": dir.file("delivery") }));
|
||||
assert_eq!(result["missingLinks"], json!([]), "{result}");
|
||||
let packaged = std::fs::read(dir.0.join("delivery/poster Folder/Links/part.vectorcraft")).unwrap();
|
||||
assert!(packaged.starts_with(&[0x1f, 0x8b]), "compression must be preserved");
|
||||
assert_eq!(vectorcraft_format::preview(&packaged), Some(preview));
|
||||
assert_eq!(vectorcraft_format::pdf_content(&packaged), Some(pdf));
|
||||
let nested = vectorcraft_format::load(&packaged).unwrap();
|
||||
let mut images = Vec::new();
|
||||
nested.visit_images(|_, image| images.push(image.link.clone()));
|
||||
assert_eq!(images.len(), 1);
|
||||
assert_eq!(images[0].as_ref().unwrap().relative.as_deref(), Some("photo.png"));
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue