diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/files/archive.zip | bin | 0 -> 609 bytes | |||
| -rw-r--r-- | tests/files/zip.zip | bin | 466 -> 0 bytes | |||
| -rw-r--r-- | tests/zip.rs | 34 |
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] |
| 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 | } |
