diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/files/zip.zip | bin | 427 -> 466 bytes | |||
| -rw-r--r-- | tests/zip.rs | 33 |
2 files changed, 32 insertions, 1 deletions
diff --git a/tests/files/zip.zip b/tests/files/zip.zip index e17bbb7..f3a090b 100644 --- a/tests/files/zip.zip +++ b/tests/files/zip.zip | |||
| Binary files differ | |||
diff --git a/tests/zip.rs b/tests/zip.rs index 65244c1..25f1f76 100644 --- a/tests/zip.rs +++ b/tests/zip.rs | |||
| @@ -1,8 +1,9 @@ | |||
| 1 | use archivator::{Archive, Zip}; | 1 | use archivator::{Archive, Zip}; |
| 2 | use std::io::{Read, Seek, SeekFrom}; | ||
| 2 | 3 | ||
| 3 | #[test] | 4 | #[test] |
| 4 | fn test_zip() { | 5 | fn test_zip() { |
| 5 | let archive = Archive::<Zip<_>>::read_from_file("tests/files/zip.zip").unwrap(); | 6 | let mut archive = Archive::<Zip<_>>::read_from_file("tests/files/zip.zip").unwrap(); |
| 6 | 7 | ||
| 7 | assert_eq!(archive.comment(), "archive comment"); | 8 | assert_eq!(archive.comment(), "archive comment"); |
| 8 | assert_eq!( | 9 | assert_eq!( |
| @@ -13,4 +14,34 @@ fn test_zip() { | |||
| 13 | .collect::<Vec<&String>>(), | 14 | .collect::<Vec<&String>>(), |
| 14 | vec!["a", "b", "c"] | 15 | vec!["a", "b", "c"] |
| 15 | ); | 16 | ); |
| 17 | |||
| 18 | let mut f = archive.get_file_reader("a").unwrap(); | ||
| 19 | |||
| 20 | let mut data = String::new(); | ||
| 21 | f.read_to_string(&mut data).unwrap(); | ||
| 22 | assert_eq!(data, "file data \"a\""); | ||
| 23 | |||
| 24 | assert_eq!(f.seek(SeekFrom::Start(5)).unwrap(), 5); | ||
| 25 | let mut data = String::new(); | ||
| 26 | f.read_to_string(&mut data).unwrap(); | ||
| 27 | assert_eq!(data, "data \"a\""); | ||
| 28 | |||
| 29 | assert_eq!(f.seek(SeekFrom::Start(0)).unwrap(), 0); | ||
| 30 | let mut data = vec![0; 4]; | ||
| 31 | f.read(&mut data).unwrap(); | ||
| 32 | assert_eq!(String::from_utf8(data).unwrap(), "file"); | ||
| 33 | |||
| 34 | assert_eq!(f.seek(SeekFrom::Current(1)).unwrap(), 5); | ||
| 35 | let mut data = vec![0; 4]; | ||
| 36 | f.read(&mut data).unwrap(); | ||
| 37 | assert_eq!(String::from_utf8(data).unwrap(), "data"); | ||
| 38 | |||
| 39 | assert_eq!(f.seek(SeekFrom::End(-3)).unwrap(), 10); | ||
| 40 | let mut data = vec![0; 3]; | ||
| 41 | f.read(&mut data).unwrap(); | ||
| 42 | assert_eq!(String::from_utf8(data).unwrap(), "\"a\""); | ||
| 43 | |||
| 44 | assert_eq!(f.seek(SeekFrom::Current(0)).unwrap(), 13); | ||
| 45 | f.seek(SeekFrom::End(-100)).unwrap_err(); | ||
| 46 | assert_eq!(f.seek(SeekFrom::Current(0)).unwrap(), 13); | ||
| 16 | } | 47 | } |
