-
Notifications
You must be signed in to change notification settings - Fork 1
/
uri_test.c
64 lines (54 loc) · 1.72 KB
/
uri_test.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
// BadWolf: Minimalist and privacy-oriented WebKitGTK+ browser
// Copyright © 2019-2020 Badwolf Authors <https://hacktivis.me/projects/badwolf>
// SPDX-License-Identifier: BSD-3-Clause
#include "uri.h"
#include <glib.h>
#include <glib/gi18n.h>
static void
badwolf_ensure_uri_scheme_test(void)
{
const gchar *fallback = "about:blank";
struct
{
const gchar *expect;
const gchar *text;
gboolean try_file;
} cases[] = {
//
{"http://uri.c", "http://uri.c", FALSE},
{"http://uri.c", "http://uri.c", TRUE},
{"file:///dev/null", "file:///dev/null", FALSE},
{"file:///dev/null", "file:///dev/null", TRUE},
{fallback, NULL, FALSE},
{fallback, NULL, TRUE},
{fallback, "", FALSE},
{fallback, "", TRUE},
{"http:///dev/null", "/dev/null", FALSE},
{"file:///dev/null", "/dev/null", TRUE},
{"http:///usr/../dev/null", "/usr/../dev/null", FALSE},
{"file:///dev/null", "/usr/../dev/null", TRUE},
{"http://example.org", "example.org", FALSE},
{"http://example.org", "example.org", TRUE},
{"http://", "http://", FALSE},
{"http://", "http://", TRUE},
{"http://badwolf.c", "badwolf.c", FALSE} //
};
for(size_t i = 0; i < sizeof(cases) / sizeof(cases[0]); i++)
{
g_info("badwolf_ensure_uri_scheme(\"%s\", %s)",
cases[i].text,
cases[i].try_file ? "TRUE" : "FALSE");
const gchar *got = badwolf_ensure_uri_scheme(cases[i].text, cases[i].try_file);
if(g_strcmp0(got, cases[i].expect) != 0)
{
g_error("expected: \"%s\", got: \"%s\"", cases[i].expect, got);
}
}
}
int
main(int argc, char *argv[])
{
g_test_init(&argc, &argv, NULL);
g_test_add_func("/badwolf_ensure_uri_scheme/test", badwolf_ensure_uri_scheme_test);
return g_test_run();
}