MCPcopy Create free account
hub / github.com/OpenSIPS/opensips / test_parse_uri

Function test_parse_uri

parser/test/test_parser.c:30–144  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

28#include "test_parse_authenticate_body.h"
29
30void test_parse_uri(void)
31{
32 struct sip_uri u;
33 str in;
34
35 /* Basic URI parsing tests */
36
37 ok(parse_uri(STR_L("sip:@atlanta.org"), &u) < 0, "puri-0");
38
39 /* Notice how illegal user chars are allowed in these two tests!
40 * This is by design, since "quick parsing" != "full RFC syntax validation"
41 */
42 ok(parse_uri(STR_L("sip:%@atlanta.org"), &u) == 0, "puri-0.1");
43 ok(parse_uri(STR_L("sip:%4`@atlanta.org"), &u) == 0, "puri-0.2");
44
45 ok(parse_uri(STR_L("sip:%40@atlanta.org"), &u) == 0, "puri-0.3");
46 ok(parse_uri(STR_L("sip:atlanta.org"), &u) == 0, "puri-0.4");
47 ok(!u.user.s, "puri-0.5");
48 ok(u.user.len == 0, "puri-0.6");
49
50 /* URI port parsing tests, with or w/o a username */
51 ok(!parse_uri(STR_L("sip:localhost@atlanta.org:0"), &u), "puri-0.7");
52 ok(!parse_uri(STR_L("sip:localhost@atlanta.org:65535"), &u), "puri-0.8");
53 ok(parse_uri(STR_L("sip:localhost@atlanta.org:65536"), &u), "puri-0.9");
54 ok(parse_uri(STR_L("sip:localhost@atlanta.org:55555555555555555555"), &u), "puri-0.10");
55 ok(!parse_uri(STR_L("sip:localhost:0@atlanta.org"), &u), "puri-0.11");
56 ok(!parse_uri(STR_L("sip:localhost:65535@atlanta.org"), &u), "puri-0.12");
57 ok(!parse_uri(STR_L("sip:localhost:65536@atlanta.org"), &u), "puri-0.13");
58 ok(!parse_uri(STR_L("sip:localhost:5555555555555@atlanta.org"), &u), "puri-0.14");
59 ok(!parse_uri(STR_L("sip:localhost:0"), &u), "puri-0.15");
60 ok(!parse_uri(STR_L("sip:localhost:65535"), &u), "puri-0.16");
61 ok(parse_uri(STR_L("sip:localhost:65536"), &u), "puri-0.17");
62 ok(parse_uri(STR_L("sip:localhost:55555555555"), &u), "puri-0.18");
63
64 in = *_str("sip:alice@atlanta.org;user=phone");
65 ok(parse_uri(in.s, in.len, &u) == 0, "puri-1");
66 ok(str_match(&u.user_param, const_str("user=phone")), "puri-2");
67 ok(str_match(&u.user_param_val, const_str("phone")), "puri-3");
68
69 in = *_str("sip:alice@atlanta.org;user=phone;gr=x");
70 ok(parse_uri(in.s, in.len, &u) == 0, "puri-4");
71 ok(str_match(&u.user_param, const_str("user=phone")), "puri-5");
72 ok(str_match(&u.user_param_val, const_str("phone")), "puri-6");
73 ok(str_match(&u.gr, const_str("gr=x")), "puri-7");
74 ok(str_match(&u.gr_val, const_str("x")), "puri-8");
75
76 in = *_str("sip:alice@atlanta.org;transport=udp;user=phone;maddr=1.2.3.4;gr");
77 ok(parse_uri(in.s, in.len, &u) == 0, "puri-9");
78 ok(str_match(&u.user, const_str("alice")), "puri-10");
79 ok(str_match(&u.host, const_str("atlanta.org")), "puri-11");
80 ok(str_match(&u.transport, const_str("transport=udp")), "puri-12");
81 ok(str_match(&u.transport_val, const_str("udp")), "puri-13");
82 ok(str_match(&u.user_param, const_str("user=phone")), "puri-14");
83 ok(str_match(&u.user_param_val, const_str("phone")), "puri-15");
84 ok(str_match(&u.maddr, const_str("maddr=1.2.3.4")), "puri-16");
85 ok(str_match(&u.maddr_val, const_str("1.2.3.4")), "puri-17");
86 ok(str_match(&u.gr, const_str("gr")), "puri-18");
87 ok(str_match(&u.gr_val, const_str("")), "puri-19");

Callers 1

test_parserFunction · 0.85

Calls 3

parse_uriFunction · 0.85
_strClass · 0.85
str_matchFunction · 0.85

Tested by

no test coverage detected