[network-manager-openvpn/th/ovpn-import-bgo761285: 8/22] properties: don't store imported certifacates in home directory during tests
- From: Thomas Haller <thaller src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [network-manager-openvpn/th/ovpn-import-bgo761285: 8/22] properties: don't store imported certifacates in home directory during tests
- Date: Wed, 3 Feb 2016 17:30:50 +0000 (UTC)
commit 46a28c0495fdfbd8e64802387563eb8c70090522
Author: Thomas Haller <thaller redhat com>
Date: Thu Jan 28 23:49:36 2016 +0100
properties: don't store imported certifacates in home directory during tests
When testing importing, we should not store the certificate in the users
home directory, instead hack it up to place it in the test directory.
properties/import-export.c | 32 ++++++++++++++++++++------------
properties/import-export.h | 2 ++
properties/tests/test-import-export.c | 4 ++++
3 files changed, 26 insertions(+), 12 deletions(-)
---
diff --git a/properties/import-export.c b/properties/import-export.c
index 675d394..96e543d 100644
--- a/properties/import-export.c
+++ b/properties/import-export.c
@@ -88,6 +88,8 @@
#define TAG_TUN_MTU "tun-mtu"
+const char *_nmovpn_test_temp_path = NULL;
+
static void
__attribute__((__format__ (__printf__, 3, 4)))
setting_vpn_add_data_item_v (NMSettingVpn *setting,
@@ -1102,7 +1104,6 @@ do_import (const char *path, const char *contents, gsize contents_len, GError **
gsize end_token_len;
gsize my_contents_cur_line = contents_cur_line;
gs_free char *f_filename = NULL;
- gs_free char *f_dirname = NULL;
gs_free char *f_path = NULL;
const char *key;
gboolean can_have_direction = FALSE;
@@ -1155,19 +1156,26 @@ do_import (const char *path, const char *contents, gsize contents_len, GError **
/* Construct file name to write the data in */
f_filename = g_strdup_printf ("%s-%s.pem", basename, token);
- f_dirname = g_build_filename (g_get_home_dir (), ".cert", NULL);
- f_path = g_build_filename (f_dirname, f_filename, NULL);
-
- /* Check that dirname exists and is a directory, otherwise create it */
- if (!g_file_test (f_dirname, G_FILE_TEST_IS_DIR)) {
- if (!g_file_test (f_dirname, G_FILE_TEST_EXISTS)) {
- if (mkdir (f_dirname, 0755) < 0) {
- line_error = g_strdup_printf (_("cannot create .cert
directory for %s blob"), token);
+
+ if (_nmovpn_test_temp_path) {
+ f_path = g_build_filename (_nmovpn_test_temp_path, f_filename, NULL);
+ } else {
+ gs_free char *f_dirname = NULL;
+
+ f_dirname = g_build_filename (g_get_home_dir (), ".cert", NULL);
+ f_path = g_build_filename (f_dirname, f_filename, NULL);
+
+ /* Check that dirname exists and is a directory, otherwise create it */
+ if (!g_file_test (f_dirname, G_FILE_TEST_IS_DIR)) {
+ if (!g_file_test (f_dirname, G_FILE_TEST_EXISTS)) {
+ if (mkdir (f_dirname, 0755) < 0) {
+ line_error = g_strdup_printf (_("cannot create .cert
directory for %s blob"), token);
+ goto handle_line_error;
+ }
+ } else {
+ line_error = g_strdup_printf (_(".cert directory is not
usable for %s blob"), token);
goto handle_line_error;
}
- } else {
- line_error = g_strdup_printf (_(".cert directory is not usable for %s
blob"), token);
- goto handle_line_error;
}
}
diff --git a/properties/import-export.h b/properties/import-export.h
index da46c97..91e079f 100644
--- a/properties/import-export.h
+++ b/properties/import-export.h
@@ -30,6 +30,8 @@
#include <NetworkManager.h>
#endif
+extern const char *_nmovpn_test_temp_path;
+
gboolean _nmovpn_test_args_parse_line (const char *line,
gsize line_len,
const char ***out_p,
diff --git a/properties/tests/test-import-export.c b/properties/tests/test-import-export.c
index 8b629bf..1c93a98 100644
--- a/properties/tests/test-import-export.c
+++ b/properties/tests/test-import-export.c
@@ -398,6 +398,8 @@ test_tls_inline_import (NMVpnEditorPlugin *plugin, const char *dir)
test_secret ("tls-import-secrets", s_vpn, NM_OPENVPN_KEY_PASSWORD, NULL);
test_secret ("tls-import-secrets", s_vpn, NM_OPENVPN_KEY_CERTPASS, NULL);
+ g_assert (unlink (TEST_BUILDDIR_CONF"/tls-inline-tls-auth.pem") == 0);
+
g_object_unref (connection);
}
@@ -1454,6 +1456,8 @@ int main (int argc, char **argv)
g_type_init ();
#endif
+ _nmovpn_test_temp_path = TEST_BUILDDIR_CONF;
+
plugin = nm_vpn_editor_plugin_factory (&error);
if (error)
FAIL ("plugin-init", "failed to initialize UI plugin: %s", error->message);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]