diff options
| -rw-r--r-- | src/tests/pro.rs | 50 | 
1 files changed, 19 insertions, 31 deletions
| diff --git a/src/tests/pro.rs b/src/tests/pro.rs index 76d68a0..8394e47 100644 --- a/src/tests/pro.rs +++ b/src/tests/pro.rs @@ -24,6 +24,15 @@ static TOTP_CODES: &[(u64, &str)] = &[      (20000000000, "65353130"),  ]; +fn get_test_device() -> UnauthenticatedDevice { +    set_debug(false); +    ::connect_model(Model::Pro).expect("Could not connect to the Nitrokey Pro.") +} + +fn get_admin_test_device() -> AdminAuthenticatedDevice { +    get_test_device().authenticate_admin(ADMIN_PASSWORD).expect("Could not login as admin.") +} +  #[test]  #[cfg_attr(not(feature = "test-pro"), ignore)]  fn connect() { @@ -49,8 +58,7 @@ fn disconnect() {  #[test]  #[cfg_attr(not(feature = "test-pro"), ignore)]  fn get_serial_number() { -    set_debug(false); -    let device = ::connect().unwrap(); +    let device = get_test_device();      let result = device.get_serial_number();      assert!(result.is_ok());      let serial_number = result.unwrap(); @@ -76,9 +84,7 @@ where  #[test]  #[cfg_attr(not(feature = "test-pro"), ignore)]  fn hotp() { -    set_debug(false); -    let device = ::connect().unwrap(); -    let admin = device.authenticate_admin(ADMIN_PASSWORD).unwrap(); +    let admin = get_admin_test_device();      let config = Config::new(None, None, None, false);      assert_eq!(CommandStatus::Success, admin.write_config(config)); @@ -92,9 +98,7 @@ fn hotp() {  #[test]  #[cfg_attr(not(feature = "test-pro"), ignore)]  fn hotp_pin() { -    set_debug(false); -    let device = ::connect().unwrap(); -    let admin = device.authenticate_admin(ADMIN_PASSWORD).unwrap(); +    let admin = get_admin_test_device();      let config = Config::new(None, None, None, true);      assert_eq!(CommandStatus::Success, admin.write_config(config)); @@ -109,10 +113,7 @@ fn hotp_pin() {  #[test]  #[cfg_attr(not(feature = "test-pro"), ignore)]  fn hotp_slot_name() { -    set_debug(false); -    let device = ::connect().unwrap(); - -    let admin = device.authenticate_admin(ADMIN_PASSWORD).unwrap(); +    let admin = get_admin_test_device();      let slot_data = OtpSlotData::new(1, "test-hotp", HOTP_SECRET, OtpMode::SixDigits);      assert_eq!(CommandStatus::Success, admin.write_hotp_slot(slot_data, 0)); @@ -146,9 +147,7 @@ where  #[cfg_attr(not(feature = "test-pro"), ignore)]  fn totp() {      // TODO: this test may fail due to bad timing --> find solution -    set_debug(false); -    let device = ::connect().unwrap(); -    let admin = device.authenticate_admin(ADMIN_PASSWORD).unwrap(); +    let admin = get_admin_test_device();      let config = Config::new(None, None, None, false);      assert_eq!(CommandStatus::Success, admin.write_config(config)); @@ -163,9 +162,7 @@ fn totp() {  #[cfg_attr(not(feature = "test-pro"), ignore)]  fn totp_pin() {      // TODO: this test may fail due to bad timing --> find solution -    set_debug(false); -    let device = ::connect().unwrap(); -    let admin = device.authenticate_admin(ADMIN_PASSWORD).unwrap(); +    let admin = get_admin_test_device();      let config = Config::new(None, None, None, true);      assert_eq!(CommandStatus::Success, admin.write_config(config)); @@ -180,10 +177,7 @@ fn totp_pin() {  #[test]  #[cfg_attr(not(feature = "test-pro"), ignore)]  fn totp_slot_name() { -    set_debug(false); -    let device = ::connect().unwrap(); - -    let admin = device.authenticate_admin(ADMIN_PASSWORD).unwrap(); +    let admin = get_admin_test_device();      let slot_data = OtpSlotData::new(1, "test-totp", TOTP_SECRET, OtpMode::EightDigits);      assert_eq!(CommandStatus::Success, admin.write_totp_slot(slot_data, 0)); @@ -195,8 +189,7 @@ fn totp_slot_name() {  #[test]  #[cfg_attr(not(feature = "test-pro"), ignore)]  fn get_firmware_version() { -    set_debug(false); -    let device = ::connect().unwrap(); +    let device = get_test_device();      assert_eq!(0, device.get_major_firmware_version());      let minor = device.get_minor_firmware_version();      assert!(minor == 7 || minor == 8); @@ -225,8 +218,7 @@ fn user_retry(device: UnauthenticatedDevice, suffix: &str, count: u8) -> Unauthe  #[test]  #[cfg_attr(not(feature = "test-pro"), ignore)]  fn get_retry_count() { -    set_debug(false); -    let device = ::connect().unwrap(); +    let device = get_test_device();      let device = admin_retry(device, "", 3);      let device = admin_retry(device, "123", 2); @@ -242,11 +234,7 @@ fn get_retry_count() {  #[test]  #[cfg_attr(not(feature = "test-pro"), ignore)]  fn read_write_config() { -    set_debug(false); -    let device = ::connect().unwrap(); - -    let admin = device.authenticate_admin(ADMIN_PASSWORD).unwrap(); - +    let admin = get_admin_test_device();      let config = Config::new(None, None, None, true);      assert_eq!(CommandStatus::Success, admin.write_config(config));      let get_config = admin.get_config().unwrap(); | 
