aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorIgor Tolmachev <me@igorek.dev>2024-07-01 19:12:40 +0900
committerIgor Tolmachev <me@igorek.dev>2024-07-02 18:59:00 +0900
commit5d3d32ded672b67471d9d7c85ebbe691129cc51c (patch)
tree1f9a82196d69cfec34af595a659e4d74a80b0c92 /tests
parent6d5f8f046b3b24e50cb1a0e7751c6bc9170ed9d1 (diff)
downloadarchivator-5d3d32ded672b67471d9d7c85ebbe691129cc51c.tar.gz
archivator-5d3d32ded672b67471d9d7c85ebbe691129cc51c.zip
Add compression support (lzma and xz are broken)
Diffstat (limited to 'tests')
-rw-r--r--tests/files/archive.zipbin0 -> 609 bytes
-rw-r--r--tests/files/zip.zipbin466 -> 0 bytes
-rw-r--r--tests/zip.rs34
3 files changed, 22 insertions, 12 deletions
diff --git a/tests/files/archive.zip b/tests/files/archive.zip
new file mode 100644
index 0000000..f5c0137
--- /dev/null
+++ b/tests/files/archive.zip
Binary files differ
diff --git a/tests/files/zip.zip b/tests/files/zip.zip
deleted file mode 100644
index f3a090b..0000000
--- a/tests/files/zip.zip
+++ /dev/null
Binary files differ
diff --git a/tests/zip.rs b/tests/zip.rs
index e5872c5..eb195f2 100644
--- a/tests/zip.rs
+++ b/tests/zip.rs
@@ -3,7 +3,7 @@ use std::io::{Read, Seek, SeekFrom};
3 3
4#[test] 4#[test]
5fn test_zip() { 5fn test_zip() {
6 let mut archive = Archive::<Zip<_>>::read_from_file("tests/files/zip.zip").unwrap(); 6 let mut archive = Archive::<Zip<_>>::read_from_file("tests/files/archive.zip").unwrap();
7 7
8 assert_eq!(archive.comment(), "archive comment"); 8 assert_eq!(archive.comment(), "archive comment");
9 assert_eq!( 9 assert_eq!(
@@ -12,36 +12,46 @@ fn test_zip() {
12 .iter() 12 .iter()
13 .map(|f| &f.name) 13 .map(|f| &f.name)
14 .collect::<Vec<&String>>(), 14 .collect::<Vec<&String>>(),
15 vec!["b", "c", "a"] 15 vec!["bzip", "deflate", "lzma", "store", "xz"]
16 ); 16 );
17 17
18 let mut f = archive.get_file_reader(2).unwrap(); 18 let mut f = archive.get_file_reader("store").unwrap();
19 19
20 let mut data = String::new(); 20 let mut data = String::new();
21 f.read_to_string(&mut data).unwrap(); 21 f.read_to_string(&mut data).unwrap();
22 assert_eq!(data, "file data \"a\""); 22 assert_eq!(data, "test file data");
23 23
24 assert_eq!(f.seek(SeekFrom::Start(5)).unwrap(), 5); 24 assert_eq!(f.seek(SeekFrom::Start(5)).unwrap(), 5);
25 let mut data = String::new(); 25 let mut data = String::new();
26 f.read_to_string(&mut data).unwrap(); 26 f.read_to_string(&mut data).unwrap();
27 assert_eq!(data, "data \"a\""); 27 assert_eq!(data, "file data");
28 28
29 assert_eq!(f.seek(SeekFrom::Start(0)).unwrap(), 0); 29 assert_eq!(f.seek(SeekFrom::Start(0)).unwrap(), 0);
30 let mut data = vec![0; 4]; 30 let mut data = vec![0; 4];
31 f.read(&mut data).unwrap(); 31 f.read(&mut data).unwrap();
32 assert_eq!(String::from_utf8(data).unwrap(), "file"); 32 assert_eq!(String::from_utf8(data).unwrap(), "test");
33 33
34 assert_eq!(f.seek(SeekFrom::Current(1)).unwrap(), 5); 34 assert_eq!(f.seek(SeekFrom::Current(1)).unwrap(), 5);
35 let mut data = vec![0; 4]; 35 let mut data = vec![0; 4];
36 f.read(&mut data).unwrap(); 36 f.read(&mut data).unwrap();
37 assert_eq!(String::from_utf8(data).unwrap(), "data"); 37 assert_eq!(String::from_utf8(data).unwrap(), "file");
38 38
39 assert_eq!(f.seek(SeekFrom::End(-3)).unwrap(), 10); 39 assert_eq!(f.seek(SeekFrom::End(-4)).unwrap(), 10);
40 let mut data = vec![0; 3]; 40 let mut data = vec![0; 4];
41 f.read(&mut data).unwrap(); 41 f.read(&mut data).unwrap();
42 assert_eq!(String::from_utf8(data).unwrap(), "\"a\""); 42 assert_eq!(String::from_utf8(data).unwrap(), "data");
43 43
44 assert_eq!(f.seek(SeekFrom::Current(0)).unwrap(), 13); 44 f.seek(SeekFrom::Start(7)).unwrap();
45 assert_eq!(f.seek(SeekFrom::Current(0)).unwrap(), 7);
45 f.seek(SeekFrom::End(-100)).unwrap_err(); 46 f.seek(SeekFrom::End(-100)).unwrap_err();
46 assert_eq!(f.seek(SeekFrom::Current(0)).unwrap(), 13); 47 assert_eq!(f.seek(SeekFrom::Current(0)).unwrap(), 7);
48
49 assert_eq!(f.seek(SeekFrom::Start(100)).unwrap(), 14);
50
51 for name in ["store", "deflate", "bzip", "lzma", "xz"] {
52 let mut f = archive.get_file_reader(name).unwrap();
53 let mut data = String::new();
54 f.read_to_string(&mut data).unwrap();
55 assert_eq!(data, "test file data");
56 }
47} 57}