aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2023-03-28 12:12:17 -0400
committerDavid Robillard <d@drobilla.net>2023-04-05 09:45:15 -0400
commit16785586b4f788f522e3b0312b3df9999596b0ae (patch)
tree23ca339c59fa92f498e548426a2073e5c4c96962
parent6033875bcb22169de59126451e227dce1ee2db0c (diff)
downloadserd-16785586b4f788f522e3b0312b3df9999596b0ae.tar.gz
serd-16785586b4f788f522e3b0312b3df9999596b0ae.tar.bz2
serd-16785586b4f788f522e3b0312b3df9999596b0ae.zip
Strengthen URI utility unit tests
-rw-r--r--test/test_uri.c35
1 files changed, 29 insertions, 6 deletions
diff --git a/test/test_uri.c b/test/test_uri.c
index a333ff7d..de30c02c 100644
--- a/test/test_uri.c
+++ b/test/test_uri.c
@@ -1,4 +1,4 @@
-// Copyright 2011-2020 David Robillard <d@drobilla.net>
+// Copyright 2011-2023 David Robillard <d@drobilla.net>
// SPDX-License-Identifier: ISC
#undef NDEBUG
@@ -14,11 +14,32 @@
#define USTR(s) ((const uint8_t*)(s))
static void
-test_file_uri(const char* hostname,
- const char* path,
- bool escape,
- const char* expected_uri,
- const char* expected_path)
+test_uri_string_has_scheme(void)
+{
+ assert(!serd_uri_string_has_scheme(USTR("relative")));
+ assert(!serd_uri_string_has_scheme(USTR("http")));
+ assert(!serd_uri_string_has_scheme(USTR("5nostartdigit")));
+ assert(!serd_uri_string_has_scheme(USTR("+nostartplus")));
+ assert(!serd_uri_string_has_scheme(USTR("-nostartminus")));
+ assert(!serd_uri_string_has_scheme(USTR(".nostartdot")));
+ assert(!serd_uri_string_has_scheme(USTR(":missing")));
+ assert(!serd_uri_string_has_scheme(USTR("a/slash/is/not/a/scheme/char")));
+
+ assert(serd_uri_string_has_scheme(USTR("http://example.org/")));
+ assert(serd_uri_string_has_scheme(USTR("https://example.org/")));
+ assert(serd_uri_string_has_scheme(USTR("allapha:path")));
+ assert(serd_uri_string_has_scheme(USTR("w1thd1g1t5:path")));
+ assert(serd_uri_string_has_scheme(USTR("with.dot:path")));
+ assert(serd_uri_string_has_scheme(USTR("with+plus:path")));
+ assert(serd_uri_string_has_scheme(USTR("with-minus:path")));
+}
+
+static void
+test_file_uri(const char* const hostname,
+ const char* const path,
+ const bool escape,
+ const char* const expected_uri,
+ const char* expected_path)
{
if (!expected_path) {
expected_path = path;
@@ -30,6 +51,7 @@ test_file_uri(const char* hostname,
uint8_t* out_path = serd_file_uri_parse(node.buf, &out_hostname);
assert(!strcmp((const char*)node.buf, expected_uri));
assert((hostname && out_hostname) || (!hostname && !out_hostname));
+ assert(!hostname || !strcmp(hostname, (const char*)out_hostname));
assert(!strcmp((const char*)out_path, (const char*)expected_path));
serd_free(out_path);
@@ -213,6 +235,7 @@ int
main(void)
{
test_uri_to_path();
+ test_uri_string_has_scheme();
test_uri_parsing();
test_uri_from_string();
test_relative_uri();