diff options
| author | Igor Tolmachev <me@igorek.dev> | 2024-07-01 19:12:40 +0900 |
|---|---|---|
| committer | Igor Tolmachev <me@igorek.dev> | 2024-07-02 18:59:00 +0900 |
| commit | 5d3d32ded672b67471d9d7c85ebbe691129cc51c (patch) | |
| tree | 1f9a82196d69cfec34af595a659e4d74a80b0c92 /tests/zip.rs | |
| parent | 6d5f8f046b3b24e50cb1a0e7751c6bc9170ed9d1 (diff) | |
| download | archivator-5d3d32ded672b67471d9d7c85ebbe691129cc51c.tar.gz archivator-5d3d32ded672b67471d9d7c85ebbe691129cc51c.zip | |
Add compression support (lzma and xz are broken)
Diffstat (limited to 'tests/zip.rs')
| -rw-r--r-- | tests/zip.rs | 34 |
1 files changed, 22 insertions, 12 deletions
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] |
| 5 | fn test_zip() { | 5 | fn 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 | } |
