aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/files/zip.zipbin427 -> 466 bytes
-rw-r--r--tests/zip.rs33
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 @@
1use archivator::{Archive, Zip}; 1use archivator::{Archive, Zip};
2use std::io::{Read, Seek, SeekFrom};
2 3
3#[test] 4#[test]
4fn test_zip() { 5fn 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}