summaryrefslogtreecommitdiffstats
path: root/src/tests
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests')
-rw-r--r--src/tests/settings_test.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/tests/settings_test.c b/src/tests/settings_test.c
index f7fb35d0..89203d42 100644
--- a/src/tests/settings_test.c
+++ b/src/tests/settings_test.c
@@ -166,6 +166,12 @@ static struct setting test_string_setting = {
.type = &setting_type_string,
};
+/** Test URI-encoded string setting */
+static struct setting test_uristring_setting = {
+ .name = "test_uristring",
+ .type = &setting_type_uristring,
+};
+
/** Test IPv4 address setting type */
static struct setting test_ipv4_setting = {
.name = "test_ipv4",
@@ -265,6 +271,16 @@ static void settings_test_exec ( void ) {
fetchf_ok ( &test_settings, &test_string_setting,
RAW ( 'w', 'o', 'r', 'l', 'd' ), "world" );
+ /* "uristring" setting type */
+ storef_ok ( &test_settings, &test_uristring_setting, "hello%20world",
+ RAW ( 'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l',
+ 'd' ) );
+ fetchf_ok ( &test_settings, &test_uristring_setting,
+ RAW ( 1, 2, 3, 4, 5 ), "%01%02%03%04%05" );
+ fetchf_ok ( &test_settings, &test_uristring_setting,
+ RAW ( 0, ' ', '%', '/', '#', ':', '@', '?', '=', '&' ),
+ "%00%20%25%2F%23%3A%40%3F%3D%26" );
+
/* "ipv4" setting type */
storef_ok ( &test_settings, &test_ipv4_setting, "192.168.0.1",
RAW ( 192, 168, 0, 1 ) );