From 63cfa7d319bb5b5620087ac199abf5d057284e42 Mon Sep 17 00:00:00 2001 From: Chris Hennick <4961925+Pr0methean@users.noreply.github.com> Date: Fri, 14 Jun 2024 13:31:52 -0700 Subject: [PATCH] test: Fix the invalid-extra-data test and add a new one --- src/write.rs | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/write.rs b/src/write.rs index c99c67c4..484eaff9 100644 --- a/src/write.rs +++ b/src/write.rs @@ -1933,7 +1933,7 @@ const EXTRA_FIELD_MAPPING: [u16; 43] = [ #[allow(unknown_lints)] // needless_update is new in clippy pre 1.29.0 #[allow(clippy::needless_update)] // So we can use the same FileOptions decls with and without zopfli_buffer_size mod test { - use super::{FileOptions, ZipWriter}; + use super::{ExtendedFileOptions, FileOptions, ZipWriter}; use crate::compression::CompressionMethod; use crate::result::ZipResult; use crate::types::DateTime; @@ -2555,11 +2555,23 @@ mod test { } #[test] - #[cfg(feature = "aes-crypto")] + fn test_short_extra_data() { + let mut writer = ZipWriter::new(Cursor::new(Vec::new())); + writer.set_flush_on_finish_file(false); + let options = FileOptions { + extended_options: ExtendedFileOptions { + extra_data: vec![].into(), + central_extra_data: vec![99, 0, 15, 0, 207].into(), + }, + ..Default::default() + }; + assert!(writer.start_file_from_path("", options).is_err()); + } + + #[test] + #[cfg(not(feature = "unreserved"))] fn test_invalid_extra_data() -> ZipResult<()> { - use crate::write::EncryptWith::Aes; use crate::write::ExtendedFileOptions; - use crate::AesMode::Aes256; let mut writer = ZipWriter::new(Cursor::new(Vec::new())); writer.set_flush_on_finish_file(false); let options = FileOptions { @@ -2568,10 +2580,7 @@ mod test { last_modified_time: DateTime::from_date_and_time(1980, 1, 4, 6, 54, 0)?, permissions: None, large_file: false, - encrypt_with: Some(Aes { - mode: Aes256, - password: "", - }), + encrypt_with: None, extended_options: ExtendedFileOptions { extra_data: vec![].into(), central_extra_data: vec![