aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/files/archive_passwd.zipbin200 -> 1059 bytes
-rw-r--r--tests/zip.rs40
2 files changed, 32 insertions, 8 deletions
diff --git a/tests/files/archive_passwd.zip b/tests/files/archive_passwd.zip
index 700a343..291bd12 100644
--- a/tests/files/archive_passwd.zip
+++ b/tests/files/archive_passwd.zip
Binary files differ
diff --git a/tests/zip.rs b/tests/zip.rs
index 4f0c985..d02e96e 100644
--- a/tests/zip.rs
+++ b/tests/zip.rs
@@ -4,15 +4,38 @@ use std::io::{Read, Seek, SeekFrom};
4#[test] 4#[test]
5fn test_zip_passwd() { 5fn test_zip_passwd() {
6 let mut archive = Archive::<Zip>::read_from_file("tests/files/archive_passwd.zip").unwrap(); 6 let mut archive = Archive::<Zip>::read_from_file("tests/files/archive_passwd.zip").unwrap();
7 let mut f = archive 7
8 .get_file_reader_by_index_with_password(0, "passwd") 8 assert_eq!(archive.comment(), "archive comment");
9 .unwrap(); 9 assert_eq!(
10 let mut data = String::new(); 10 archive
11 f.read_to_string(&mut data).unwrap(); 11 .files()
12 assert_eq!(data, "test file data"); 12 .iter()
13 .map(|f| &f.name)
14 .collect::<Vec<&String>>(),
15 vec!["store", "deflate", "bzip"]
16 );
17
18 assert!(archive.get_file_reader_by_name("store").is_err());
19 assert!(archive
20 .get_file_reader_by_name_with_password("store", b"wrong_passwd")
21 .is_err());
22
23 for (name, check_data) in [
24 ("store", "1e643774f40510e37c6f3c451d9d"),
25 ("deflate", "a70aff4b6b2754ad47852503236a"),
26 ("bzip", "f7085f4f8ecc512a8c2c3cbe8227"),
27 ] {
28 let mut f = archive
29 .get_file_reader_by_name_with_password(name, b"passwd")
30 .unwrap();
31 let mut data = String::new();
32 f.read_to_string(&mut data).unwrap();
33 assert_eq!(&data[..24], "test encrypted file data");
34 assert_eq!(&data[172..], check_data);
35 }
13} 36}
14 37
15// #[test] 38#[test]
16fn test_zip() { 39fn test_zip() {
17 let mut archive = Archive::<Zip>::read_from_file("tests/files/archive.zip").unwrap(); 40 let mut archive = Archive::<Zip>::read_from_file("tests/files/archive.zip").unwrap();
18 41
@@ -54,7 +77,7 @@ fn test_zip() {
54 77
55 f.seek(SeekFrom::Start(7)).unwrap(); 78 f.seek(SeekFrom::Start(7)).unwrap();
56 assert_eq!(f.seek(SeekFrom::Current(0)).unwrap(), 7); 79 assert_eq!(f.seek(SeekFrom::Current(0)).unwrap(), 7);
57 f.seek(SeekFrom::End(-100)).unwrap_err(); 80 assert!(f.seek(SeekFrom::End(-100)).is_err());
58 assert_eq!(f.seek(SeekFrom::Current(0)).unwrap(), 7); 81 assert_eq!(f.seek(SeekFrom::Current(0)).unwrap(), 7);
59 82
60 assert_eq!(f.seek(SeekFrom::Start(100)).unwrap(), 14); 83 assert_eq!(f.seek(SeekFrom::Start(100)).unwrap(), 14);
@@ -64,5 +87,6 @@ fn test_zip() {
64 let mut data = String::new(); 87 let mut data = String::new();
65 f.read_to_string(&mut data).unwrap(); 88 f.read_to_string(&mut data).unwrap();
66 assert_eq!(data, "test file data"); 89 assert_eq!(data, "test file data");
90 assert!(!f.is_seekable() || f.info().name == "store")
67 } 91 }
68} 92}