diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/device.rs | 34 | 
1 files changed, 33 insertions, 1 deletions
| diff --git a/tests/device.rs b/tests/device.rs index 6f21dcb..9985e7a 100644 --- a/tests/device.rs +++ b/tests/device.rs @@ -6,7 +6,7 @@ use std::{thread, time};  use nitrokey::{      Authenticate, CommandError, Config, ConfigureOtp, Device, GenerateOtp, GetPasswordSafe, -    OtpMode, OtpSlotData, +    OtpMode, OtpSlotData, Storage, VolumeMode,  };  use nitrokey_test::test as test_device; @@ -399,6 +399,38 @@ fn lock(device: Storage) {  }  #[test_device] +fn set_unencrypted_volume_mode(device: Storage) { +    fn assert_mode(device: &Storage, mode: VolumeMode) { +        let status = device.get_status(); +        assert!(status.is_ok()); +        assert_eq!( +            status.unwrap().unencrypted_volume.read_only, +            mode == VolumeMode::ReadOnly +        ); +    } + +    fn assert_success(device: &Storage, mode: VolumeMode) { +        assert_eq!( +            Ok(()), +            device.set_unencrypted_volume_mode(ADMIN_PASSWORD, mode) +        ); +        assert_mode(&device, mode); +    } + +    assert_success(&device, VolumeMode::ReadOnly); + +    assert_eq!( +        Err(CommandError::WrongPassword), +        device.set_unencrypted_volume_mode(USER_PASSWORD, VolumeMode::ReadOnly) +    ); +    assert_mode(&device, VolumeMode::ReadOnly); + +    assert_success(&device, VolumeMode::ReadWrite); +    assert_success(&device, VolumeMode::ReadWrite); +    assert_success(&device, VolumeMode::ReadOnly); +} + +#[test_device]  fn get_storage_status(device: Storage) {      let status = device.get_status().unwrap(); | 
