summaryrefslogtreecommitdiff
path: root/src/tests/pro.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/pro.rs')
-rw-r--r--src/tests/pro.rs50
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();