about summary refs log tree commit diff
path: root/src/devices/wwan/tests
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/wwan/tests')
-rw-r--r--src/devices/wwan/tests/test-service-providers.c124
-rw-r--r--src/devices/wwan/tests/test-service-providers.xml73
2 files changed, 197 insertions, 0 deletions
diff --git a/src/devices/wwan/tests/test-service-providers.c b/src/devices/wwan/tests/test-service-providers.c
new file mode 100644
index 00000000..33402cd5
--- /dev/null
+++ b/src/devices/wwan/tests/test-service-providers.c
@@ -0,0 +1,124 @@
+// SPDX-License-Identifier: LGPL-2.1+
+/*
+ * Copyright (C) 2019 Red Hat
+ */
+
+#include "nm-default.h"
+
+#include "nm-service-providers.h"
+
+#include "nm-test-utils-core.h"
+
+static void
+test_positive_cb (const char *apn,
+                  const char *username,
+                  const char *password,
+                  const char *gateway,
+                  const char *auth_method,
+                  const GSList *dns,
+                  GError *error,
+                  gpointer user_data)
+{
+	GMainLoop *loop = user_data;
+
+	g_main_loop_quit (loop);
+	g_assert_no_error (error);
+	g_assert_cmpstr (apn, ==, "gprs.example.com");
+	g_assert_cmpstr (username, ==, "praise");
+	g_assert_cmpstr (password, ==, "santa");
+	g_assert_cmpstr (gateway, ==, "192.0.2.3");
+	g_assert_cmpstr (auth_method, ==, "pap");
+
+	g_assert_nonnull (dns);
+	g_assert_cmpstr (dns->data, ==, "192.0.2.2");
+	dns = dns->next;
+	g_assert_nonnull (dns);
+	g_assert_cmpstr (dns->data, ==, "192.0.2.1");
+	g_assert_null (dns->next);
+}
+
+static void
+test_positive (void)
+{
+	GMainLoop *loop = g_main_loop_new (NULL, FALSE);
+
+	nm_service_providers_find_gsm_apn (NM_BUILD_SRCDIR"/src/devices/wwan/tests/test-service-providers.xml",
+	                                   "13337", NULL, test_positive_cb, loop);
+	g_main_loop_run (loop);
+	g_main_loop_unref (loop);
+}
+
+/*****************************************************************************/
+
+static void
+test_negative_cb (const char *apn,
+                  const char *username,
+                  const char *password,
+                  const char *gateway,
+                  const char *auth_method,
+                  const GSList *dns,
+                  GError *error,
+                  gpointer user_data)
+{
+	GMainLoop *loop = user_data;
+
+	g_main_loop_quit (loop);
+	g_assert_error (error, NM_UTILS_ERROR, NM_UTILS_ERROR_UNKNOWN);
+}
+
+static void
+test_negative (void)
+{
+	GMainLoop *loop = g_main_loop_new (NULL, FALSE);
+
+	nm_service_providers_find_gsm_apn (NM_BUILD_SRCDIR"/src/devices/wwan/tests/test-service-providers.xml",
+	                                   "78130", NULL, test_negative_cb, loop);
+	g_main_loop_run (loop);
+	g_main_loop_unref (loop);
+}
+
+/*****************************************************************************/
+
+static void
+test_nonexistent_cb (const char *apn,
+                     const char *username,
+                     const char *password,
+                     const char *gateway,
+                     const char *auth_method,
+                     const GSList *dns,
+                     GError *error,
+                     gpointer user_data)
+{
+	GMainLoop *loop = user_data;
+
+	g_main_loop_quit (loop);
+	g_assert_error (error, G_IO_ERROR, G_IO_ERROR_AGAIN);
+}
+
+static void
+test_nonexistent (void)
+{
+	GMainLoop *loop = g_main_loop_new (NULL, FALSE);
+
+	nm_service_providers_find_gsm_apn ("nonexistent.xml", "13337", NULL,
+	                                   test_nonexistent_cb, loop);
+	g_main_loop_run (loop);
+	g_main_loop_unref (loop);
+}
+
+/*****************************************************************************/
+
+NMTST_DEFINE ();
+
+int
+main (int argc, char **argv)
+{
+	nmtst_init_assert_logging (&argc, &argv, "INFO", "DEFAULT");
+
+	g_test_add_func ("/service-providers/positive", test_positive);
+	g_test_add_func ("/service-providers/negative", test_negative);
+	g_test_add_func ("/service-providers/nonexistent", test_nonexistent);
+
+	return g_test_run ();
+}
+
diff --git a/src/devices/wwan/tests/test-service-providers.xml b/src/devices/wwan/tests/test-service-providers.xml
new file mode 100644
index 00000000..f0ca2deb
--- /dev/null
+++ b/src/devices/wwan/tests/test-service-providers.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding='utf-8'?>
+<!DOCTYPE serviceproviders SYSTEM "serviceproviders.2.dtd">
+
+<serviceproviders format="2.0">
+
+<country code="feh">
+	<provider>
+		<name>Sophia</name>
+		<gsm>
+			<network-id mcc="666" mnc="999"/>
+			<apn value="access.example.com">
+				<plan type="postpaid"/>
+				<usage type="internet"/>
+				<name>APN</name>
+				<dns>192.0.2.1</dns>
+				<dns>192.0.2.2</dns>
+			</apn>
+		</gsm>
+	</provider>
+</country>
+
+<country code="meh">
+	<provider>
+		<name>Demiurge</name>
+		<gsm>
+			<network-id mcc="133" mnc="37"/>
+			<network-id mcc="133" mnc="666"/>
+			<apn value="mms">
+				<usage type="mms"/>
+				<name>Unsolicited Nudes MMS</name>
+				<username>mms</username>
+				<password>mms</password>
+				<mmsc>http://mms.example.com/</mmsc>
+				<mmsproxy>192.0.2.1:8080</mmsproxy>
+			</apn>
+			<apn value="gprs.example.com">
+				<plan type="postpaid"/>
+				<usage type="internet"/>
+				<name>GPRS</name>
+				<username>praise</username>
+				<password>santa</password>
+				<dns>192.0.2.1</dns>
+				<dns>192.0.2.2</dns>
+				<gateway>192.0.2.3</gateway>
+				<authentication method="pap"/>
+			</apn>
+			<apn value="second.example.com">
+				<plan type="postpaid"/>
+				<usage type="internet"/>
+				<name>Second</name>
+				<username>worship</username>
+				<password>doom</password>
+			</apn>
+		</gsm>
+	</provider>
+
+	<provider>
+		<name>Personal</name>
+		<gsm>
+			<network-id mcc="666" mnc="999"/>
+			<apn value="access.example.com">
+				<plan type="postpaid"/>
+				<usage type="internet"/>
+				<name>APN</name>
+				<dns>192.0.2.1</dns>
+				<dns>192.0.2.2</dns>
+			</apn>
+		</gsm>
+	</provider>
+</country>
+
+</serviceproviders>
+