diff options
Diffstat (limited to 'tests/storage.rs')
| -rw-r--r-- | tests/storage.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/storage.rs b/tests/storage.rs index e6ad2d1..21e76d4 100644 --- a/tests/storage.rs +++ b/tests/storage.rs | |||
| @@ -89,6 +89,27 @@ fn forgetting_one_address_keeps_the_shared_credentials() { | |||
| 89 | } | 89 | } |
| 90 | 90 | ||
| 91 | #[test] | 91 | #[test] |
| 92 | fn forgetting_the_login_keeps_the_trusted_key() { | ||
| 93 | let (_, conn) = tmp_db("creds-forget-login"); | ||
| 94 | client_database::init_db(&conn); | ||
| 95 | |||
| 96 | client_database::save_host(&conn, "127.0.0.1:11525"); | ||
| 97 | client_database::save_fingerprint(&conn, "127.0.0.1:11525", "server-a").unwrap(); | ||
| 98 | client_database::save_credentials(&conn, "server-a", "alice", "pw").unwrap(); | ||
| 99 | |||
| 100 | assert!(client_database::forget_credentials(&conn, "server-a").unwrap()); | ||
| 101 | assert_eq!(client_database::get_credentials(&conn, "server-a"), None); | ||
| 102 | assert_eq!( | ||
| 103 | client_database::get_fingerprint(&conn, "127.0.0.1:11525"), | ||
| 104 | Some("server-a".to_string()), | ||
| 105 | "forgetting the login must not unpin the key" | ||
| 106 | ); | ||
| 107 | |||
| 108 | // A second call is a no-op, not an error. | ||
| 109 | assert!(!client_database::forget_credentials(&conn, "server-a").unwrap()); | ||
| 110 | } | ||
| 111 | |||
| 112 | #[test] | ||
| 92 | fn client_last_host_tracking() { | 113 | fn client_last_host_tracking() { |
| 93 | let (_, conn) = tmp_db("hosts"); | 114 | let (_, conn) = tmp_db("hosts"); |
| 94 | client_database::init_db(&conn); | 115 | client_database::init_db(&conn); |
