diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2018-04-19 21:09:21 -0300 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2018-06-20 08:08:32 -0300 |
| commit | 7a449cde37950c5992ddebe9566a6360fb3bb131 (patch) | |
| tree | 446542caa087c6cbcfb860016eea7a036f5bb2dd | |
| parent | c0dbc4cb773a0350f24932eda1d9bfd4034cee7f (diff) | |
| download | mullvadvpn-7a449cde37950c5992ddebe9566a6360fb3bb131.tar.xz mullvadvpn-7a449cde37950c5992ddebe9566a6360fb3bb131.zip | |
Test if daemon progresses to connecting state
| -rw-r--r-- | mullvad-tests/tests/connection.rs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/mullvad-tests/tests/connection.rs b/mullvad-tests/tests/connection.rs index 217e67f05a..6ae8fca6b1 100644 --- a/mullvad-tests/tests/connection.rs +++ b/mullvad-tests/tests/connection.rs @@ -1,10 +1,20 @@ #![cfg(target_os = "linux")] +extern crate mullvad_ipc_client; extern crate mullvad_tests; +extern crate mullvad_types; +use std::sync::mpsc; use std::time::Duration; +use mullvad_ipc_client::DaemonRpcClient; use mullvad_tests::{wait_for_file_write_finish, DaemonRunner}; +use mullvad_types::states::{DaemonState, SecurityState, TargetState}; + +const CONNECTING_STATE: DaemonState = DaemonState { + state: SecurityState::Unsecured, + target_state: TargetState::Secured, +}; #[test] fn spawns_openvpn() { @@ -21,3 +31,24 @@ fn spawns_openvpn() { assert!(openvpn_args_file.exists()); } + +#[test] +fn changes_to_connecting_state() { + let mut daemon = DaemonRunner::spawn(); + let mut rpc_client = daemon.rpc_client().unwrap(); + let state_events = rpc_client.new_state_subscribe().unwrap(); + + rpc_client.set_account(Some("123456".to_owned())).unwrap(); + rpc_client.connect().unwrap(); + + assert_state_event(state_events, CONNECTING_STATE); + assert_eq!(rpc_client.get_state().unwrap(), CONNECTING_STATE); +} + +fn assert_state_event(receiver: mpsc::Receiver<DaemonState>, expected_state: DaemonState) { + let received_state = receiver + .recv_timeout(Duration::from_secs(1)) + .expect("Failed to receive new state event from daemon"); + + assert_eq!(received_state, expected_state); +} |
