Branch Coverage

URI.xsi
Criterion Covered Total %
branch 142 350 40.5


line true false branch
9 13 0 Stash stash(__PACKAGE__);
12 13 0 xs::exp::create_constants(stash, {
13 0 xs::exp::create_constants(stash, {
13 0 xs::exp::create_constants(stash, {
13 0 xs::exp::create_constants(stash, {
13 0 xs::exp::create_constants(stash, {
52 13 xs::exp::create_constants(stash, {
0 0 xs::exp::create_constants(stash, {
19 13 0 });
20 13 0 xs::exp::autoexport(stash);
13 0 xs::exp::autoexport(stash);
25 95 0 RETVAL = make_backref(url, flags);
26 95 0 }
27 95 0
29 0 59 if (newval) {
30 0 0 THIS->assign(SvOK(newval) ? xs::in(newval) : "", flags);
0 0 THIS->assign(SvOK(newval) ? xs::in(newval) : "", flags);
0 0 THIS->assign(SvOK(newval) ? xs::in(newval) : "", flags);
0 0 THIS->assign(SvOK(newval) ? xs::in(newval) : "", flags);
0 0 THIS->assign(SvOK(newval) ? xs::in(newval) : "", flags);
33 59 0 RETVAL = THIS->to_string();
59 0 RETVAL = THIS->to_string();
37 12 67 if (newval) {
38 0 12 THIS->scheme(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->scheme(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->scheme(SvOK(newval) ? xs::in(newval) : "");
12 0 THIS->scheme(SvOK(newval) ? xs::in(newval) : "");
7 5 THIS->scheme(SvOK(newval) ? xs::in(newval) : "");
41 67 0 RETVAL = THIS->scheme();
46 0 59 if (newval) {
47 0 0 THIS->user_info(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->user_info(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->user_info(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->user_info(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->user_info(SvOK(newval) ? xs::in(newval) : "");
50 59 0 RETVAL = THIS->user_info();
54 3 64 if (newval) {
55 0 3 THIS->host(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->host(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->host(SvOK(newval) ? xs::in(newval) : "");
3 0 THIS->host(SvOK(newval) ? xs::in(newval) : "");
3 0 THIS->host(SvOK(newval) ? xs::in(newval) : "");
58 64 0 RETVAL = THIS->host();
62 2 17 if (newval) {
63 2 0 THIS->port(SvIV(newval));
0 0 THIS->port(SvIV(newval));
70 2 63 if (newval) {
71 0 2 THIS->path(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->path(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->path(SvOK(newval) ? xs::in(newval) : "");
2 0 THIS->path(SvOK(newval) ? xs::in(newval) : "");
2 0 THIS->path(SvOK(newval) ? xs::in(newval) : "");
74 63 0 RETVAL = THIS->path();
78 4 71 if (newval) {
79 0 4 THIS->query_string(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->query_string(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->query_string(SvOK(newval) ? xs::in(newval) : "");
4 0 THIS->query_string(SvOK(newval) ? xs::in(newval) : "");
4 0 THIS->query_string(SvOK(newval) ? xs::in(newval) : "");
82 71 0 RETVAL = THIS->query_string();
71 0 RETVAL = THIS->query_string();
86 0 1 if (newval) {
87 0 0 THIS->raw_query(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->raw_query(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->raw_query(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->raw_query(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->raw_query(SvOK(newval) ? xs::in(newval) : "");
90 1 0 RETVAL = THIS->raw_query();
1 0 RETVAL = THIS->raw_query();
94 2 5 if (items > 1) {
95 2 0 add_query_args(THIS, MARK+2, items-1, true);
98 5 0 auto data = data_get(ST(0));
99 5 0 RETVAL = data->query_hash(THIS);
107 1 16 if (val) {
108 1 0 add_param(THIS, string(name), val, true);
1 0 add_param(THIS, string(name), val, true);
1 0 add_param(THIS, string(name), val, true);
111 13 3 if (ix == 0) { // param method
112 13 0 auto it = THIS->query().find(name);
13 0 auto it = THIS->query().find(name);
113 13 0 if (it == THIS->query().cend()) XSRETURN_UNDEF;
1 12 if (it == THIS->query().cend()) XSRETURN_UNDEF;
114 12 0 RETVAL = it->second;
116 3 0 size_t nvals = THIS->query().count(name);
3 0 size_t nvals = THIS->query().count(name);
121 1 0 RETVAL = THIS->query().find(name)->second; break;
1 0 RETVAL = THIS->query().find(name)->second; break;
1 0 RETVAL = THIS->query().find(name)->second; break;
124 2 0 EXTEND(SP, (int)nvals);
0 2 EXTEND(SP, (int)nvals);
0 0 EXTEND(SP, (int)nvals);
125 2 0 const auto& query = THIS->query();
126 2 0 auto pair = query.equal_range(name);
127 4 2 for (auto it = pair.first; it != pair.second; ++it) mPUSHp(it->second.data(), it->second.length());
4 0 for (auto it = pair.first; it != pair.second; ++it) mPUSHp(it->second.data(), it->second.length());
134 1 0 RETVAL = THIS->query().size();
138 0 0 RETVAL = THIS->query().erase(name);
0 0 RETVAL = THIS->query().erase(name);
142 2 120 if (newval) {
143 0 2 THIS->fragment(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->fragment(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->fragment(SvOK(newval) ? xs::in(newval) : "");
2 0 THIS->fragment(SvOK(newval) ? xs::in(newval) : "");
2 0 THIS->fragment(SvOK(newval) ? xs::in(newval) : "");
146 120 0 RETVAL = THIS->fragment();
151 2 6 if (newval) {
152 0 2 THIS->location(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->location(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->location(SvOK(newval) ? xs::in(newval) : "");
2 0 THIS->location(SvOK(newval) ? xs::in(newval) : "");
2 0 THIS->location(SvOK(newval) ? xs::in(newval) : "");
155 6 0 RETVAL = THIS->location();
6 0 RETVAL = THIS->location();
162 2 0 string URI::explicit_location ()
2 0 string URI::explicit_location ()
165 2 0 RETVAL = THIS->relative();
2 0 RETVAL = THIS->relative();
170 242 0 RETVAL = THIS->to_string();
242 0 RETVAL = THIS->to_string();
178 11 4 if (source.is_string()) THIS->assign(xs::in(source), flags);
11 0 if (source.is_string()) THIS->assign(xs::in(source), flags);
10 1 if (source.is_string()) THIS->assign(xs::in(source), flags);
179 4 0 else THIS->assign(*xs::in>(source));
3 1 else THIS->assign(*xs::in>(source));
183 30 0 if (other.is_string()) RETVAL = THIS->to_string() == xs::in(other);
30 0 if (other.is_string()) RETVAL = THIS->to_string() == xs::in(other);
30 0 if (other.is_string()) RETVAL = THIS->to_string() == xs::in(other);
30 0 if (other.is_string()) RETVAL = THIS->to_string() == xs::in(other);
185 0 0 Object obj = other;
186 0 0 if (obj && obj.stash().isa("URI::XS")) RETVAL = THIS->equals(*xs::in(obj));
0 0 if (obj && obj.stash().isa("URI::XS")) RETVAL = THIS->equals(*xs::in(obj));
0 0 if (obj && obj.stash().isa("URI::XS")) RETVAL = THIS->equals(*xs::in(obj));
0 0 if (obj && obj.stash().isa("URI::XS")) RETVAL = THIS->equals(*xs::in(obj));
0 0 if (obj && obj.stash().isa("URI::XS")) RETVAL = THIS->equals(*xs::in(obj));
0 0 if (obj && obj.stash().isa("URI::XS")) RETVAL = THIS->equals(*xs::in(obj));
0 0 if (obj && obj.stash().isa("URI::XS")) RETVAL = THIS->equals(*xs::in(obj));
0 0 if (obj && obj.stash().isa("URI::XS")) RETVAL = THIS->equals(*xs::in(obj));
0 0 if (obj && obj.stash().isa("URI::XS")) RETVAL = THIS->equals(*xs::in(obj));
0 0 if (obj && obj.stash().isa("URI::XS")) RETVAL = THIS->equals(*xs::in(obj));
0 0 if (obj && obj.stash().isa("URI::XS")) RETVAL = THIS->equals(*xs::in(obj));
193 2 0 if (dynamic_cast(THIS)) RETVAL = URI::create(*THIS);
2 0 if (dynamic_cast(THIS)) RETVAL = URI::create(*THIS);
194 2 0 else RETVAL = new URI(*THIS);
1 1 else RETVAL = new URI(*THIS);
1 1 else RETVAL = new URI(*THIS);
1 0 else RETVAL = new URI(*THIS);
195 1 0 }
1 0 }
198 3 5 if (items > 1) {
200 3 0 list.reserve(items-1);
201 7 3 for (I32 i = 1; i < items; ++i) list.push_back(xs::in(ST(i)));
7 0 for (I32 i = 1; i < items; ++i) list.push_back(xs::in(ST(i)));
7 0 for (I32 i = 1; i < items; ++i) list.push_back(xs::in(ST(i)));
202 3 0 THIS->path_segments(list.cbegin(), list.cend());
205 5 0 const std::vector list = THIS->path_segments();
206 5 0 EXTEND(SP, (int)list.size());
0 5 EXTEND(SP, (int)list.size());
0 5 EXTEND(SP, (int)list.size());
0 0 EXTEND(SP, (int)list.size());
207 6 5 for (auto it = list.begin(); it != list.end(); ++it) mPUSHp(it->data(), it->length());
6 0 for (auto it = list.begin(); it != list.end(); ++it) mPUSHp(it->data(), it->length());
211 7 0 RETVAL = THIS->scheme().length() || THIS->host().length() || THIS->path().length() || THIS->query_string().length() ||
7 0 RETVAL = THIS->scheme().length() || THIS->host().length() || THIS->path().length() || THIS->query_string().length() ||
7 0 RETVAL = THIS->scheme().length() || THIS->host().length() || THIS->path().length() || THIS->query_string().length() ||
7 0 RETVAL = THIS->scheme().length() || THIS->host().length() || THIS->path().length() || THIS->query_string().length() ||
216 0 0 if (newval) {
217 0 0 THIS->user(xs::in(newval));
0 0 THIS->user(xs::in(newval));
220 0 0 RETVAL = THIS->user();
0 0 RETVAL = THIS->user();
224 0 0 if (newval) {
225 0 0 THIS->password(xs::in(newval));
0 0 THIS->password(xs::in(newval));
228 0 0 RETVAL = THIS->password();
0 0 RETVAL = THIS->password();