diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2018-04-28 09:01:06 -0300 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2018-07-03 10:53:20 -0300 |
| commit | 771cd589cf50cca9fbe070e96fb25b77dbe73ee7 (patch) | |
| tree | 0fb77abadbb8f18b628eb8ca45752f9bf6e5cd76 | |
| parent | 56a2f63582f192e4468bd83a7dad4e2b665ee8d2 (diff) | |
| download | mullvadvpn-771cd589cf50cca9fbe070e96fb25b77dbe73ee7.tar.xz mullvadvpn-771cd589cf50cca9fbe070e96fb25b77dbe73ee7.zip | |
Create `search_openvpn_args` helper function
| -rw-r--r-- | mullvad-tests/src/mock_openvpn/mod.rs | 21 | ||||
| -rw-r--r-- | mullvad-tests/tests/connection.rs | 16 |
2 files changed, 24 insertions, 13 deletions
diff --git a/mullvad-tests/src/mock_openvpn/mod.rs b/mullvad-tests/src/mock_openvpn/mod.rs index ce169e99be..56e2514970 100644 --- a/mullvad-tests/src/mock_openvpn/mod.rs +++ b/mullvad-tests/src/mock_openvpn/mod.rs @@ -1 +1,22 @@ pub const MOCK_OPENVPN_ARGS_FILE: &str = "mock_openvpn_args"; + +use std::fs::File; +use std::io::{self, BufRead, BufReader}; +use std::path::Path; + +pub fn search_openvpn_args<P: AsRef<Path>>( + openvpn_args_file_path: P, + search_item: &'static str, +) -> impl Iterator<Item = io::Result<String>> { + let args_file_path = openvpn_args_file_path.as_ref(); + let args_file = File::open(&args_file_path).expect(&format!( + "Failed to open mock OpenVPN arguments file: {}", + args_file_path.display(), + )); + + let args = BufReader::new(args_file).lines(); + + args.skip_while(move |element| { + element.is_ok() && !element.as_ref().unwrap().contains(search_item) + }) +} diff --git a/mullvad-tests/tests/connection.rs b/mullvad-tests/tests/connection.rs index 25413637e1..91a110fd8a 100644 --- a/mullvad-tests/tests/connection.rs +++ b/mullvad-tests/tests/connection.rs @@ -4,12 +4,12 @@ extern crate mullvad_ipc_client; extern crate mullvad_tests; extern crate mullvad_types; -use std::fs::{self, File}; -use std::io::{BufRead, BufReader}; +use std::fs; use std::path::Path; use std::sync::mpsc; use std::time::Duration; +use mullvad_tests::mock_openvpn::search_openvpn_args; use mullvad_tests::{wait_for_file_write_finish, DaemonRunner, MockOpenVpnPluginRpcClient}; use mullvad_types::states::{DaemonState, SecurityState, TargetState}; @@ -267,17 +267,7 @@ fn get_plugin_arguments<P: AsRef<Path>>(openvpn_args_file_path: P) -> (String, S wait_for_file_write_finish(&args_file_path, Duration::from_secs(5)); - let args_file = File::open(&args_file_path).expect(&format!( - "Failed to open mock OpenVPN command-line file: {}", - args_file_path.display(), - )); - - let args_reader = BufReader::new(args_file).lines(); - let mut arguments = args_reader - .skip_while(|element| { - element.is_ok() && !element.as_ref().unwrap().contains(OPENVPN_PLUGIN_NAME) - }) - .skip(1); + let mut arguments = search_openvpn_args(&args_file_path, OPENVPN_PLUGIN_NAME).skip(1); let address = arguments .next() |
