aboutsummaryrefslogtreecommitdiff
path: root/src/zip/tests.rs
blob: d64e626ac21e62273e73cfd4f2062de889236c26 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
use crate::zip::file::{bit::DeflateMode, BitFlag};

#[test]
fn test_bit_flag() {
    macro_rules! bit_flag {
        ($($get:ident $set:ident)+) => {
            $(
                let mut bit_flag = BitFlag::new(0);

                assert_eq!(bit_flag.$get(), false);
                bit_flag.$set(true);
                assert_eq!(bit_flag.$get(), true);
                bit_flag.$set(false);
                assert_eq!(bit_flag.$get(), false);
            )+
        };
    }

    bit_flag!(
        is_encrypted           set_encrypted
        is_imploding_8k        set_imploding_8k
        is_imploding_3sf_trees set_imploding_3sf_trees
        is_lzma_has_eos_marker set_lzma_has_eos_marker
        is_has_data_descriptor set_has_data_descriptor
        is_patched_data        set_patched_data
        is_strong_encryption   set_strong_encryption
        is_utf8                set_utf8
        is_cd_encryption       set_cd_encryption
    );

    let mut bit_flag = BitFlag::new(0);

    assert_eq!(bit_flag.deflate_mode(), DeflateMode::Normal);
    bit_flag.set_deflate_mode(DeflateMode::Maximum);
    assert_eq!(bit_flag.deflate_mode(), DeflateMode::Maximum);
    bit_flag.set_deflate_mode(DeflateMode::Fast);
    assert_eq!(bit_flag.deflate_mode(), DeflateMode::Fast);
    bit_flag.set_deflate_mode(DeflateMode::SuperFast);
    assert_eq!(bit_flag.deflate_mode(), DeflateMode::SuperFast);
    bit_flag.set_deflate_mode(DeflateMode::Normal);
    assert_eq!(bit_flag.deflate_mode(), DeflateMode::Normal);
}