summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2018-04-19 21:09:21 -0300
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2018-06-20 08:08:32 -0300
commit7a449cde37950c5992ddebe9566a6360fb3bb131 (patch)
tree446542caa087c6cbcfb860016eea7a036f5bb2dd
parentc0dbc4cb773a0350f24932eda1d9bfd4034cee7f (diff)
downloadmullvadvpn-7a449cde37950c5992ddebe9566a6360fb3bb131.tar.xz
mullvadvpn-7a449cde37950c5992ddebe9566a6360fb3bb131.zip
Test if daemon progresses to connecting state
-rw-r--r--mullvad-tests/tests/connection.rs31
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);
+}