summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2018-04-28 09:01:06 -0300
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2018-07-03 10:53:20 -0300
commit771cd589cf50cca9fbe070e96fb25b77dbe73ee7 (patch)
tree0fb77abadbb8f18b628eb8ca45752f9bf6e5cd76
parent56a2f63582f192e4468bd83a7dad4e2b665ee8d2 (diff)
downloadmullvadvpn-771cd589cf50cca9fbe070e96fb25b77dbe73ee7.tar.xz
mullvadvpn-771cd589cf50cca9fbe070e96fb25b77dbe73ee7.zip
Create `search_openvpn_args` helper function
-rw-r--r--mullvad-tests/src/mock_openvpn/mod.rs21
-rw-r--r--mullvad-tests/tests/connection.rs16
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()